Title: [260381] trunk/Source/WebKit
Revision
260381
Author
[email protected]
Date
2020-04-20 11:41:29 -0700 (Mon, 20 Apr 2020)

Log Message

[IPC hardening] Use ObjectIdentifier<> for geolocationID
<https://webkit.org/b/210680>
<rdar://problem/58892340>

Reviewed by Chris Dumez.

Replace uses of uint64_t with GeolocationIdentifier.

* Scripts/webkit/messages.py:
* UIProcess/GeolocationIdentifier.h: Add.
* UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
(WebKit::GeolocationPermissionRequestManagerProxy::createRequest):
(WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):
* UIProcess/GeolocationPermissionRequestManagerProxy.h:
* UIProcess/GeolocationPermissionRequestProxy.cpp:
(WebKit::GeolocationPermissionRequestProxy::GeolocationPermissionRequestProxy):
* UIProcess/GeolocationPermissionRequestProxy.h:
(WebKit::GeolocationPermissionRequestProxy::create):
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
(WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
(WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
(WebKit::generateGeolocationID): Delete.
- Replace with GeolocationIdentifier::generate().
* WebProcess/Geolocation/GeolocationPermissionRequestManager.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveGeolocationPermissionDecision):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (260380 => 260381)


--- trunk/Source/WebKit/ChangeLog	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/ChangeLog	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,3 +1,39 @@
+2020-04-20  David Kilzer  <[email protected]>
+
+        [IPC hardening] Use ObjectIdentifier<> for geolocationID
+        <https://webkit.org/b/210680>
+        <rdar://problem/58892340>
+
+        Reviewed by Chris Dumez.
+
+        Replace uses of uint64_t with GeolocationIdentifier.
+
+        * Scripts/webkit/messages.py:
+        * UIProcess/GeolocationIdentifier.h: Add.
+        * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
+        (WebKit::GeolocationPermissionRequestManagerProxy::createRequest):
+        (WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):
+        * UIProcess/GeolocationPermissionRequestManagerProxy.h:
+        * UIProcess/GeolocationPermissionRequestProxy.cpp:
+        (WebKit::GeolocationPermissionRequestProxy::GeolocationPermissionRequestProxy):
+        * UIProcess/GeolocationPermissionRequestProxy.h:
+        (WebKit::GeolocationPermissionRequestProxy::create):
+        * UIProcess/WebPageProxy.cpp:
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
+        (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
+        (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
+        (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
+        (WebKit::generateGeolocationID): Delete.
+        - Replace with GeolocationIdentifier::generate().
+        * WebProcess/Geolocation/GeolocationPermissionRequestManager.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::didReceiveGeolocationPermissionDecision):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
 2020-04-20  Chris Dumez  <[email protected]>
 
         [iOS] Refactor WebKit media playback process assertion logic to minimize chances of leaking them

Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (260380 => 260381)


--- trunk/Source/WebKit/Scripts/webkit/messages.py	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 Apple Inc. All rights reserved.
+# Copyright (C) 2010-2020 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -229,6 +229,7 @@
         'WebKit::ActivityStateChangeID',
         'WebKit::AudioMediaStreamTrackRendererIdentifier',
         'WebKit::ContentWorldIdentifier',
+        'WebKit::GeolocationIdentifier',
         'WebKit::ImageBufferBackendHandle',
         'WebKit::ImageBufferFlushIdentifier',
         'WebKit::ImageBufferIdentifier',

Copied: trunk/Source/WebKit/UIProcess/GeolocationIdentifier.h (from rev 260380, trunk/Source/WebKit/WebProcess/Geolocation/GeolocationPermissionRequestManager.h) (0 => 260381)


--- trunk/Source/WebKit/UIProcess/GeolocationIdentifier.h	                        (rev 0)
+++ trunk/Source/WebKit/UIProcess/GeolocationIdentifier.h	2020-04-20 18:41:29 UTC (rev 260381)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/ObjectIdentifier.h>
+
+namespace WebKit {
+
+enum GeolocationIdentifierType { };
+using GeolocationIdentifier = ObjectIdentifier<GeolocationIdentifierType>;
+
+}

Modified: trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestManagerProxy.cpp (260380 => 260381)


--- trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestManagerProxy.cpp	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestManagerProxy.cpp	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -46,7 +46,7 @@
     m_pendingRequests.clear();
 }
 
-Ref<GeolocationPermissionRequestProxy> GeolocationPermissionRequestManagerProxy::createRequest(uint64_t geolocationID)
+Ref<GeolocationPermissionRequestProxy> GeolocationPermissionRequestManagerProxy::createRequest(GeolocationIdentifier geolocationID)
 {
     auto request = GeolocationPermissionRequestProxy::create(this, geolocationID);
     m_pendingRequests.add(geolocationID, request.ptr());
@@ -53,7 +53,7 @@
     return request;
 }
 
-void GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision(uint64_t geolocationID, bool allowed)
+void GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision(GeolocationIdentifier geolocationID, bool allowed)
 {
     if (!m_page.hasRunningProcess())
         return;

Modified: trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestManagerProxy.h (260380 => 260381)


--- trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestManagerProxy.h	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestManagerProxy.h	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -26,6 +26,7 @@
 #ifndef GeolocationPermissionRequestManagerProxy_h
 #define GeolocationPermissionRequestManagerProxy_h
 
+#include "GeolocationIdentifier.h"
 #include "GeolocationPermissionRequestProxy.h"
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
@@ -42,16 +43,16 @@
     void invalidateRequests();
 
     // Create a request to be presented to the user.
-    Ref<GeolocationPermissionRequestProxy> createRequest(uint64_t geolocationID);
+    Ref<GeolocationPermissionRequestProxy> createRequest(GeolocationIdentifier);
     
     // Called by GeolocationPermissionRequestProxy when a decision is made by the user.
-    void didReceiveGeolocationPermissionDecision(uint64_t, bool allow);
+    void didReceiveGeolocationPermissionDecision(GeolocationIdentifier, bool allow);
 
     bool isValidAuthorizationToken(const String&) const;
     void revokeAuthorizationToken(const String&);
 
 private:
-    HashMap<uint64_t, RefPtr<GeolocationPermissionRequestProxy>> m_pendingRequests;
+    HashMap<GeolocationIdentifier, RefPtr<GeolocationPermissionRequestProxy>> m_pendingRequests;
     HashSet<String> m_validAuthorizationTokens;
     WebPageProxy& m_page;
 };

Modified: trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestProxy.cpp (260380 => 260381)


--- trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestProxy.cpp	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestProxy.cpp	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -30,7 +30,7 @@
 
 namespace WebKit {
 
-GeolocationPermissionRequestProxy::GeolocationPermissionRequestProxy(GeolocationPermissionRequestManagerProxy* manager, uint64_t geolocationID)
+GeolocationPermissionRequestProxy::GeolocationPermissionRequestProxy(GeolocationPermissionRequestManagerProxy* manager, GeolocationIdentifier geolocationID)
     : m_manager(manager)
     , m_geolocationID(geolocationID)
 {

Modified: trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestProxy.h (260380 => 260381)


--- trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestProxy.h	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/UIProcess/GeolocationPermissionRequestProxy.h	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -26,6 +26,7 @@
 #pragma once
 
 #include "APIObject.h"
+#include "GeolocationIdentifier.h"
 #include <wtf/Function.h>
 
 namespace WebKit {
@@ -34,7 +35,7 @@
 
 class GeolocationPermissionRequestProxy : public RefCounted<GeolocationPermissionRequestProxy> {
 public:
-    static Ref<GeolocationPermissionRequestProxy> create(GeolocationPermissionRequestManagerProxy* manager, uint64_t geolocationID)
+    static Ref<GeolocationPermissionRequestProxy> create(GeolocationPermissionRequestManagerProxy* manager, GeolocationIdentifier geolocationID)
     {
         return adoptRef(*new GeolocationPermissionRequestProxy(manager, geolocationID));
     }
@@ -45,10 +46,10 @@
     void invalidate();
 
 private:
-    GeolocationPermissionRequestProxy(GeolocationPermissionRequestManagerProxy*, uint64_t geolocationID);
+    GeolocationPermissionRequestProxy(GeolocationPermissionRequestManagerProxy*, GeolocationIdentifier);
 
     GeolocationPermissionRequestManagerProxy* m_manager;
-    uint64_t m_geolocationID;
+    GeolocationIdentifier m_geolocationID;
 };
 
 class GeolocationPermissionRequest : public API::ObjectImpl<API::Object::Type::GeolocationPermissionRequest> {

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (260380 => 260381)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-04-20 18:41:29 UTC (rev 260381)
@@ -7982,7 +7982,7 @@
     m_uiClient->reachedApplicationCacheOriginQuota(this, securityOrigin.get(), currentQuota, totalBytesNeeded, WTFMove(reply));
 }
 
-void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID, FrameInfoData&& frameInfo)
+void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier geolocationID, FrameInfoData&& frameInfo)
 {
     MESSAGE_CHECK(m_process, frameInfo.frameID);
     auto* frame = m_process->webFrame(*frameInfo.frameID);

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (260380 => 260381)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.h	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h	2020-04-20 18:41:29 UTC (rev 260381)
@@ -34,6 +34,7 @@
 #include "EditingRange.h"
 #include "EditorState.h"
 #include "FocusedElementInformation.h"
+#include "GeolocationIdentifier.h"
 #include "GeolocationPermissionRequestManagerProxy.h"
 #include "HiddenPageThrottlingAutoIncreasesCounter.h"
 #include "LayerTreeContext.h"
@@ -1891,7 +1892,7 @@
     void exceededDatabaseQuota(WebCore::FrameIdentifier, const String& originIdentifier, const String& databaseName, const String& displayName, uint64_t currentQuota, uint64_t currentOriginUsage, uint64_t currentDatabaseUsage, uint64_t expectedUsage, Messages::WebPageProxy::ExceededDatabaseQuotaDelayedReply&&);
     void reachedApplicationCacheOriginQuota(const String& originIdentifier, uint64_t currentQuota, uint64_t totalBytesNeeded, Messages::WebPageProxy::ReachedApplicationCacheOriginQuotaDelayedReply&&);
 
-    void requestGeolocationPermissionForFrame(uint64_t geolocationID, FrameInfoData&&);
+    void requestGeolocationPermissionForFrame(GeolocationIdentifier, FrameInfoData&&);
     void revokeGeolocationAuthorizationToken(const String& authorizationToken);
 
 #if PLATFORM(GTK) || PLATFORM(WPE)

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (260380 => 260381)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 Apple Inc. All rights reserved.
+# Copyright (C) 2010-2020 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -280,7 +280,7 @@
     ReachedApplicationCacheOriginQuota(String originIdentifier, uint64_t currentQuota, uint64_t totalBytesNeeded) -> (uint64_t newQuota) Synchronous
 
     # Geolocation messages
-    RequestGeolocationPermissionForFrame(uint64_t geolocationID, struct WebKit::FrameInfoData frameInfo)
+    RequestGeolocationPermissionForFrame(WebKit::GeolocationIdentifier geolocationID, struct WebKit::FrameInfoData frameInfo)
     RevokeGeolocationAuthorizationToken(String authorizationToken);
 
 #if ENABLE(MEDIA_STREAM)

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (260380 => 260381)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1420,6 +1420,7 @@
 		9B5BEC262400F4A90070C6EF /* WebMediaStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B5BEC242400F4A90070C6EF /* WebMediaStrategy.h */; };
 		9B5BEC2A240101580070C6EF /* RemoteAudioDestinationProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B5BEC28240101580070C6EF /* RemoteAudioDestinationProxy.h */; };
 		9B5BEC31240102220070C6EF /* RemoteAudioBusData.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B5BEC30240102220070C6EF /* RemoteAudioBusData.h */; };
+		9EC532A32447FBAD00215216 /* GeolocationIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EC532A22447FBAD00215216 /* GeolocationIdentifier.h */; };
 		9FB5F395169E6A80002C25BF /* WKContextPrivateMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FB5F393169E6A80002C25BF /* WKContextPrivateMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		A102A7081EC0EEE900D81D82 /* com.macromedia.Flash Player ESR.plugin.sb in Copy Plug-in Sandbox Profiles */ = {isa = PBXBuildFile; fileRef = 7A5E39491D5BD8A700B4B7CE /* com.macromedia.Flash Player ESR.plugin.sb */; };
 		A1046EA12079263100F0C5D8 /* WKPDFView.h in Headers */ = {isa = PBXBuildFile; fileRef = A1046E9F2079263100F0C5D8 /* WKPDFView.h */; };
