Title: [172103] branches/safari-600.1-branch/Source

Diff

Modified: branches/safari-600.1-branch/Source/WebKit/mac/ChangeLog (172102 => 172103)


--- branches/safari-600.1-branch/Source/WebKit/mac/ChangeLog	2014-08-05 23:27:27 UTC (rev 172102)
+++ branches/safari-600.1-branch/Source/WebKit/mac/ChangeLog	2014-08-05 23:29:53 UTC (rev 172103)
@@ -1,5 +1,20 @@
 2014-08-05  Lucas Forschler  <lforsch...@apple.com>
 
+        Merge r172016
+
+    2014-08-04  Benjamin Poulain  <bpoul...@apple.com>
+
+            Check for null frame when processing geolocation authorization request
+            https://bugs.webkit.org/show_bug.cgi?id=135577
+            <rdar://problem/17896295>
+
+            Reviewed by Geoffrey Garen.
+
+            * WebCoreSupport/WebGeolocationClient.mm:
+            (WebGeolocationClient::requestPermission):
+
+2014-08-05  Lucas Forschler  <lforsch...@apple.com>
+
         Merge r171973
 
     2014-08-02  Jeremy Jones  <jere...@apple.com>

Modified: branches/safari-600.1-branch/Source/WebKit/mac/WebCoreSupport/WebGeolocationClient.mm (172102 => 172103)


--- branches/safari-600.1-branch/Source/WebKit/mac/WebCoreSupport/WebGeolocationClient.mm	2014-08-05 23:27:27 UTC (rev 172102)
+++ branches/safari-600.1-branch/Source/WebKit/mac/WebCoreSupport/WebGeolocationClient.mm	2014-08-05 23:29:53 UTC (rev 172103)
@@ -112,6 +112,12 @@
 
 #if !PLATFORM(IOS)
     Frame *frame = geolocation->frame();
+
+    if (!frame) {
+        geolocation->setIsAllowed(false);
+        return;
+    }
+
     WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:frame->document()->securityOrigin()];
     WebGeolocationPolicyListener* listener = [[WebGeolocationPolicyListener alloc] initWithGeolocation:geolocation];
 

Modified: branches/safari-600.1-branch/Source/WebKit2/ChangeLog (172102 => 172103)


--- branches/safari-600.1-branch/Source/WebKit2/ChangeLog	2014-08-05 23:27:27 UTC (rev 172102)
+++ branches/safari-600.1-branch/Source/WebKit2/ChangeLog	2014-08-05 23:29:53 UTC (rev 172103)
@@ -1,5 +1,24 @@
 2014-08-05  Lucas Forschler  <lforsch...@apple.com>
 
+        Merge r172016
+
+    2014-08-04  Benjamin Poulain  <bpoul...@apple.com>
+
+            Check for null frame when processing geolocation authorization request
+            https://bugs.webkit.org/show_bug.cgi?id=135577
+            <rdar://problem/17896295>
+
+            Reviewed by Geoffrey Garen.
+
+            I could have put the null check in GeolocationController instead of the WebKit layer,
+            but that would be a little weird as GeolocationController knows nothing about how
+            the WebKit layer decides what to do with requests.
+
+            * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
+            (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
+
+2014-08-05  Lucas Forschler  <lforsch...@apple.com>
+
         Merge r171973
 
     2014-08-02  Jeremy Jones  <jere...@apple.com>

Modified: branches/safari-600.1-branch/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp (172102 => 172103)


--- branches/safari-600.1-branch/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp	2014-08-05 23:27:27 UTC (rev 172102)
+++ branches/safari-600.1-branch/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp	2014-08-05 23:29:53 UTC (rev 172103)
@@ -55,13 +55,19 @@
 
 void GeolocationPermissionRequestManager::startRequestForGeolocation(Geolocation* geolocation)
 {
+    Frame* frame = geolocation->frame();
+
+    ASSERT_WITH_MESSAGE(frame, "It is not well understood in which cases the Geolocation is alive after its frame goes away. If you hit this assertion, please add a test covering this case.");
+    if (!frame) {
+        geolocation->setIsAllowed(false);
+        return;
+    }
+
     uint64_t geolocationID = generateGeolocationID();
 
     m_geolocationToIDMap.set(geolocation, geolocationID);
     m_idToGeolocationMap.set(geolocationID, geolocation);
 
-    Frame* frame = geolocation->frame();
-
     WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
     ASSERT(webFrame);
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to