diff options
Diffstat (limited to 'WebCore/loader/FrameLoader.cpp')
-rw-r--r-- | WebCore/loader/FrameLoader.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp index 125ee9b..f6b8f52 100644 --- a/WebCore/loader/FrameLoader.cpp +++ b/WebCore/loader/FrameLoader.cpp @@ -59,6 +59,7 @@ #include "FrameLoaderClient.h" #include "FrameTree.h" #include "FrameView.h" +#include "Geolocation.h" #include "HTMLAnchorElement.h" #include "HTMLAppletElement.h" #include "HTMLFormElement.h" @@ -76,6 +77,7 @@ #include "Logging.h" #include "MIMETypeRegistry.h" #include "MainResourceLoader.h" +#include "Navigator.h" #include "Page.h" #include "PageCache.h" #include "PageGroup.h" @@ -605,6 +607,11 @@ void FrameLoader::stopLoading(UnloadEventPolicy unloadEventPolicy, DatabasePolic #endif } + // Stop the Geolocation object, if present. This call is made after the unload + // event has fired, so no new Geolocation activity is possible. + if (m_frame->domWindow()->navigator()->optionalGeolocation()) + m_frame->domWindow()->navigator()->optionalGeolocation()->stop(); + // tell all subframes to stop as well for (Frame* child = m_frame->tree()->firstChild(); child; child = child->tree()->nextSibling()) child->loader()->stopLoading(unloadEventPolicy); |