@@ -4485,6 +4486,7 @@
 		9B5BEC30240102220070C6EF /* RemoteAudioBusData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteAudioBusData.h; sourceTree = "<group>"; };
 		9BC59D6C1EFCCCB6001E8D09 /* CallbackID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallbackID.h; sourceTree = "<group>"; };
 		9BC59D6D1EFCDC6D001E8D09 /* OptionalCallbackID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionalCallbackID.h; sourceTree = "<group>"; };
+		9EC532A22447FBAD00215216 /* GeolocationIdentifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeolocationIdentifier.h; sourceTree = "<group>"; };
 		9F54F88E16488E87007DF81A /* AuxiliaryProcessMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AuxiliaryProcessMac.mm; sourceTree = "<group>"; };
 		9F54F8941648AE0E007DF81A /* PluginProcessManagerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginProcessManagerMac.mm; sourceTree = "<group>"; };
 		9FB5F392169E6A80002C25BF /* WKContextPrivateMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKContextPrivateMac.mm; path = mac/WKContextPrivateMac.mm; sourceTree = "<group>"; };
@@ -8908,6 +8910,7 @@
 				1AE00D5E1831792100087DD7 /* FrameLoadState.cpp */,
 				1AE00D5F1831792100087DD7 /* FrameLoadState.h */,
 				BC17753E118BABF0007D9E9A /* GenericCallback.h */,
