Currently, Geolocation::disconnectFrame() calls stopTimers() which prevents any future callbacks. This was added in http://trac.webkit.org/changeset/59859 for Bug 39388 to prevent callbacks after the script context has gone away. Instead, we should attempt to invoke the error callback for all ongoing requests. This is safe because we now make sure that the script context is still good before we make each callback, see Bug 40162.
Created attachment 64349 [details] Patch
Created attachment 64481 [details] Patch
Comment on attachment 64481 [details] Patch > Instead, we should attempt to invoke the error callback for all ongoing requests. I think that this is a good change because it matches XMLHttpRequest (which dispatches an abort event when window is closed). But for posterity, it would be best to document why else we want this. Does any spec say so? + if (m_fatalError) + return; It might be helpful to add a comment explaining why the first error wins. r=me. The split js-test makes me sad.
Committed r65416: <http://trac.webkit.org/changeset/65416>
> I think that this is a good change because it matches XMLHttpRequest (which > dispatches an abort event when window is closed). But for posterity, it would > be best to document why else we want this. Does any spec say so? No, the spec isn't specific to JavaScript or browsers so doesn't mention anything about Frames or windows. > It might be helpful to add a comment explaining why the first error wins. Done
http://trac.webkit.org/changeset/65416 might have broken SnowLeopard Intel Release (Tests)
Problems with fast/dom/Geolocation/disconnected-frame-permission-denied.html are being tracked in Bug 44059