[OpenLayers-Dev] Tile.checkImgURL, path processing

Schuyler Erle sderle at metacarta.com
Thu Jan 18 15:10:45 EST 2007


I agree completely. I vote for option #1 along with a comment in the
code.

SDE

On Thu, 2007-01-18 at 12:47 -0500, Paul Spencer wrote:
> Chris,
> 
> I agree that it is bad to hide problems.  If the code should work and  
> doesn't for some reason, hiding the result may be covering up other,  
> more serious, issues elsewhere - which seems to be what was happening  
> with Grid.js I guess.
> 
> My vote is for option 1.  You could leave a comment in the code for  
> posterity, though :)  Then if the problem resurfaces and someone else  
> is trying to track it down, it will be a bit easier.
> 
> Cheers
> 
> Paul
> 
> On 18-Jan-07, at 11:36 AM, Christopher Schmidt wrote:
> 
> > Currently, OpenLayers has a function in the Tile, called checkImgURL,
> > which checks that a Tile has the same source after it was loaded as we
> > expect it to, and otherwise hides the tile.
> >
> > This function was partly debugging and partly important: for a time,
> > tiles were loading where they shouldn't have been, and it was causing
> > problems.
> >
> > However, I think that this behavior is now fixed: a tile never  
> > loads and
> > has a different source than the one we asked it for. (As proof of  
> > this,
> > you can try turning this function off: I do it in all of the places  
> > that
> > I set up OpenLayers, pretty much.) The code to do this is:
> >
> > OpenLayers.Tile.Image.prototype = OpenLayers.Class.inherit(
> >   OpenLayers.Tile.Image, { checkImgURL: function() {} });
> >
> > A side effect of this check, because of the way that browsers process
> > URLs, is that it breaks relative URLs in Firefox. Fixing this so  
> > that it
> > works well is a difficult problem -- essentially, it takes the same
> > difficulty as writing a full URL path parser. (Python's urlparse  
> > module
> > is an example of code which does this, and it's non-trivial.)
> >
> > At this point, I think that we've solved the problem this function was
> > trying to prevent in other ways, via improvements to the Grid.js code,
> > etc.
> >
> > I'm in favor of removing this check. The benefits:
> >  * No URL path parsing, so relative URLs will work again in FF, for
> >    example.
> >  * No need to implement a complex functionality for checking URLs
> >    which is seldom used.
> >
> > Cons:
> >  * Possibly no longer hiding possible errors where somehow the  
> > tile.src
> >    changes during the load, but the tile doesn't load the correct URL.
> >
> > There is another option of making this check optional, turned off by
> > default, and settable as an option on a layer. That way, we could keep
> > the current behavior for people who want it, but since it has caused
> > more harm than good, default it to off. This would be useful if we  
> > find
> > that there *is* some utility offered by this code which is not obvious
> > in the use cases I have: if this is the case, then a user could simply
> > turn on the function on a layer specific basis.
> >
> > This needs to be resolved before the 2.3 release, or at least  
> > discussed
> > and the conclusion being "Leave it as is."
> >
> > Personally, I'm in favor of (in descending order):
> >  1. Removing the code. It hides errors, it doesn't fix them, and I  
> > dont'
> >     think it's neccesary, even though I used to think it was (and it
> >     probably was until 2.3 because of other bugs in Grid.js)
> >  2. Adding an OpenLayers.Layer option to use it or not use it,  
> > defualting
> >     to off.
> >  3. Adding an OpenLayers.Layer option to use it or not use it,  
> > defaulting
> >     to on (maintains current behavior)
> >  4. Leaving as is, where some browsers can't support relative  
> > paths, etc., and
> >     punting to the next release on solving it.
> >
> > Can I get a  vote for 1, 2, 3 or 4? After 24 hours, I'll take this to
> > the PSC, and then we can move forward with the next 2.3 RC2, which has
> > been blocking on this issue.
> >
> > Regards,
> > -- 
> > Christopher Schmidt
> > MetaCarta
> > _______________________________________________
> > Dev mailing list
> > Dev at openlayers.org
> > http://openlayers.org/mailman/listinfo/dev
> 
> +-----------------------------------------------------------------+
> |Paul Spencer                          pspencer at dmsolutions.ca    |
> +-----------------------------------------------------------------+
> |Chief Technology Officer                                         |
> |DM Solutions Group Inc                http://www.dmsolutions.ca/ |
> +-----------------------------------------------------------------+
> 
> 
> 
> 
> _______________________________________________
> Dev mailing list
> Dev at openlayers.org
> http://openlayers.org/mailman/listinfo/dev
> 




More information about the Dev mailing list