+				9EC532A22447FBAD00215216 /* GeolocationIdentifier.h */,
 				BC06F44912DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.cpp */,
 				BC06F44812DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.h */,
 				BC06F43912DBCCFB002D78DE /* GeolocationPermissionRequestProxy.cpp */,
@@ -10775,6 +10778,7 @@
 				CDA93DB022F8BCF400490A69 /* FullscreenTouchSecheuristicParameters.h in Headers */,
 				515BE1B31D5902DD00DD7C68 /* GamepadData.h in Headers */,
 				BC17753F118BABF0007D9E9A /* GenericCallback.h in Headers */,
+				9EC532A32447FBAD00215216 /* GeolocationIdentifier.h in Headers */,
 				BC06F42F12DBB9B6002D78DE /* GeolocationPermissionRequestManager.h in Headers */,
 				BC06F44A12DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.h in Headers */,
 				BC06F43A12DBCCFB002D78DE /* GeolocationPermissionRequestProxy.h in Headers */,

Modified: trunk/Source/WebKit/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp (260380 => 260381)


--- trunk/Source/WebKit/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -29,6 +29,7 @@
 #if ENABLE(GEOLOCATION)
 
 #include "FrameInfoData.h"
+#include "GeolocationIdentifier.h"
 #include "WebCoreArgumentCoders.h"
 #include "WebFrame.h"
 #include "WebPage.h"
@@ -43,12 +44,6 @@
 namespace WebKit {
 using namespace WebCore;
 
-static uint64_t generateGeolocationID()
-{
-    static uint64_t uniqueGeolocationID = 1;
-    return uniqueGeolocationID++;
-}
-
 GeolocationPermissionRequestManager::GeolocationPermissionRequestManager(WebPage& page)
     : m_page(page)
 {
@@ -64,7 +59,7 @@
         return;
     }
 
-    uint64_t geolocationID = generateGeolocationID();
+    GeolocationIdentifier geolocationID = GeolocationIdentifier::generate();
 
     m_geolocationToIDMap.set(&geolocation, geolocationID);
     m_idToGeolocationMap.set(geolocationID, &geolocation);
@@ -82,13 +77,13 @@
 
 void GeolocationPermissionRequestManager::cancelRequestForGeolocation(Geolocation& geolocation)
 {
-    uint64_t geolocationID = m_geolocationToIDMap.take(&geolocation);
+    GeolocationIdentifier geolocationID = m_geolocationToIDMap.take(&geolocation);
     if (!geolocationID)
         return;
     m_idToGeolocationMap.remove(geolocationID);
 }
 
-void GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision(uint64_t geolocationID, const String& authorizationToken)
+void GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision(GeolocationIdentifier geolocationID, const String& authorizationToken)
 {
     Geolocation* geolocation = m_idToGeolocationMap.take(geolocationID);
     if (!geolocation)

Modified: trunk/Source/WebKit/WebProcess/Geolocation/GeolocationPermissionRequestManager.h (260380 => 260381)


--- trunk/Source/WebKit/WebProcess/Geolocation/GeolocationPermissionRequestManager.h	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/WebProcess/Geolocation/GeolocationPermissionRequestManager.h	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -25,6 +25,7 @@
 
 #pragma once
 
+#include "GeolocationIdentifier.h"
 #include <wtf/HashMap.h>
 #include <wtf/RefPtr.h>
 
@@ -45,11 +46,11 @@
     void cancelRequestForGeolocation(WebCore::Geolocation&);
     void revokeAuthorizationToken(const String&);
 
-    void didReceiveGeolocationPermissionDecision(uint64_t geolocationID, const String& authorizationToken);
+    void didReceiveGeolocationPermissionDecision(GeolocationIdentifier, const String& authorizationToken);
 
 private:
-    typedef HashMap<uint64_t, WebCore::Geolocation*> IDToGeolocationMap;
-    typedef HashMap<WebCore::Geolocation*, uint64_t> GeolocationToIDMap;
+    typedef HashMap<GeolocationIdentifier, WebCore::Geolocation*> IDToGeolocationMap;
+    typedef HashMap<WebCore::Geolocation*, GeolocationIdentifier> GeolocationToIDMap;
     IDToGeolocationMap m_idToGeolocationMap;
     GeolocationToIDMap m_geolocationToIDMap;
 

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (260380 => 260381)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2020-04-20 18:41:29 UTC (rev 260381)
@@ -4260,7 +4260,7 @@
 #endif
 
 #if ENABLE(GEOLOCATION)
-void WebPage::didReceiveGeolocationPermissionDecision(uint64_t geolocationID, const String& authorizationToken)
+void WebPage::didReceiveGeolocationPermissionDecision(GeolocationIdentifier geolocationID, const String& authorizationToken)
 {
     geolocationPermissionRequestManager().didReceiveGeolocationPermissionDecision(geolocationID, authorizationToken);
 }

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (260380 => 260381)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2020-04-20 18:41:29 UTC (rev 260381)
@@ -37,6 +37,7 @@
 #include "DrawingAreaInfo.h"
 #include "EditingRange.h"
 #include "FocusedElementInformation.h"
+#include "GeolocationIdentifier.h"
 #include "InjectedBundlePageContextMenuClient.h"
 #include "InjectedBundlePageFullScreenClient.h"
 #include "InjectedBundlePagePolicyClient.h"
@@ -1593,7 +1594,7 @@
     void extendSandboxForFilesFromOpenPanel(SandboxExtension::HandleArray&&);
 #endif
 
-    void didReceiveGeolocationPermissionDecision(uint64_t geolocationID, const String& authorizationToken);
+    void didReceiveGeolocationPermissionDecision(GeolocationIdentifier, const String& authorizationToken);
 
     void didReceiveNotificationPermissionDecision(uint64_t notificationID, bool allowed);
 

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (260380 => 260381)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in	2020-04-20 18:16:57 UTC (rev 260380)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in	2020-04-20 18:41:29 UTC (rev 260381)
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 Apple Inc. All rights reserved.
+# Copyright (C) 2010-2020 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -363,7 +363,7 @@
 
 #if ENABLE(GEOLOCATION)
     # Geolocation
-    DidReceiveGeolocationPermissionDecision(uint64_t geolocationID, String authorizationToken)
+    DidReceiveGeolocationPermissionDecision(WebKit::GeolocationIdentifier geolocationID, String authorizationToken)
 #endif
 
 #if ENABLE(MEDIA_STREAM)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to