WebKit Bugzilla
Attachment 370697 Details for
Bug 198206
: Use a strongly-typed identifier for pages
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198206-20190527103453.patch (text/plain), 496.41 KB, created by
Chris Dumez
on 2019-05-27 10:34:58 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2019-05-27 10:34:58 PDT
Size:
496.41 KB
patch
obsolete
>Subversion Revision: 245795 >diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog >index c265abdd0eda26e7f1a2d9d4fc4ef12ab5a3c998..d04b9340feaafb7b9192d868487624349809ea4c 100644 >--- a/Source/WTF/ChangeLog >+++ b/Source/WTF/ChangeLog >@@ -1,3 +1,13 @@ >+2019-05-24 Chris Dumez <cdumez@apple.com> >+ >+ Use a strongly-typed identifier for pages >+ https://bugs.webkit.org/show_bug.cgi?id=198206 >+ >+ Reviewed by Youenn Fablet. >+ >+ * wtf/ObjectIdentifier.h: >+ (WTF::operator<<): >+ > 2019-05-23 Don Olmstead <don.olmstead@sony.com> > > [CMake] Use target oriented design for bmalloc >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 62a3eec84f12f9652f2302923b1543662843d620..f95f1f8e3caf856c30ff17106203622c5adc8b17 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,12 @@ >+2019-05-24 Chris Dumez <cdumez@apple.com> >+ >+ Use a strongly-typed identifier for pages >+ https://bugs.webkit.org/show_bug.cgi?id=198206 >+ >+ Reviewed by Youenn Fablet. >+ >+ * WebCore/*: >+ > 2019-05-26 Simon Fraser <simon.fraser@apple.com> > > Move GraphicsLayerCA::adjustTiledLayerVisibleRect() to TileController >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index fc228020b53577b2ce4e2c23fdd2192ba9b60f76..ae08ef3cfe1ce4526b89dc35a5cef61ffc7a13b6 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,12 @@ >+2019-05-24 Chris Dumez <cdumez@apple.com> >+ >+ Use a strongly-typed identifier for pages >+ https://bugs.webkit.org/show_bug.cgi?id=198206 >+ >+ Reviewed by Youenn Fablet. >+ >+ * WebKit/*: >+ > 2019-05-27 Antoine Quint <graouts@apple.com> > > [Pointer Events] Test at pointerevents/ios/touch-action-none-in-overflow-scrolling-touch.html times out >diff --git a/Source/WebKitLegacy/ChangeLog b/Source/WebKitLegacy/ChangeLog >index 1dd54eafa37fd6bd617679287a385bba40946585..e1d32fe47eb7b3c117558ffbaa8560da185cf962 100644 >--- a/Source/WebKitLegacy/ChangeLog >+++ b/Source/WebKitLegacy/ChangeLog >@@ -1,3 +1,14 @@ >+2019-05-24 Chris Dumez <cdumez@apple.com> >+ >+ Use a strongly-typed identifier for pages >+ https://bugs.webkit.org/show_bug.cgi?id=198206 >+ >+ Reviewed by Youenn Fablet. >+ >+ * WebCoreSupport/WebResourceLoadScheduler.cpp: >+ (WebResourceLoadScheduler::pageLoadCompleted): >+ * WebCoreSupport/WebResourceLoadScheduler.h: >+ > 2019-05-17 Don Olmstead <don.olmstead@sony.com> > > [CMake] Use builtin FindICU >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index d60f358ef0f61bfa0e0cc7d20a20abf4c8045a51..6dac80c8edc411072bda40b10fd8f18c21faa2fb 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,14 @@ >+2019-05-24 Chris Dumez <cdumez@apple.com> >+ >+ Use a strongly-typed identifier for pages >+ https://bugs.webkit.org/show_bug.cgi?id=198206 >+ >+ Reviewed by Youenn Fablet. >+ >+ * WebCoreSupport/WebFrameLoaderClient.h: >+ * WebCoreSupport/WebFrameLoaderClient.mm: >+ (WebFrameLoaderClient::pageID const): >+ > 2019-05-26 Wenson Hsieh <wenson_hsieh@apple.com> > > [iOS] Dropped text, attachments, and images should animate into place >diff --git a/Source/WTF/wtf/ObjectIdentifier.h b/Source/WTF/wtf/ObjectIdentifier.h >index 40897b59d07a3c0550ae2323c1c19bb295339fd8..b3bcadd9dd195ab30b18cf1dad335231192526f8 100644 >--- a/Source/WTF/wtf/ObjectIdentifier.h >+++ b/Source/WTF/wtf/ObjectIdentifier.h >@@ -29,6 +29,7 @@ > #include <mutex> > #include <wtf/HashTraits.h> > #include <wtf/NeverDestroyed.h> >+#include <wtf/text/TextStream.h> > #include <wtf/text/WTFString.h> > > namespace WTF { >@@ -122,6 +123,13 @@ template<typename T> struct DefaultHash<ObjectIdentifier<T>> { > typedef ObjectIdentifierHash<T> Hash; > }; > >+template<typename T> >+TextStream& operator<<(TextStream& ts, const ObjectIdentifier<T>& identifier) >+{ >+ ts << identifier.toUInt64(); >+ return ts; >+} >+ > } // namespace WTF > > using WTF::ObjectIdentifier; >diff --git a/Source/WebCore/Headers.cmake b/Source/WebCore/Headers.cmake >index 23cc5f10f35d79a98148fed7cb128cc7ecdd7083..e226d8fc28e72089e91628cd6492b83c2b040ded 100644 >--- a/Source/WebCore/Headers.cmake >+++ b/Source/WebCore/Headers.cmake >@@ -777,6 +777,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS > page/PageConfiguration.h > page/PageConsoleClient.h > page/PageGroup.h >+ page/PageIdentifier.h > page/PageOverlay.h > page/PageOverlayController.h > page/PerformanceLogging.h >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index e95a8f930e4c38159c12ad63d3abf9aa3cf704b4..6e12c9e0379ea4706d43a0d00c540d2f6879e895 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -1218,6 +1218,7 @@ > 4682D2001F79783000C863DB /* StoredCredentialsPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4682D1FF1F79782300C863DB /* StoredCredentialsPolicy.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 468344E01EDDFAAA00B7795B /* DOMRectList.h in Headers */ = {isa = PBXBuildFile; fileRef = 468344DE1EDDFA5F00B7795B /* DOMRectList.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 46B63F6C1C6E8D19002E914B /* JSEventTargetCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 46B63F6B1C6E8CDF002E914B /* JSEventTargetCustom.h */; settings = {ATTRIBUTES = (Private, ); }; }; >+ 46B650DD2296262700FD8AA4 /* PageIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 46B650DB2296262700FD8AA4 /* PageIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 46B95195207D633400A7D2DD /* AbstractDOMWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 46B9518A207D632800A7D2DD /* AbstractDOMWindow.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 46B95196207D633A00A7D2DD /* AbstractFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 46B9518F207D632B00A7D2DD /* AbstractFrame.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 46B95197207D634000A7D2DD /* GlobalWindowIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 46B95190207D632C00A7D2DD /* GlobalWindowIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -7605,6 +7606,7 @@ > 468344DD1EDDFA5F00B7795B /* DOMRectList.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = DOMRectList.cpp; sourceTree = "<group>"; }; > 468344DE1EDDFA5F00B7795B /* DOMRectList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DOMRectList.h; sourceTree = "<group>"; }; > 46B63F6B1C6E8CDF002E914B /* JSEventTargetCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSEventTargetCustom.h; sourceTree = "<group>"; }; >+ 46B650DB2296262700FD8AA4 /* PageIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageIdentifier.h; sourceTree = "<group>"; }; > 46B9518A207D632800A7D2DD /* AbstractDOMWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractDOMWindow.h; sourceTree = "<group>"; }; > 46B9518C207D632900A7D2DD /* RemoteFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteFrame.cpp; sourceTree = "<group>"; }; > 46B9518D207D632A00A7D2DD /* RemoteDOMWindow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteDOMWindow.cpp; sourceTree = "<group>"; }; >@@ -20209,6 +20211,7 @@ > 9302B0BE0D79F82C00C7EE83 /* PageGroup.h */, > 7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */, > 7A674BDA0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h */, >+ 46B650DB2296262700FD8AA4 /* PageIdentifier.h */, > 2D5C9CFB19C7B52E00B3C5C1 /* PageOverlay.cpp */, > 2D5C9CFC19C7B52E00B3C5C1 /* PageOverlay.h */, > 2D5C9CFD19C7B52E00B3C5C1 /* PageOverlayController.cpp */, >@@ -30772,6 +30775,7 @@ > 9302B0BF0D79F82C00C7EE83 /* PageGroup.h in Headers */, > 7A674BDC0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h in Headers */, > A5B81CC41FAA44BC0037D1E6 /* PageHeapAgent.h in Headers */, >+ 46B650DD2296262700FD8AA4 /* PageIdentifier.h in Headers */, > A5CB05241FB51F3300089B97 /* PageNetworkAgent.h in Headers */, > 2D5C9D0019C7B52E00B3C5C1 /* PageOverlay.h in Headers */, > 2D5C9D0219C7B52E00B3C5C1 /* PageOverlayController.h in Headers */, >diff --git a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp b/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp >index 76912caeb8a640ed133ac4aaf4fa7d5c2897afa2..0e7d54205c83567aa65e360d47ac0533a3150e6f 100644 >--- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp >+++ b/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp >@@ -67,7 +67,7 @@ Ref<AXIsolatedTree> AXIsolatedTree::create() > return adoptRef(*new AXIsolatedTree()); > } > >-Ref<AXIsolatedTree> AXIsolatedTree::initializePageTreeForID(uint64_t pageID, AXObjectCache& cache) >+Ref<AXIsolatedTree> AXIsolatedTree::initializePageTreeForID(PageIdentifier pageID, AXObjectCache& cache) > { > RELEASE_ASSERT(isMainThread()); > auto tree = cache->generateIsolatedAccessibilityTree(); >@@ -87,7 +87,7 @@ RefPtr<AXIsolatedTree> AXIsolatedTree::treeForID(AXIsolatedTreeID treeID) > return treeIDCache().get(treeID); > } > >-Ref<AXIsolatedTree> AXIsolatedTree::createTreeForPageID(uint64_t pageID) >+Ref<AXIsolatedTree> AXIsolatedTree::createTreeForPageID(PageIdentifier pageID) > { > LockHolder locker(s_cacheLock); > >@@ -97,7 +97,7 @@ Ref<AXIsolatedTree> AXIsolatedTree::createTreeForPageID(uint64_t pageID) > return newTree; > } > >-RefPtr<AXIsolatedTree> AXIsolatedTree::treeForPageID(uint64_t pageID) >+RefPtr<AXIsolatedTree> AXIsolatedTree::treeForPageID(PageIdentifier pageID) > { > LockHolder locker(s_cacheLock); > >diff --git a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h b/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h >index c075d5b016781260c76019b50e26f606019de03f..6eec26451984f8eba8884f59c5337ce526cd9a4e 100644 >--- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h >+++ b/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h >@@ -28,6 +28,7 @@ > #if ENABLE(ACCESSIBILITY_ISOLATED_TREE) > > #include "AXIsolatedTreeNode.h" >+#include "PageIdentifier.h" > #include <wtf/HashMap.h> > #include <wtf/RefPtr.h> > #include <wtf/ThreadSafeRefCounted.h> >@@ -43,9 +44,9 @@ public: > static Ref<AXIsolatedTree> create(); > virtual ~AXIsolatedTree(); > >- static Ref<AXIsolatedTree> createTreeForPageID(uint64_t pageID); >- WEBCORE_EXPORT static Ref<AXIsolatedTree> initializePageTreeForID(uint64_t pageID, AXObjectCache&); >- WEBCORE_EXPORT static RefPtr<AXIsolatedTree> treeForPageID(uint64_t pageID); >+ static Ref<AXIsolatedTree> createTreeForPageID(PageIdentifier); >+ WEBCORE_EXPORT static Ref<AXIsolatedTree> initializePageTreeForID(PageIdentifier, AXObjectCache&); >+ WEBCORE_EXPORT static RefPtr<AXIsolatedTree> treeForPageID(PageIdentifier); > WEBCORE_EXPORT static RefPtr<AXIsolatedTree> treeForID(AXIsolatedTreeID); > > WEBCORE_EXPORT RefPtr<AXIsolatedTreeNode> rootNode(); >@@ -70,7 +71,7 @@ private: > AXIsolatedTree(); > > static HashMap<AXIsolatedTreeID, Ref<AXIsolatedTree>>& treeIDCache(); >- static HashMap<uint64_t, Ref<AXIsolatedTree>>& treePageCache(); >+ static HashMap<PageIdentifier, Ref<AXIsolatedTree>>& treePageCache(); > > // Only access on AX thread requesting data. > HashMap<AXID, Ref<AXIsolatedTreeNode>> m_readerThreadNodeMap; >diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp >index 1d43166eec3173c1481e4ec94a3667c1ca740b79..a8a84002caecb51a3863deb69a0d64354cc86d0f 100644 >--- a/Source/WebCore/dom/Document.cpp >+++ b/Source/WebCore/dom/Document.cpp >@@ -7770,7 +7770,7 @@ Logger& Document::logger() > return *m_logger; > } > >-Optional<uint64_t> Document::pageID() const >+Optional<PageIdentifier> Document::pageID() const > { > return m_frame->loader().client().pageID(); > } >diff --git a/Source/WebCore/dom/Document.h b/Source/WebCore/dom/Document.h >index 3fc5a32f381e67fd208af3126714d422a0b3efdd..16d0410bb67d4d99f04567ef016b62ea16eb17cb 100644 >--- a/Source/WebCore/dom/Document.h >+++ b/Source/WebCore/dom/Document.h >@@ -42,6 +42,7 @@ > #include "MediaProducer.h" > #include "MutationObserver.h" > #include "OrientationNotifier.h" >+#include "PageIdentifier.h" > #include "PlatformEvent.h" > #include "ReferrerPolicy.h" > #include "Region.h" >@@ -635,7 +636,7 @@ public: > WEBCORE_EXPORT AXObjectCache* axObjectCache() const; > void clearAXObjectCache(); > >- Optional<uint64_t> pageID() const; >+ Optional<PageIdentifier> pageID() const; > // to get visually ordered hebrew and arabic pages right > void setVisuallyOrdered(); > bool visuallyOrdered() const { return m_visuallyOrdered; } >diff --git a/Source/WebCore/loader/CookieJar.cpp b/Source/WebCore/loader/CookieJar.cpp >index b1bed8f032f9cd278193eedcffc7cf1531896b26..33e278638365690d16d72b3d7b5be0be2085b6c9 100644 >--- a/Source/WebCore/loader/CookieJar.cpp >+++ b/Source/WebCore/loader/CookieJar.cpp >@@ -72,7 +72,7 @@ String CookieJar::cookies(Document& document, const URL& url) const > auto includeSecureCookies = shouldIncludeSecureCookies(document, url); > > Optional<uint64_t> frameID; >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > if (auto* frame = document.frame()) { > frameID = frame->loader().client().frameID(); > pageID = frame->loader().client().pageID(); >@@ -110,7 +110,7 @@ CookieRequestHeaderFieldProxy CookieJar::cookieRequestHeaderFieldProxy(const Doc > void CookieJar::setCookies(Document& document, const URL& url, const String& cookieString) > { > Optional<uint64_t> frameID; >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > if (auto* frame = document.frame()) { > frameID = frame->loader().client().frameID(); > pageID = frame->loader().client().pageID(); >@@ -131,7 +131,7 @@ bool CookieJar::cookiesEnabled(const Document&) const > return false; > } > >-std::pair<String, SecureCookiesAccessed> CookieJar::cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, SecureCookiesAccessed> CookieJar::cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > if (auto* session = m_storageSessionProvider->storageSession()) { > std::pair<String, bool> result = session->cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); >@@ -145,7 +145,7 @@ std::pair<String, SecureCookiesAccessed> CookieJar::cookieRequestHeaderFieldValu > String CookieJar::cookieRequestHeaderFieldValue(Document& document, const URL& url) const > { > Optional<uint64_t> frameID; >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > if (auto* frame = document.frame()) { > frameID = frame->loader().client().frameID(); > pageID = frame->loader().client().pageID(); >@@ -160,7 +160,7 @@ String CookieJar::cookieRequestHeaderFieldValue(Document& document, const URL& u > bool CookieJar::getRawCookies(const Document& document, const URL& url, Vector<Cookie>& cookies) const > { > Optional<uint64_t> frameID; >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > if (auto* frame = document.frame()) { > frameID = frame->loader().client().frameID(); > pageID = frame->loader().client().pageID(); >diff --git a/Source/WebCore/loader/CookieJar.h b/Source/WebCore/loader/CookieJar.h >index 0db07c6d12e8d9bdafc3c0aba6ee71a89bc19947..281f84c49005267ea054d51d768a9eb732cbc239 100644 >--- a/Source/WebCore/loader/CookieJar.h >+++ b/Source/WebCore/loader/CookieJar.h >@@ -25,6 +25,7 @@ > > #pragma once > >+#include "PageIdentifier.h" > #include <wtf/Forward.h> > #include <wtf/text/WTFString.h> > >@@ -58,7 +59,7 @@ public: > virtual void setCookies(Document&, const URL&, const String& cookieString); > > virtual bool cookiesEnabled(const Document&) const; >- virtual std::pair<String, SecureCookiesAccessed> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const; >+ virtual std::pair<String, SecureCookiesAccessed> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, IncludeSecureCookies) const; > virtual bool getRawCookies(const Document&, const URL&, Vector<Cookie>&) const; > virtual void deleteCookie(const Document&, const URL&, const String& cookieName); > >diff --git a/Source/WebCore/loader/EmptyFrameLoaderClient.h b/Source/WebCore/loader/EmptyFrameLoaderClient.h >index 4f0bb86ddd5099e311d89a49be3a3be4077f5e5b..1f7a29c4b301a365822e4233b415dd1c0019132d 100644 >--- a/Source/WebCore/loader/EmptyFrameLoaderClient.h >+++ b/Source/WebCore/loader/EmptyFrameLoaderClient.h >@@ -33,7 +33,7 @@ class WEBCORE_EXPORT EmptyFrameLoaderClient : public FrameLoaderClient { > void frameLoaderDestroyed() override { } > > Optional<uint64_t> frameID() const override { return WTF::nullopt; } >- Optional<uint64_t> pageID() const override { return WTF::nullopt; } >+ Optional<PageIdentifier> pageID() const override { return WTF::nullopt; } > PAL::SessionID sessionID() const override; > > bool hasWebView() const final { return true; } // mainly for assertions >diff --git a/Source/WebCore/loader/FrameLoaderClient.h b/Source/WebCore/loader/FrameLoaderClient.h >index ec39127a1ad6c25e0d346be7a468cb6ea98f3fc9..074876118dc691aa7c8ada97b79713733a28a695 100644 >--- a/Source/WebCore/loader/FrameLoaderClient.h >+++ b/Source/WebCore/loader/FrameLoaderClient.h >@@ -32,6 +32,7 @@ > #include "FrameLoaderTypes.h" > #include "LayoutMilestone.h" > #include "LinkIcon.h" >+#include "PageIdentifier.h" > #include <functional> > #include <wtf/Forward.h> > #include <wtf/WallTime.h> >@@ -126,7 +127,7 @@ public: > > virtual void makeRepresentation(DocumentLoader*) = 0; > >- virtual Optional<uint64_t> pageID() const = 0; >+ virtual Optional<PageIdentifier> pageID() const = 0; > virtual Optional<uint64_t> frameID() const = 0; > virtual PAL::SessionID sessionID() const = 0; > >diff --git a/Source/WebCore/loader/LoaderStrategy.h b/Source/WebCore/loader/LoaderStrategy.h >index 8a82381f018165e653e3c4b254e5697b63c09f70..45feb635f70c35c99c716d391412a5fd2d1ded65 100644 >--- a/Source/WebCore/loader/LoaderStrategy.h >+++ b/Source/WebCore/loader/LoaderStrategy.h >@@ -26,6 +26,7 @@ > #pragma once > > #include "FetchOptions.h" >+#include "PageIdentifier.h" > #include "ResourceLoadPriority.h" > #include "ResourceLoaderOptions.h" > #include "StoredCredentialsPolicy.h" >@@ -57,7 +58,7 @@ class WEBCORE_EXPORT LoaderStrategy { > public: > virtual void loadResource(Frame&, CachedResource&, ResourceRequest&&, const ResourceLoaderOptions&, CompletionHandler<void(RefPtr<SubresourceLoader>&&)>&&) = 0; > virtual void loadResourceSynchronously(FrameLoader&, unsigned long identifier, const ResourceRequest&, ClientCredentialPolicy, const FetchOptions&, const HTTPHeaderMap&, ResourceError&, ResourceResponse&, Vector<char>& data) = 0; >- virtual void pageLoadCompleted(uint64_t webPageID) = 0; >+ virtual void pageLoadCompleted(PageIdentifier) = 0; > > virtual void remove(ResourceLoader*) = 0; > virtual void setDefersLoading(ResourceLoader&, bool) = 0; >diff --git a/Source/WebCore/loader/NavigationAction.cpp b/Source/WebCore/loader/NavigationAction.cpp >index 7745001e78ac97be024b23d4110ec4fd290b7d3b..f26a9aaf2fd7974cd3e71c859ab43fee20f803ff 100644 >--- a/Source/WebCore/loader/NavigationAction.cpp >+++ b/Source/WebCore/loader/NavigationAction.cpp >@@ -41,7 +41,7 @@ namespace WebCore { > NavigationAction::Requester::Requester(const Document& document) > : m_url { URL { document.url() } } > , m_origin { makeRefPtr(document.securityOrigin()) } >- , m_pageIDAndFrameIDPair { document.frame() ? std::make_pair(document.frame()->loader().client().pageID().valueOr(0), document.frame()->loader().client().frameID().valueOr(0)) : std::make_pair<uint64_t, uint64_t>(0, 0) } >+ , m_pageIDAndFrameIDPair { document.frame() ? std::make_pair(document.frame()->loader().client().pageID().valueOr(PageIdentifier { }), document.frame()->loader().client().frameID().valueOr(0)) : std::make_pair<PageIdentifier, uint64_t>({ }, 0) } > { > } > >diff --git a/Source/WebCore/loader/NavigationAction.h b/Source/WebCore/loader/NavigationAction.h >index 1a44f91d3681b81400e71127ea5272c75be4be07..ed7d09cf2892bb84df2f249b051475d8dc736791 100644 >--- a/Source/WebCore/loader/NavigationAction.h >+++ b/Source/WebCore/loader/NavigationAction.h >@@ -32,6 +32,7 @@ > #include "BackForwardItemIdentifier.h" > #include "FrameLoaderTypes.h" > #include "LayoutPoint.h" >+#include "PageIdentifier.h" > #include "ResourceRequest.h" > #include "SecurityOrigin.h" > #include "UserGestureIndicator.h" >@@ -63,14 +64,14 @@ public: > NavigationAction(NavigationAction&&); > NavigationAction& operator=(NavigationAction&&); > >- using PageIDAndFrameIDPair = std::pair<uint64_t /* pageID */, uint64_t /* frameID */>; >+ using PageIDAndFrameIDPair = std::pair<PageIdentifier, uint64_t /* frameID */>; > class Requester { > public: > Requester(const Document&); > > const URL& url() const { return m_url; } > const SecurityOrigin& securityOrigin() const { return *m_origin; } >- uint64_t pageID() const { return m_pageIDAndFrameIDPair.first; } >+ PageIdentifier pageID() const { return m_pageIDAndFrameIDPair.first; } > uint64_t frameID() const { return m_pageIDAndFrameIDPair.second; } > private: > URL m_url; >diff --git a/Source/WebCore/loader/ResourceLoadObserver.cpp b/Source/WebCore/loader/ResourceLoadObserver.cpp >index 14bc2f3beefa2a6032a26c7d6ad2fcfd87b7cb2b..ffada1c45be466b7fadcfd069101325eca39d556 100644 >--- a/Source/WebCore/loader/ResourceLoadObserver.cpp >+++ b/Source/WebCore/loader/ResourceLoadObserver.cpp >@@ -60,7 +60,7 @@ void ResourceLoadObserver::setStatisticsUpdatedCallback(WTF::Function<void(Vecto > m_notificationCallback = WTFMove(notificationCallback); > } > >-void ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback(WTF::Function<void(PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, const RegistrableDomain& openerDomain)>&& callback) >+void ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback(WTF::Function<void(PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, PageIdentifier openerPageID, const RegistrableDomain& openerDomain)>&& callback) > { > ASSERT(!m_requestStorageAccessUnderOpenerCallback); > m_requestStorageAccessUnderOpenerCallback = WTFMove(callback); >@@ -234,7 +234,7 @@ void ResourceLoadObserver::logUserInteractionWithReducedTimeResolution(const Doc > } > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >-void ResourceLoadObserver::requestStorageAccessUnderOpener(PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, Document& openerDocument) >+void ResourceLoadObserver::requestStorageAccessUnderOpener(PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, PageIdentifier openerPageID, Document& openerDocument) > { > auto openerUrl = openerDocument.url(); > RegistrableDomain openerDomain { openerUrl }; >diff --git a/Source/WebCore/loader/ResourceLoadObserver.h b/Source/WebCore/loader/ResourceLoadObserver.h >index c4661b047607320fd87fbb3dbbb803e4d11d4a41..de1c94a72cd471ccf7f82b5a2cbb9177db5680b7 100644 >--- a/Source/WebCore/loader/ResourceLoadObserver.h >+++ b/Source/WebCore/loader/ResourceLoadObserver.h >@@ -26,6 +26,7 @@ > #pragma once > > #include "CanvasActivityRecord.h" >+#include "PageIdentifier.h" > #include "ResourceLoadStatistics.h" > #include "Timer.h" > #include <wtf/HashMap.h> >@@ -73,7 +74,7 @@ public: > WEBCORE_EXPORT String statisticsForURL(const URL&); > > WEBCORE_EXPORT void setStatisticsUpdatedCallback(WTF::Function<void(Vector<ResourceLoadStatistics>&&)>&&); >- WEBCORE_EXPORT void setRequestStorageAccessUnderOpenerCallback(Function<void(PAL::SessionID, const RegistrableDomain&, uint64_t, const RegistrableDomain&)>&&); >+ WEBCORE_EXPORT void setRequestStorageAccessUnderOpenerCallback(Function<void(PAL::SessionID, const RegistrableDomain&, PageIdentifier, const RegistrableDomain&)>&&); > WEBCORE_EXPORT void setLogUserInteractionNotificationCallback(Function<void(PAL::SessionID, const RegistrableDomain&)>&&); > WEBCORE_EXPORT void setLogWebSocketLoadingNotificationCallback(Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&, WallTime)>&&); > WEBCORE_EXPORT void setLogSubresourceLoadingNotificationCallback(Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&, WallTime)>&&); >@@ -94,13 +95,13 @@ private: > Vector<ResourceLoadStatistics> takeStatistics(); > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >- void requestStorageAccessUnderOpener(PAL::SessionID, const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, Document& openerDocument); >+ void requestStorageAccessUnderOpener(PAL::SessionID, const RegistrableDomain& domainInNeedOfStorageAccess, PageIdentifier openerPageID, Document& openerDocument); > #endif > > HashMap<RegistrableDomain, ResourceLoadStatistics> m_resourceStatisticsMap; > HashMap<RegistrableDomain, WTF::WallTime> m_lastReportedUserInteractionMap; > Function<void(Vector<ResourceLoadStatistics>&&)> m_notificationCallback; >- Function<void(PAL::SessionID, const RegistrableDomain&, uint64_t, const RegistrableDomain&)> m_requestStorageAccessUnderOpenerCallback; >+ Function<void(PAL::SessionID, const RegistrableDomain&, PageIdentifier, const RegistrableDomain&)> m_requestStorageAccessUnderOpenerCallback; > Function<void(PAL::SessionID, const RegistrableDomain&)> m_logUserInteractionNotificationCallback; > Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&, WallTime)> m_logWebSocketLoadingNotificationCallback; > Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&, WallTime)> m_logSubresourceLoadingNotificationCallback; >diff --git a/Source/WebCore/page/ChromeClient.h b/Source/WebCore/page/ChromeClient.h >index 16d3f9c1aed5a75a0a49f845fe4410302db4e17f..ad705882b1033f0c032ce7121a77b5141233bf1a 100644 >--- a/Source/WebCore/page/ChromeClient.h >+++ b/Source/WebCore/page/ChromeClient.h >@@ -489,8 +489,8 @@ public: > virtual RefPtr<Icon> createIconForFiles(const Vector<String>& /* filenames */) = 0; > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >- virtual void hasStorageAccess(RegistrableDomain&& /*subFrameDomain*/, RegistrableDomain&& /*topFrameDomain*/, uint64_t /*frameID*/, uint64_t /*pageID*/, WTF::CompletionHandler<void(bool)>&& completionHandler) { completionHandler(false); } >- virtual void requestStorageAccess(RegistrableDomain&& /*subFrameDomain*/, RegistrableDomain&& /*topFrameDomain*/, uint64_t /*frameID*/, uint64_t /*pageID*/, WTF::CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) { completionHandler(StorageAccessWasGranted::No, StorageAccessPromptWasShown::No); } >+ virtual void hasStorageAccess(RegistrableDomain&& /*subFrameDomain*/, RegistrableDomain&& /*topFrameDomain*/, uint64_t /*frameID*/, PageIdentifier, WTF::CompletionHandler<void(bool)>&& completionHandler) { completionHandler(false); } >+ virtual void requestStorageAccess(RegistrableDomain&& /*subFrameDomain*/, RegistrableDomain&& /*topFrameDomain*/, uint64_t /*frameID*/, PageIdentifier, WTF::CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) { completionHandler(StorageAccessWasGranted::No, StorageAccessPromptWasShown::No); } > #endif > > #if ENABLE(DEVICE_ORIENTATION) >diff --git a/Source/WebCore/page/GlobalFrameIdentifier.h b/Source/WebCore/page/GlobalFrameIdentifier.h >index 156c9cd205d4cf324d681f976132c16ce2f174d4..0d7b3dbf72f81e4fd62a73fed2581ceaee167b4a 100644 >--- a/Source/WebCore/page/GlobalFrameIdentifier.h >+++ b/Source/WebCore/page/GlobalFrameIdentifier.h >@@ -25,13 +25,14 @@ > > #pragma once > >+#include "PageIdentifier.h" > #include <wtf/Optional.h> > > namespace WebCore { > > // Frame identifier that is unique across all WebContent processes. > struct GlobalFrameIdentifier { >- uint64_t pageID; >+ PageIdentifier pageID; > uint64_t frameID; > > template<class Encoder> void encode(Encoder&) const; >@@ -47,7 +48,7 @@ void GlobalFrameIdentifier::encode(Encoder& encoder) const > template<class Decoder> > Optional<GlobalFrameIdentifier> GlobalFrameIdentifier::decode(Decoder& decoder) > { >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > decoder >> pageID; > if (!pageID) > return WTF::nullopt; >diff --git a/Source/WebCore/page/PageIdentifier.h b/Source/WebCore/page/PageIdentifier.h >new file mode 100644 >index 0000000000000000000000000000000000000000..44d5f8d297563ee029c413e9cda7494c5fa4d8ae >--- /dev/null >+++ b/Source/WebCore/page/PageIdentifier.h >@@ -0,0 +1,35 @@ >+/* >+ * Copyright (C) 2019 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 WebCore { >+ >+enum PageIdentifierType { }; >+using PageIdentifier = ObjectIdentifier<PageIdentifierType>; >+ >+} >diff --git a/Source/WebCore/platform/network/CookieRequestHeaderFieldProxy.h b/Source/WebCore/platform/network/CookieRequestHeaderFieldProxy.h >index 1159050cd32c93cd3b11cf1322569d641e50d636..a6f83664cb0197245aeb7bc8f0409f4ebbeb0eb2 100644 >--- a/Source/WebCore/platform/network/CookieRequestHeaderFieldProxy.h >+++ b/Source/WebCore/platform/network/CookieRequestHeaderFieldProxy.h >@@ -26,6 +26,7 @@ > #pragma once > > #include "CookieJar.h" >+#include "PageIdentifier.h" > #include "SameSiteInfo.h" > #include <pal/SessionID.h> > #include <wtf/URL.h> >@@ -38,7 +39,7 @@ struct CookieRequestHeaderFieldProxy { > SameSiteInfo sameSiteInfo; > URL url; > Optional<uint64_t> frameID; >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > IncludeSecureCookies includeSecureCookies { IncludeSecureCookies::No }; > > template<class Encoder> void encode(Encoder&) const; >@@ -71,8 +72,11 @@ Optional<CookieRequestHeaderFieldProxy> CookieRequestHeaderFieldProxy::decode(De > return WTF::nullopt; > if (!decoder.decode(result.frameID)) > return WTF::nullopt; >- if (!decoder.decode(result.pageID)) >+ Optional<Optional<PageIdentifier>> pageID; >+ decoder >> pageID; >+ if (!pageID) > return WTF::nullopt; >+ result.pageID = *pageID; > if (!decoder.decode(result.includeSecureCookies)) > return WTF::nullopt; > return result; >diff --git a/Source/WebCore/platform/network/NetworkStorageSession.cpp b/Source/WebCore/platform/network/NetworkStorageSession.cpp >index 465da57bf387ca5bcf9bbea272f2c24ff1265dcb..7a27eb53406d61919b52010032b54adc15480849 100644 >--- a/Source/WebCore/platform/network/NetworkStorageSession.cpp >+++ b/Source/WebCore/platform/network/NetworkStorageSession.cpp >@@ -66,12 +66,12 @@ bool NetworkStorageSession::shouldBlockThirdPartyCookies(const RegistrableDomain > return m_registrableDomainsToBlockCookieFor.contains(registrableDomain); > } > >-bool NetworkStorageSession::shouldBlockCookies(const ResourceRequest& request, Optional<uint64_t> frameID, Optional<uint64_t> pageID) const >+bool NetworkStorageSession::shouldBlockCookies(const ResourceRequest& request, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID) const > { > return shouldBlockCookies(request.firstPartyForCookies(), request.url(), frameID, pageID); > } > >-bool NetworkStorageSession::shouldBlockCookies(const URL& firstPartyForCookies, const URL& resource, Optional<uint64_t> frameID, Optional<uint64_t> pageID) const >+bool NetworkStorageSession::shouldBlockCookies(const URL& firstPartyForCookies, const URL& resource, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID) const > { > RegistrableDomain firstPartyDomain { firstPartyForCookies }; > if (firstPartyDomain.isEmpty()) >@@ -115,7 +115,7 @@ void NetworkStorageSession::removePrevalentDomains(const Vector<RegistrableDomai > m_registrableDomainsToBlockCookieFor.remove(domain); > } > >-bool NetworkStorageSession::hasStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, uint64_t pageID) const >+bool NetworkStorageSession::hasStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, PageIdentifier pageID) const > { > if (frameID) { > auto framesGrantedIterator = m_framesGrantedStorageAccess.find(pageID); >@@ -148,7 +148,7 @@ Vector<String> NetworkStorageSession::getAllStorageAccessEntries() const > return entries; > } > >-void NetworkStorageSession::grantStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, uint64_t pageID) >+void NetworkStorageSession::grantStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, PageIdentifier pageID) > { > if (!frameID) { > if (firstPartyDomain.isEmpty()) >@@ -182,7 +182,7 @@ void NetworkStorageSession::grantStorageAccess(const RegistrableDomain& resource > } > } > >-void NetworkStorageSession::removeStorageAccessForFrame(uint64_t frameID, uint64_t pageID) >+void NetworkStorageSession::removeStorageAccessForFrame(uint64_t frameID, PageIdentifier pageID) > { > auto iteration = m_framesGrantedStorageAccess.find(pageID); > if (iteration == m_framesGrantedStorageAccess.end()) >@@ -191,7 +191,7 @@ void NetworkStorageSession::removeStorageAccessForFrame(uint64_t frameID, uint64 > iteration->value.remove(frameID); > } > >-void NetworkStorageSession::clearPageSpecificDataForResourceLoadStatistics(uint64_t pageID) >+void NetworkStorageSession::clearPageSpecificDataForResourceLoadStatistics(PageIdentifier pageID) > { > m_pagesGrantedStorageAccess.remove(pageID); > m_framesGrantedStorageAccess.remove(pageID); >@@ -215,7 +215,7 @@ void NetworkStorageSession::resetCacheMaxAgeCapForPrevalentResources() > m_cacheMaxAgeCapForPrevalentResources = WTF::nullopt; > } > >-void NetworkStorageSession::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource(const RegistrableDomain& toDomain, uint64_t pageID) >+void NetworkStorageSession::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource(const RegistrableDomain& toDomain, PageIdentifier pageID) > { > m_navigatedToWithLinkDecorationByPrevalentResource.add(pageID, toDomain); > } >@@ -226,7 +226,7 @@ void NetworkStorageSession::resetCrossSiteLoadsWithLinkDecorationForTesting() > m_navigationWithLinkDecorationTestMode = true; > } > >-Optional<Seconds> NetworkStorageSession::clientSideCookieCap(const RegistrableDomain& firstParty, Optional<uint64_t> pageID) const >+Optional<Seconds> NetworkStorageSession::clientSideCookieCap(const RegistrableDomain& firstParty, Optional<PageIdentifier> pageID) const > { > if (!m_ageCapForClientSideCookies || !pageID || m_navigatedToWithLinkDecorationByPrevalentResource.isEmpty()) > return m_ageCapForClientSideCookies; >diff --git a/Source/WebCore/platform/network/NetworkStorageSession.h b/Source/WebCore/platform/network/NetworkStorageSession.h >index 84d4eb66a7405e9c66c94d67a80918a08d7ddf7e..58da878907ff740248c3b15874d9132979a8d338 100644 >--- a/Source/WebCore/platform/network/NetworkStorageSession.h >+++ b/Source/WebCore/platform/network/NetworkStorageSession.h >@@ -26,6 +26,7 @@ > #pragma once > > #include "CredentialStorage.h" >+#include "PageIdentifier.h" > #include "RegistrableDomain.h" > #include <pal/SessionID.h> > #include <wtf/Function.h> >@@ -125,7 +126,7 @@ public: > WEBCORE_EXPORT bool cookiesEnabled() const; > WEBCORE_EXPORT void setCookie(const Cookie&); > WEBCORE_EXPORT void setCookies(const Vector<Cookie>&, const URL&, const URL& mainDocumentURL); >- WEBCORE_EXPORT void setCookiesFromDOM(const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) const; >+ WEBCORE_EXPORT void setCookiesFromDOM(const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, const String&) const; > WEBCORE_EXPORT void deleteCookie(const Cookie&); > WEBCORE_EXPORT void deleteCookie(const URL&, const String&) const; > WEBCORE_EXPORT void deleteAllCookies(); >@@ -134,30 +135,30 @@ public: > WEBCORE_EXPORT void deleteCookiesForHostnames(const Vector<String>& cookieHostNames, IncludeHttpOnlyCookies); > WEBCORE_EXPORT Vector<Cookie> getAllCookies(); > WEBCORE_EXPORT Vector<Cookie> getCookies(const URL&); >- WEBCORE_EXPORT bool getRawCookies(const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>&) const; >+ WEBCORE_EXPORT bool getRawCookies(const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, Vector<Cookie>&) const; > WEBCORE_EXPORT void flushCookieStore(); > WEBCORE_EXPORT void getHostnamesWithCookies(HashSet<String>& hostnames); >- WEBCORE_EXPORT std::pair<String, bool> cookiesForDOM(const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const; >- WEBCORE_EXPORT std::pair<String, bool> cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const; >+ WEBCORE_EXPORT std::pair<String, bool> cookiesForDOM(const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, IncludeSecureCookies) const; >+ WEBCORE_EXPORT std::pair<String, bool> cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, IncludeSecureCookies) const; > WEBCORE_EXPORT std::pair<String, bool> cookieRequestHeaderFieldValue(const CookieRequestHeaderFieldProxy&) const; > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >- WEBCORE_EXPORT bool shouldBlockCookies(const ResourceRequest&, Optional<uint64_t> frameID, Optional<uint64_t> pageID) const; >- WEBCORE_EXPORT bool shouldBlockCookies(const URL& firstPartyForCookies, const URL& resource, Optional<uint64_t> frameID, Optional<uint64_t> pageID) const; >+ WEBCORE_EXPORT bool shouldBlockCookies(const ResourceRequest&, Optional<uint64_t> frameID, Optional<PageIdentifier>) const; >+ WEBCORE_EXPORT bool shouldBlockCookies(const URL& firstPartyForCookies, const URL& resource, Optional<uint64_t> frameID, Optional<PageIdentifier>) const; > WEBCORE_EXPORT bool shouldBlockThirdPartyCookies(const RegistrableDomain&) const; > WEBCORE_EXPORT void setPrevalentDomainsToBlockCookiesFor(const Vector<RegistrableDomain>&); > WEBCORE_EXPORT void setAgeCapForClientSideCookies(Optional<Seconds>); > WEBCORE_EXPORT void removePrevalentDomains(const Vector<RegistrableDomain>& domains); >- WEBCORE_EXPORT bool hasStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, uint64_t pageID) const; >+ WEBCORE_EXPORT bool hasStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, PageIdentifier) const; > WEBCORE_EXPORT Vector<String> getAllStorageAccessEntries() const; >- WEBCORE_EXPORT void grantStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, uint64_t pageID); >- WEBCORE_EXPORT void removeStorageAccessForFrame(uint64_t frameID, uint64_t pageID); >- WEBCORE_EXPORT void clearPageSpecificDataForResourceLoadStatistics(uint64_t pageID); >+ WEBCORE_EXPORT void grantStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, PageIdentifier); >+ WEBCORE_EXPORT void removeStorageAccessForFrame(uint64_t frameID, PageIdentifier); >+ WEBCORE_EXPORT void clearPageSpecificDataForResourceLoadStatistics(PageIdentifier); > WEBCORE_EXPORT void removeAllStorageAccess(); > WEBCORE_EXPORT void setCacheMaxAgeCapForPrevalentResources(Seconds); > WEBCORE_EXPORT void resetCacheMaxAgeCapForPrevalentResources(); > WEBCORE_EXPORT Optional<Seconds> maxAgeCacheCap(const ResourceRequest&); >- WEBCORE_EXPORT void didCommitCrossSiteLoadWithDataTransferFromPrevalentResource(const RegistrableDomain& toDomain, uint64_t pageID); >+ WEBCORE_EXPORT void didCommitCrossSiteLoadWithDataTransferFromPrevalentResource(const RegistrableDomain& toDomain, PageIdentifier); > WEBCORE_EXPORT void resetCrossSiteLoadsWithLinkDecorationForTesting(); > #endif > >@@ -182,14 +183,14 @@ private: > CredentialStorage m_credentialStorage; > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >- Optional<Seconds> clientSideCookieCap(const RegistrableDomain& firstParty, Optional<uint64_t> pageID) const; >+ Optional<Seconds> clientSideCookieCap(const RegistrableDomain& firstParty, Optional<PageIdentifier>) const; > HashSet<RegistrableDomain> m_registrableDomainsToBlockCookieFor; >- HashMap<uint64_t, HashMap<uint64_t, RegistrableDomain, DefaultHash<uint64_t>::Hash, WTF::UnsignedWithZeroKeyHashTraits<uint64_t>>, DefaultHash<uint64_t>::Hash, WTF::UnsignedWithZeroKeyHashTraits<uint64_t>> m_framesGrantedStorageAccess; >- HashMap<uint64_t, HashMap<RegistrableDomain, RegistrableDomain>, DefaultHash<uint64_t>::Hash, WTF::UnsignedWithZeroKeyHashTraits<uint64_t>> m_pagesGrantedStorageAccess; >+ HashMap<PageIdentifier, HashMap<uint64_t, RegistrableDomain, DefaultHash<uint64_t>::Hash, WTF::UnsignedWithZeroKeyHashTraits<uint64_t>>> m_framesGrantedStorageAccess; >+ HashMap<PageIdentifier, HashMap<RegistrableDomain, RegistrableDomain>> m_pagesGrantedStorageAccess; > Optional<Seconds> m_cacheMaxAgeCapForPrevalentResources { }; > Optional<Seconds> m_ageCapForClientSideCookies { }; > Optional<Seconds> m_ageCapForClientSideCookiesShort { }; >- HashMap<uint64_t, RegistrableDomain, DefaultHash<uint64_t>::Hash, WTF::UnsignedWithZeroKeyHashTraits<uint64_t>> m_navigatedToWithLinkDecorationByPrevalentResource; >+ HashMap<WebCore::PageIdentifier, RegistrableDomain> m_navigatedToWithLinkDecorationByPrevalentResource; > bool m_navigationWithLinkDecorationTestMode = false; > #endif > >diff --git a/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp b/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp >index 67df764d2c4ae45a9685944ac4215cd553a2b251..330aa60866140b24d9b7052383a81cecf90b99f6 100644 >--- a/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp >+++ b/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp >@@ -189,7 +189,7 @@ static CFArrayRef createCookies(CFDictionaryRef headerFields, CFURLRef url) > return parsedCookies; > } > >-void NetworkStorageSession::setCookiesFromDOM(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& value) const >+void NetworkStorageSession::setCookiesFromDOM(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, const String& value) const > { > UNUSED_PARAM(frameID); > UNUSED_PARAM(pageID); >@@ -225,7 +225,7 @@ static bool containsSecureCookies(CFArrayRef cookies) > return false; > } > >-std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > UNUSED_PARAM(frameID); > UNUSED_PARAM(pageID); >@@ -240,7 +240,7 @@ std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstPar > return { cookieString, didAccessSecureCookies }; > } > >-std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > UNUSED_PARAM(frameID); > UNUSED_PARAM(pageID); >@@ -264,7 +264,7 @@ bool NetworkStorageSession::cookiesEnabled() const > return policy == CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain || policy == CFHTTPCookieStorageAcceptPolicyExclusivelyFromMainDocumentDomain || policy == CFHTTPCookieStorageAcceptPolicyAlways; > } > >-bool NetworkStorageSession::getRawCookies(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) const >+bool NetworkStorageSession::getRawCookies(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, Vector<Cookie>& rawCookies) const > { > UNUSED_PARAM(frameID); > UNUSED_PARAM(pageID); >diff --git a/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm b/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm >index 63740352c4a627ed6feed69ffeb09d197a8874c7..557e977b4d72ac8197e99e296e4c21007673cc6c 100644 >--- a/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm >+++ b/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm >@@ -294,7 +294,7 @@ static RetainPtr<NSArray> filterCookies(NSArray *unfilteredCookies, Optional<Sec > return filteredCookies; > } > >-static NSArray *cookiesForURL(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID) >+static NSArray *cookiesForURL(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID) > { > #if ENABLE(RESOURCE_LOAD_STATISTICS) > if (session.shouldBlockCookies(firstParty, url, frameID, pageID)) >@@ -307,7 +307,7 @@ static NSArray *cookiesForURL(const NetworkStorageSession& session, const URL& f > } > > enum IncludeHTTPOnlyOrNot { DoNotIncludeHTTPOnly, IncludeHTTPOnly }; >-static std::pair<String, bool> cookiesForSession(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeHTTPOnlyOrNot includeHTTPOnly, IncludeSecureCookies includeSecureCookies) >+static std::pair<String, bool> cookiesForSession(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeHTTPOnlyOrNot includeHTTPOnly, IncludeSecureCookies includeSecureCookies) > { > ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); > >@@ -363,12 +363,12 @@ static void deleteAllHTTPCookies(CFHTTPCookieStorageRef cookieStorage) > CFHTTPCookieStorageDeleteAllCookies(cookieStorage); > } > >-std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > return cookiesForSession(*this, firstParty, sameSiteInfo, url, frameID, pageID, DoNotIncludeHTTPOnly, includeSecureCookies); > } > >-std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > return cookiesForSession(*this, firstParty, sameSiteInfo, url, frameID, pageID, IncludeHTTPOnly, includeSecureCookies); > } >@@ -378,7 +378,7 @@ std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(con > return cookiesForSession(*this, headerFieldProxy.firstParty, headerFieldProxy.sameSiteInfo, headerFieldProxy.url, headerFieldProxy.frameID, headerFieldProxy.pageID, IncludeHTTPOnly, headerFieldProxy.includeSecureCookies); > } > >-void NetworkStorageSession::setCookiesFromDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieStr) const >+void NetworkStorageSession::setCookiesFromDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, const String& cookieStr) const > { > ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); > >@@ -443,7 +443,7 @@ bool NetworkStorageSession::cookiesEnabled() const > return false; > } > >-bool NetworkStorageSession::getRawCookies(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) const >+bool NetworkStorageSession::getRawCookies(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, Vector<Cookie>& rawCookies) const > { > rawCookies.clear(); > BEGIN_BLOCK_OBJC_EXCEPTIONS; >diff --git a/Source/WebCore/platform/network/curl/CookieJarCurl.cpp b/Source/WebCore/platform/network/curl/CookieJarCurl.cpp >index 2c11568fce5b2891260da3be91f8917c085127a8..29b4005025330079af4572ab9daca6c5d83eb028 100644 >--- a/Source/WebCore/platform/network/curl/CookieJarCurl.cpp >+++ b/Source/WebCore/platform/network/curl/CookieJarCurl.cpp >@@ -59,10 +59,9 @@ static String cookiesForSession(const NetworkStorageSession& session, const URL& > return cookies.toString(); > } > >-void CookieJarCurl::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& value) const >+void CookieJarCurl::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier>, const String& value) const > { > UNUSED_PARAM(frameID); >- UNUSED_PARAM(pageID); > > CookieJarDB& cookieJarDB = session.cookieDatabase(); > cookieJarDB.setCookie(firstParty, url, value, CookieJarDB::Source::Script); >@@ -74,7 +73,7 @@ void CookieJarCurl::setCookiesFromHTTPResponse(const NetworkStorageSession& sess > cookieJarDB.setCookie(firstParty, url, value, CookieJarDB::Source::Network); > } > >-std::pair<String, bool> CookieJarCurl::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const >+std::pair<String, bool> CookieJarCurl::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies) const > { > UNUSED_PARAM(frameID); > UNUSED_PARAM(pageID); >@@ -83,7 +82,7 @@ std::pair<String, bool> CookieJarCurl::cookiesForDOM(const NetworkStorageSession > return { cookiesForSession(session, firstParty, url, false), false }; > } > >-std::pair<String, bool> CookieJarCurl::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const >+std::pair<String, bool> CookieJarCurl::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies) const > { > UNUSED_PARAM(frameID); > UNUSED_PARAM(pageID); >@@ -113,7 +112,7 @@ bool CookieJarCurl::cookiesEnabled(const NetworkStorageSession& session) const > return session.cookieDatabase().isEnabled(); > } > >-bool CookieJarCurl::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) const >+bool CookieJarCurl::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, Vector<Cookie>& rawCookies) const > { > UNUSED_PARAM(frameID); > UNUSED_PARAM(pageID); >diff --git a/Source/WebCore/platform/network/curl/CookieJarCurl.h b/Source/WebCore/platform/network/curl/CookieJarCurl.h >index 8941023f8068ea7480b7c50d5ce6f8df55ce2b93..24a05a227ae06aba1143152a8fac84829e01f410 100644 >--- a/Source/WebCore/platform/network/curl/CookieJarCurl.h >+++ b/Source/WebCore/platform/network/curl/CookieJarCurl.h >@@ -24,6 +24,7 @@ > > #pragma once > >+#include "PageIdentifier.h" > #include <wtf/Forward.h> > #include <wtf/HashSet.h> > #include <wtf/URL.h> >@@ -41,15 +42,15 @@ enum class CookieAcceptPolicy; > > class CookieJarCurl { > public: >- std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const; >- void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) const; >+ std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, IncludeSecureCookies) const; >+ void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, const String&) const; > void setCookiesFromHTTPResponse(const NetworkStorageSession&, const URL& firstParty, const URL&, const String&) const; > void setCookieAcceptPolicy(const NetworkStorageSession&, CookieAcceptPolicy) const; > CookieAcceptPolicy cookieAcceptPolicy(const NetworkStorageSession&) const; > bool cookiesEnabled(const NetworkStorageSession&) const; >- std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const; >+ std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, IncludeSecureCookies) const; > std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const CookieRequestHeaderFieldProxy&) const; >- bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>&) const; >+ bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<PageIdentifier>, Vector<Cookie>&) const; > void deleteCookie(const NetworkStorageSession&, const URL&, const String&) const; > void getHostnamesWithCookies(const NetworkStorageSession&, HashSet<String>& hostnames) const; > void deleteCookiesForHostnames(const NetworkStorageSession&, const Vector<String>& cookieHostNames) const; >diff --git a/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp b/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp >index 894c86afe8f740aedd28ad97272751eeba384323..6872b0ac9b0019de583eb268c8c945799ef9437a 100644 >--- a/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp >+++ b/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp >@@ -80,7 +80,7 @@ CookieJarDB& NetworkStorageSession::cookieDatabase() const > return m_cookieDatabase; > } > >-void NetworkStorageSession::setCookiesFromDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& value) const >+void NetworkStorageSession::setCookiesFromDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, const String& value) const > { > cookieStorage().setCookiesFromDOM(*this, firstParty, sameSiteInfo, url, frameID, pageID, value); > } >@@ -90,7 +90,7 @@ bool NetworkStorageSession::cookiesEnabled() const > return cookieStorage().cookiesEnabled(*this); > } > >-std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > return cookieStorage().cookiesForDOM(*this, firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); > } >@@ -154,7 +154,7 @@ Vector<Cookie> NetworkStorageSession::getCookies(const URL&) > return { }; > } > >-bool NetworkStorageSession::getRawCookies(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) const >+bool NetworkStorageSession::getRawCookies(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, Vector<Cookie>& rawCookies) const > { > return cookieStorage().getRawCookies(*this, firstParty, sameSiteInfo, url, frameID, pageID, rawCookies); > } >@@ -164,7 +164,7 @@ void NetworkStorageSession::flushCookieStore() > // FIXME: Implement for WebKit to use. > } > >-std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > return cookieStorage().cookieRequestHeaderFieldValue(*this, firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); > } >diff --git a/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp b/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp >index 1f75877a82b318394761123be6f585a4761cf896..f6641efeb44c73434e4d15a4a5abedd856f20e6f 100644 >--- a/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp >+++ b/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp >@@ -291,7 +291,7 @@ static inline bool httpOnlyCookieExists(const GSList* cookies, const gchar* name > return false; > } > >-void NetworkStorageSession::setCookiesFromDOM(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& value) const >+void NetworkStorageSession::setCookiesFromDOM(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, const String& value) const > { > UNUSED_PARAM(frameID); > UNUSED_PARAM(pageID); >@@ -444,7 +444,7 @@ Vector<Cookie> NetworkStorageSession::getCookies(const URL& url) > return cookies; > } > >-bool NetworkStorageSession::getRawCookies(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) const >+bool NetworkStorageSession::getRawCookies(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, Vector<Cookie>& rawCookies) const > { > UNUSED_PARAM(firstParty); > UNUSED_PARAM(frameID); >@@ -514,7 +514,7 @@ static std::pair<String, bool> cookiesForSession(const NetworkStorageSession& se > return { String::fromUTF8(cookieHeader.get()), didAccessSecureCookies }; > } > >-std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > UNUSED_PARAM(firstParty); > UNUSED_PARAM(frameID); >@@ -522,7 +522,7 @@ std::pair<String, bool> NetworkStorageSession::cookiesForDOM(const URL& firstPar > return cookiesForSession(*this, url, false, includeSecureCookies); > } > >-std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const >+std::pair<String, bool> NetworkStorageSession::cookieRequestHeaderFieldValue(const URL& firstParty, const SameSiteInfo&, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies) const > { > UNUSED_PARAM(firstParty); > UNUSED_PARAM(frameID); >diff --git a/Source/WebCore/platform/network/soup/ResourceRequest.h b/Source/WebCore/platform/network/soup/ResourceRequest.h >index 9661bc437e98542b6c5c1d664896f60285a7fb3d..543902ff534ea50a4deb05162c2eeb35ba2d7d96 100644 >--- a/Source/WebCore/platform/network/soup/ResourceRequest.h >+++ b/Source/WebCore/platform/network/soup/ResourceRequest.h >@@ -27,6 +27,7 @@ > #ifndef ResourceRequest_h > #define ResourceRequest_h > >+#include "PageIdentifier.h" > #include "ResourceRequestBase.h" > #include "URLSoup.h" > >@@ -38,7 +39,6 @@ namespace WebCore { > : ResourceRequestBase(URL({ }, url), ResourceRequestCachePolicy::UseProtocolCachePolicy) > , m_acceptEncoding(true) > , m_soupFlags(static_cast<SoupMessageFlags>(0)) >- , m_initiatingPageID(0) > { > } > >@@ -46,7 +46,6 @@ namespace WebCore { > : ResourceRequestBase(url, ResourceRequestCachePolicy::UseProtocolCachePolicy) > , m_acceptEncoding(true) > , m_soupFlags(static_cast<SoupMessageFlags>(0)) >- , m_initiatingPageID(0) > { > } > >@@ -54,7 +53,6 @@ namespace WebCore { > : ResourceRequestBase(url, policy) > , m_acceptEncoding(true) > , m_soupFlags(static_cast<SoupMessageFlags>(0)) >- , m_initiatingPageID(0) > { > setHTTPReferrer(referrer); > } >@@ -63,7 +61,6 @@ namespace WebCore { > : ResourceRequestBase(URL(), ResourceRequestCachePolicy::UseProtocolCachePolicy) > , m_acceptEncoding(true) > , m_soupFlags(static_cast<SoupMessageFlags>(0)) >- , m_initiatingPageID(0) > { > } > >@@ -71,7 +68,6 @@ namespace WebCore { > : ResourceRequestBase(URL(), ResourceRequestCachePolicy::UseProtocolCachePolicy) > , m_acceptEncoding(true) > , m_soupFlags(static_cast<SoupMessageFlags>(0)) >- , m_initiatingPageID(0) > { > updateFromSoupMessage(soupMessage); > } >@@ -80,7 +76,6 @@ namespace WebCore { > : ResourceRequestBase(soupURIToURL(soup_request_get_uri(soupRequest)), ResourceRequestCachePolicy::UseProtocolCachePolicy) > , m_acceptEncoding(true) > , m_soupFlags(static_cast<SoupMessageFlags>(0)) >- , m_initiatingPageID(0) > { > updateFromSoupRequest(soupRequest); > } >@@ -100,8 +95,8 @@ namespace WebCore { > SoupMessageFlags soupMessageFlags() const { return m_soupFlags; } > void setSoupMessageFlags(SoupMessageFlags soupFlags) { m_soupFlags = soupFlags; } > >- uint64_t initiatingPageID() const { return m_initiatingPageID; } >- void setInitiatingPageID(uint64_t pageID) { m_initiatingPageID = pageID; } >+ PageIdentifier initiatingPageID() const { return m_initiatingPageID; } >+ void setInitiatingPageID(PageIdentifier pageID) { m_initiatingPageID = pageID; } > > GUniquePtr<SoupURI> createSoupURI() const; > >@@ -113,7 +108,7 @@ namespace WebCore { > > bool m_acceptEncoding : 1; > SoupMessageFlags m_soupFlags; >- uint64_t m_initiatingPageID; >+ PageIdentifier m_initiatingPageID; > > void updateSoupMessageMembers(SoupMessage*) const; > void updateSoupMessageBody(SoupMessage*) const; >@@ -162,10 +157,11 @@ bool ResourceRequest::decodeWithPlatformData(Decoder& decoder) > return false; > m_soupFlags = static_cast<SoupMessageFlags>(soupMessageFlags); > >- uint64_t initiatingPageID; >- if (!decoder.decode(initiatingPageID)) >+ Optional<PageIdentifier> initiatingPageID; >+ decoder >> initiatingPageID; >+ if (!initiatingPageID) > return false; >- m_initiatingPageID = initiatingPageID; >+ m_initiatingPageID = *initiatingPageID; > > return true; > } >diff --git a/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp b/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp >index 0f6ea19787a46c7474b41648f24584957b00d2a5..0ed25b37d5f80876812538770890af9b88e9364b 100644 >--- a/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp >+++ b/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp >@@ -183,7 +183,7 @@ void ResourceRequest::updateSoupRequest(SoupRequest* soupRequest) const > { > if (m_initiatingPageID) { > uint64_t* initiatingPageIDPtr = static_cast<uint64_t*>(fastMalloc(sizeof(uint64_t))); >- *initiatingPageIDPtr = m_initiatingPageID; >+ *initiatingPageIDPtr = m_initiatingPageID.toUInt64(); > g_object_set_data_full(G_OBJECT(soupRequest), g_intern_static_string(gSoupRequestInitiatingPageIDKey), initiatingPageIDPtr, fastFree); > } > >@@ -194,7 +194,7 @@ void ResourceRequest::updateSoupRequest(SoupRequest* soupRequest) const > void ResourceRequest::updateFromSoupRequest(SoupRequest* soupRequest) > { > uint64_t* initiatingPageIDPtr = static_cast<uint64_t*>(g_object_get_data(G_OBJECT(soupRequest), gSoupRequestInitiatingPageIDKey)); >- m_initiatingPageID = initiatingPageIDPtr ? *initiatingPageIDPtr : 0; >+ m_initiatingPageID = makeObjectIdentifier<PageIdentifierType>(initiatingPageIDPtr ? *initiatingPageIDPtr : 0); > } > > unsigned initializeMaximumHTTPConnectionCountPerHost() >diff --git a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp >index 879c0b19e966f2969ba0af478b6e83e6305b940b..b689c3e25ad823ecf6d304ee789ca9f345da2d42 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp >+++ b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp >@@ -716,7 +716,7 @@ void ResourceLoadStatisticsDatabaseStore::syncStorageImmediately() > m_database.runVacuumCommand(); > } > >-void ResourceLoadStatisticsDatabaseStore::hasStorageAccess(const SubFrameDomain& subFrameDomain, const TopFrameDomain& topFrameDomain, Optional<FrameID> frameID, PageID pageID, CompletionHandler<void(bool)>&& completionHandler) >+void ResourceLoadStatisticsDatabaseStore::hasStorageAccess(const SubFrameDomain& subFrameDomain, const TopFrameDomain& topFrameDomain, Optional<FrameID> frameID, PageIdentifier pageID, CompletionHandler<void(bool)>&& completionHandler) > { > ASSERT(!RunLoop::isMain()); > >@@ -743,7 +743,7 @@ void ResourceLoadStatisticsDatabaseStore::hasStorageAccess(const SubFrameDomain& > }); > } > >-void ResourceLoadStatisticsDatabaseStore::requestStorageAccess(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, FrameID frameID, PageID pageID, CompletionHandler<void(StorageAccessStatus)>&& completionHandler) >+void ResourceLoadStatisticsDatabaseStore::requestStorageAccess(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, FrameID frameID, PageIdentifier pageID, CompletionHandler<void(StorageAccessStatus)>&& completionHandler) > { > ASSERT(!RunLoop::isMain()); > >@@ -795,7 +795,7 @@ void ResourceLoadStatisticsDatabaseStore::requestStorageAccess(SubFrameDomain&& > }); > } > >-void ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&& domainInNeedOfStorageAccess, OpenerPageID openerPageID, OpenerDomain&& openerDomain) >+void ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&& domainInNeedOfStorageAccess, PageIdentifier openerPageID, OpenerDomain&& openerDomain) > { > ASSERT(domainInNeedOfStorageAccess != openerDomain); > ASSERT(!RunLoop::isMain()); >@@ -814,7 +814,7 @@ void ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener(Domain > grantStorageAccessInternal(WTFMove(domainInNeedOfStorageAccess), WTFMove(openerDomain), WTF::nullopt, openerPageID, StorageAccessPromptWasShown::No, [](StorageAccessWasGranted) { }); > } > >-void ResourceLoadStatisticsDatabaseStore::grantStorageAccess(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, uint64_t frameID, uint64_t pageID, StorageAccessPromptWasShown promptWasShown, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) >+void ResourceLoadStatisticsDatabaseStore::grantStorageAccess(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, uint64_t frameID, PageIdentifier pageID, StorageAccessPromptWasShown promptWasShown, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) > { > ASSERT(!RunLoop::isMain()); > >@@ -828,7 +828,7 @@ void ResourceLoadStatisticsDatabaseStore::grantStorageAccess(SubFrameDomain&& su > grantStorageAccessInternal(WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID, pageID, promptWasShown, WTFMove(completionHandler)); > } > >-void ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, Optional<FrameID> frameID, PageID pageID, StorageAccessPromptWasShown promptWasShownNowOrEarlier, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) >+void ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, Optional<FrameID> frameID, PageIdentifier pageID, StorageAccessPromptWasShown promptWasShownNowOrEarlier, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) > { > ASSERT(!RunLoop::isMain()); > >diff --git a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h >index bab2b7aeab760d2a3e1ecbde8b75853755e3ae90..bfc2339685332002626789431ae073b2d3975f43 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h >+++ b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h >@@ -64,7 +64,7 @@ public: > void syncStorageIfNeeded() override; > void syncStorageImmediately() override; > >- void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, OpenerPageID, OpenerDomain&&) override; >+ void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, WebCore::PageIdentifier openerID, OpenerDomain&&) override; > > void grandfatherDataForDomains(const HashSet<RegistrableDomain>&) override; > >@@ -91,9 +91,9 @@ public: > > void calculateAndSubmitTelemetry() const override; > >- void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, PageID, CompletionHandler<void(bool)>&&) override; >- void requestStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, PageID, CompletionHandler<void(StorageAccessStatus)>&&) override; >- void grantStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, PageID, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&) override; >+ void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, WebCore::PageIdentifier, CompletionHandler<void(bool)>&&) override; >+ void requestStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, WebCore::PageIdentifier, CompletionHandler<void(StorageAccessStatus)>&&) override; >+ void grantStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, WebCore::PageIdentifier, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&) override; > > void logFrameNavigation(const NavigatedToDomain&, const TopFrameDomain&, const NavigatedFromDomain&, bool isRedirect, bool isMainFrame) override; > void logUserInteraction(const TopFrameDomain&) override; >@@ -152,7 +152,7 @@ private: > void setPrevalentResource(const RegistrableDomain&, ResourceLoadPrevalence); > unsigned recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain(unsigned primaryDomainID, StdSet<unsigned>& nonPrevalentRedirectionSources, unsigned numberOfRecursiveCalls); > void setDomainsAsPrevalent(StdSet<unsigned>&&); >- void grantStorageAccessInternal(SubFrameDomain&&, TopFrameDomain&&, Optional<FrameID>, PageID, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&); >+ void grantStorageAccessInternal(SubFrameDomain&&, TopFrameDomain&&, Optional<FrameID>, WebCore::PageIdentifier, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&); > void markAsPrevalentIfHasRedirectedToPrevalent(); > Vector<RegistrableDomain> ensurePrevalentResourcesForDebugMode() override; > void removeDataRecords(CompletionHandler<void()>&&); >diff --git a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp >index 0ee7f963894615dfd135b184090b53f81bd9dff4..a5f2624e4334ce9039faa5e2d1e5c41fd0d087c6 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp >+++ b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp >@@ -200,7 +200,7 @@ void ResourceLoadStatisticsMemoryStore::syncStorageImmediately() > m_persistentStorage->scheduleOrWriteMemoryStore(ResourceLoadStatisticsPersistentStorage::ForceImmediateWrite::Yes); > } > >-void ResourceLoadStatisticsMemoryStore::hasStorageAccess(const SubFrameDomain& subFrameDomain, const TopFrameDomain& topFrameDomain, Optional<FrameID> frameID, PageID pageID, CompletionHandler<void(bool)>&& completionHandler) >+void ResourceLoadStatisticsMemoryStore::hasStorageAccess(const SubFrameDomain& subFrameDomain, const TopFrameDomain& topFrameDomain, Optional<FrameID> frameID, PageIdentifier pageID, CompletionHandler<void(bool)>&& completionHandler) > { > ASSERT(!RunLoop::isMain()); > >@@ -224,7 +224,7 @@ void ResourceLoadStatisticsMemoryStore::hasStorageAccess(const SubFrameDomain& s > }); > } > >-void ResourceLoadStatisticsMemoryStore::requestStorageAccess(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, FrameID frameID, uint64_t pageID, CompletionHandler<void(StorageAccessStatus)>&& completionHandler) >+void ResourceLoadStatisticsMemoryStore::requestStorageAccess(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, FrameID frameID, PageIdentifier pageID, CompletionHandler<void(StorageAccessStatus)>&& completionHandler) > { > ASSERT(!RunLoop::isMain()); > >@@ -266,7 +266,7 @@ void ResourceLoadStatisticsMemoryStore::requestStorageAccess(SubFrameDomain&& su > }); > } > >-void ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&& domainInNeedOfStorageAccess, OpenerPageID openerPageID, OpenerDomain&& openerDomain) >+void ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&& domainInNeedOfStorageAccess, PageIdentifier openerPageID, OpenerDomain&& openerDomain) > { > ASSERT(domainInNeedOfStorageAccess != openerDomain); > ASSERT(!RunLoop::isMain()); >@@ -287,7 +287,7 @@ void ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener(DomainIn > grantStorageAccessInternal(WTFMove(domainInNeedOfStorageAccess), WTFMove(openerDomain), WTF::nullopt, openerPageID, StorageAccessPromptWasShown::No, [](StorageAccessWasGranted) { }); > } > >-void ResourceLoadStatisticsMemoryStore::grantStorageAccess(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, uint64_t frameID, uint64_t pageID, StorageAccessPromptWasShown promptWasShown, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) >+void ResourceLoadStatisticsMemoryStore::grantStorageAccess(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, uint64_t frameID, PageIdentifier pageID, StorageAccessPromptWasShown promptWasShown, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) > { > ASSERT(!RunLoop::isMain()); > >@@ -299,7 +299,7 @@ void ResourceLoadStatisticsMemoryStore::grantStorageAccess(SubFrameDomain&& subF > grantStorageAccessInternal(WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID, pageID, promptWasShown, WTFMove(completionHandler)); > } > >-void ResourceLoadStatisticsMemoryStore::grantStorageAccessInternal(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, Optional<FrameID> frameID, PageID pageID, StorageAccessPromptWasShown promptWasShownNowOrEarlier, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) >+void ResourceLoadStatisticsMemoryStore::grantStorageAccessInternal(SubFrameDomain&& subFrameDomain, TopFrameDomain&& topFrameDomain, Optional<FrameID> frameID, PageIdentifier pageID, StorageAccessPromptWasShown promptWasShownNowOrEarlier, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) > { > ASSERT(!RunLoop::isMain()); > >diff --git a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h >index 44efbf4dec14f202702acad07768f5ac820b805a..45f7e1b759693c1103a3d6627316d6fce02e4ce9 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h >+++ b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h >@@ -70,7 +70,7 @@ public: > void syncStorageIfNeeded() override; > void syncStorageImmediately() override; > >- void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, OpenerPageID, OpenerDomain&&) override; >+ void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, WebCore::PageIdentifier, OpenerDomain&&) override; > > void grandfatherDataForDomains(const HashSet<RegistrableDomain>&) override; > >@@ -97,9 +97,9 @@ public: > > void calculateAndSubmitTelemetry() const override; > >- void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, PageID, CompletionHandler<void(bool)>&&) override; >- void requestStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, PageID, CompletionHandler<void(StorageAccessStatus)>&&) override; >- void grantStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, PageID, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&) override; >+ void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, WebCore::PageIdentifier, CompletionHandler<void(bool)>&&) override; >+ void requestStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, WebCore::PageIdentifier, CompletionHandler<void(StorageAccessStatus)>&&) override; >+ void grantStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, WebCore::PageIdentifier, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&) override; > > void logFrameNavigation(const NavigatedToDomain&, const TopFrameDomain&, const NavigatedFromDomain&, bool isRedirect, bool isMainFrame) override; > void logUserInteraction(const TopFrameDomain&) override; >@@ -123,7 +123,7 @@ private: > void incrementRecordsDeletedCountForDomains(HashSet<RegistrableDomain>&&) override; > void setPrevalentResource(ResourceLoadStatistics&, ResourceLoadPrevalence); > unsigned recursivelyGetAllDomainsThatHaveRedirectedToThisDomain(const ResourceLoadStatistics&, HashSet<RedirectedToDomain>&, unsigned numberOfRecursiveCalls) const; >- void grantStorageAccessInternal(SubFrameDomain&&, TopFrameDomain&&, Optional<FrameID>, PageID, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&); >+ void grantStorageAccessInternal(SubFrameDomain&&, TopFrameDomain&&, Optional<FrameID>, WebCore::PageIdentifier, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&); > void markAsPrevalentIfHasRedirectedToPrevalent(ResourceLoadStatistics&); > bool isPrevalentDueToDebugMode(ResourceLoadStatistics&); > Vector<RegistrableDomain> ensurePrevalentResourcesForDebugMode() override; >diff --git a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h >index 0b5775bbb779cc1f1b945621b9a0552484c096c5..d7798b25d1e3bbbb78a87ab3e1a5a3139f14ba82 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h >+++ b/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h >@@ -90,8 +90,6 @@ public: > using NavigatedToDomain = WebCore::RegistrableDomain; > using DomainInNeedOfStorageAccess = WebCore::RegistrableDomain; > using OpenerDomain = WebCore::RegistrableDomain; >- using OpenerPageID = uint64_t; >- using PageID = uint64_t; > using FrameID = uint64_t; > > virtual ~ResourceLoadStatisticsStore(); >@@ -110,7 +108,7 @@ public: > virtual void syncStorageIfNeeded() = 0; > virtual void syncStorageImmediately() = 0; > >- virtual void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, OpenerPageID, OpenerDomain&&) = 0; >+ virtual void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, WebCore::PageIdentifier openerID, OpenerDomain&&) = 0; > void removeAllStorageAccess(CompletionHandler<void()>&&); > > void grandfatherExistingWebsiteData(CompletionHandler<void()>&&); >@@ -161,9 +159,9 @@ public: > bool isDebugModeEnabled() const { return m_debugModeEnabled; }; > void setPrevalentResourceForDebugMode(const RegistrableDomain&); > >- virtual void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, PageID, CompletionHandler<void(bool)>&&) = 0; >- virtual void requestStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, PageID, CompletionHandler<void(StorageAccessStatus)>&&) = 0; >- virtual void grantStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, PageID, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&) = 0; >+ virtual void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, WebCore::PageIdentifier, CompletionHandler<void(bool)>&&) = 0; >+ virtual void requestStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, WebCore::PageIdentifier, CompletionHandler<void(StorageAccessStatus)>&&) = 0; >+ virtual void grantStorageAccess(SubFrameDomain&&, TopFrameDomain&&, FrameID, WebCore::PageIdentifier, WebCore::StorageAccessPromptWasShown, CompletionHandler<void(WebCore::StorageAccessWasGranted)>&&) = 0; > > virtual void logFrameNavigation(const NavigatedToDomain&, const TopFrameDomain&, const NavigatedFromDomain&, bool isRedirect, bool isMainFrame) = 0; > virtual void logUserInteraction(const TopFrameDomain&) = 0; >diff --git a/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp b/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp >index 871b19d2f07486e0f4bb763c69daa1aaff87c992..622430cd8e4f09ecaf8fa368a389f0cab87c103d 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp >+++ b/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp >@@ -275,7 +275,7 @@ void WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated(Vector<WebCor > }); > } > >-void WebResourceLoadStatisticsStore::hasStorageAccess(const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, Optional<uint64_t> frameID, uint64_t pageID, CompletionHandler<void(bool)>&& completionHandler) >+void WebResourceLoadStatisticsStore::hasStorageAccess(const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, Optional<uint64_t> frameID, PageIdentifier pageID, CompletionHandler<void(bool)>&& completionHandler) > { > ASSERT(subFrameDomain != topFrameDomain); > ASSERT(RunLoop::isMain()); >@@ -298,12 +298,12 @@ void WebResourceLoadStatisticsStore::hasStorageAccess(const RegistrableDomain& s > }); > } > >-bool WebResourceLoadStatisticsStore::hasStorageAccessForFrame(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, uint64_t frameID, uint64_t pageID) >+bool WebResourceLoadStatisticsStore::hasStorageAccessForFrame(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, uint64_t frameID, PageIdentifier pageID) > { > return m_networkSession ? m_networkSession->networkStorageSession().hasStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID) : false; > } > >-void WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(bool hasAccess)>&& callback) >+void WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, uint64_t frameID, PageIdentifier pageID, CompletionHandler<void(bool hasAccess)>&& callback) > { > ASSERT(RunLoop::isMain()); > >@@ -315,7 +315,7 @@ void WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler(const R > callback(false); > } > >-void WebResourceLoadStatisticsStore::requestStorageAccess(const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) >+void WebResourceLoadStatisticsStore::requestStorageAccess(const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, PageIdentifier pageID, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) > { > if (subFrameDomain == topFrameDomain) { > completionHandler(StorageAccessWasGranted::Yes, StorageAccessPromptWasShown::No); >@@ -362,7 +362,7 @@ void WebResourceLoadStatisticsStore::requestStorageAccess(const RegistrableDomai > }); > } > >-void WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener(RegistrableDomain&& domainInNeedOfStorageAccess, uint64_t openerPageID, RegistrableDomain&& openerDomain) >+void WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener(RegistrableDomain&& domainInNeedOfStorageAccess, PageIdentifier openerPageID, RegistrableDomain&& openerDomain) > { > ASSERT(RunLoop::isMain()); > >@@ -375,7 +375,7 @@ void WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener(Registrable > }); > } > >-void WebResourceLoadStatisticsStore::grantStorageAccess(const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, StorageAccessPromptWasShown promptWasShown, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) >+void WebResourceLoadStatisticsStore::grantStorageAccess(const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, PageIdentifier pageID, StorageAccessPromptWasShown promptWasShown, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) > { > ASSERT(RunLoop::isMain()); > postTask([this, subFrameDomain = subFrameDomain.isolatedCopy(), topFrameDomain = topFrameDomain.isolatedCopy(), frameID, pageID, promptWasShown, completionHandler = WTFMove(completionHandler)]() mutable { >@@ -396,7 +396,7 @@ void WebResourceLoadStatisticsStore::grantStorageAccess(const RegistrableDomain& > }); > } > >-StorageAccessWasGranted WebResourceLoadStatisticsStore::grantStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, uint64_t pageID) >+StorageAccessWasGranted WebResourceLoadStatisticsStore::grantStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional<uint64_t> frameID, PageIdentifier pageID) > { > bool isStorageGranted = false; > >@@ -409,7 +409,7 @@ StorageAccessWasGranted WebResourceLoadStatisticsStore::grantStorageAccess(const > return isStorageGranted ? StorageAccessWasGranted::Yes : StorageAccessWasGranted::No; > } > >-void WebResourceLoadStatisticsStore::callGrantStorageAccessHandler(const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, Optional<uint64_t> frameID, uint64_t pageID, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) >+void WebResourceLoadStatisticsStore::callGrantStorageAccessHandler(const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, Optional<uint64_t> frameID, PageIdentifier pageID, CompletionHandler<void(StorageAccessWasGranted)>&& completionHandler) > { > ASSERT(RunLoop::isMain()); > >diff --git a/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h b/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h >index 8759d60166a550ee69a62b171dea86fe3a41b92f..79cf24601c32e705cd8b453f923bfd3663114d80 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h >+++ b/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h >@@ -30,6 +30,7 @@ > #include "Connection.h" > #include "StorageAccessStatus.h" > #include "WebsiteDataType.h" >+#include <WebCore/PageIdentifier.h> > #include <WebCore/RegistrableDomain.h> > #include <wtf/CompletionHandler.h> > #include <wtf/RunLoop.h> >@@ -82,8 +83,6 @@ public: > using NavigatedToDomain = WebCore::RegistrableDomain; > using DomainInNeedOfStorageAccess = WebCore::RegistrableDomain; > using OpenerDomain = WebCore::RegistrableDomain; >- using OpenerPageID = uint64_t; >- using PageID = uint64_t; > using FrameID = uint64_t; > using StorageAccessWasGranted = WebCore::StorageAccessWasGranted; > using StorageAccessPromptWasShown = WebCore::StorageAccessPromptWasShown; >@@ -104,7 +103,7 @@ public: > void setShouldClassifyResourcesBeforeDataRecordsRemoval(bool, CompletionHandler<void()>&&); > void setShouldSubmitTelemetry(bool); > >- void grantStorageAccess(const SubFrameDomain&, const TopFrameDomain&, FrameID, PageID, StorageAccessPromptWasShown, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&&); >+ void grantStorageAccess(const SubFrameDomain&, const TopFrameDomain&, FrameID, WebCore::PageIdentifier, StorageAccessPromptWasShown, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&&); > > void applicationWillTerminate(); > >@@ -118,11 +117,11 @@ public: > void clearUserInteraction(const TopFrameDomain&, CompletionHandler<void()>&&); > void deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType>, HashMap<RegistrableDomain, WebsiteDataToRemove>&&, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&&); > void registrableDomainsWithWebsiteData(OptionSet<WebsiteDataType>, bool shouldNotifyPage, CompletionHandler<void(HashSet<RegistrableDomain>&&)>&&); >- StorageAccessWasGranted grantStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, PageID); >+ StorageAccessWasGranted grantStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, WebCore::PageIdentifier); > void hasHadUserInteraction(const RegistrableDomain&, CompletionHandler<void(bool)>&&); >- void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, PageID, CompletionHandler<void(bool)>&&); >- bool hasStorageAccessForFrame(const SubFrameDomain&, const TopFrameDomain&, FrameID, PageID); >- void requestStorageAccess(const SubFrameDomain&, const TopFrameDomain&, FrameID, PageID, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&&); >+ void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, WebCore::PageIdentifier, CompletionHandler<void(bool)>&&); >+ bool hasStorageAccessForFrame(const SubFrameDomain&, const TopFrameDomain&, FrameID, WebCore::PageIdentifier); >+ void requestStorageAccess(const SubFrameDomain&, const TopFrameDomain&, FrameID, WebCore::PageIdentifier, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&&); > void setLastSeen(const RegistrableDomain&, Seconds, CompletionHandler<void()>&&); > void setPrevalentResource(const RegistrableDomain&, CompletionHandler<void()>&&); > void setVeryPrevalentResource(const RegistrableDomain&, CompletionHandler<void()>&&); >@@ -166,11 +165,11 @@ public: > void setPrevalentResourceForDebugMode(const RegistrableDomain&, CompletionHandler<void()>&&); > > void logTestingEvent(const String&); >- void callGrantStorageAccessHandler(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, PageID, CompletionHandler<void(StorageAccessWasGranted)>&&); >+ void callGrantStorageAccessHandler(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, WebCore::PageIdentifier, CompletionHandler<void(StorageAccessWasGranted)>&&); > void removeAllStorageAccess(CompletionHandler<void()>&&); > void callUpdatePrevalentDomainsToBlockCookiesForHandler(const Vector<RegistrableDomain>&, CompletionHandler<void()>&&); > void callRemoveDomainsHandler(const Vector<RegistrableDomain>&); >- void callHasStorageAccessForFrameHandler(const SubFrameDomain&, const TopFrameDomain&, FrameID, PageID, CompletionHandler<void(bool)>&&); >+ void callHasStorageAccessForFrameHandler(const SubFrameDomain&, const TopFrameDomain&, FrameID, WebCore::PageIdentifier, CompletionHandler<void(bool)>&&); > > void didCreateNetworkProcess(); > >@@ -182,7 +181,7 @@ public: > void notifyPageStatisticsTelemetryFinished(unsigned totalPrevalentResources, unsigned totalPrevalentResourcesWithUserInteraction, unsigned top3SubframeUnderTopFrameOrigins) const; > > void resourceLoadStatisticsUpdated(Vector<ResourceLoadStatistics>&&); >- void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, uint64_t openerPageID, OpenerDomain&&); >+ void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, WebCore::PageIdentifier openerID, OpenerDomain&&); > > private: > explicit WebResourceLoadStatisticsStore(NetworkSession&, const String&, ShouldIncludeLocalhost); >diff --git a/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h b/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h >index 2c971836ada5ae8297b5b57906bc905c183ceb6d..4d3d169f6af9f43b761081cfbfe60afc5a393fd4 100644 >--- a/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h >+++ b/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h >@@ -49,7 +49,7 @@ public: > String referrer; > String userAgent; > PAL::SessionID sessionID; >- uint64_t pageID; >+ WebCore::PageIdentifier pageID; > uint64_t frameID; > WebCore::StoredCredentialsPolicy storedCredentialsPolicy; > }; >diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >index 3d71f8f6b1b6c26db0550f88aa5ee1144210a906..92c8b7ae44fb3b774d6b0598c419c383feb0920e 100644 >--- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >@@ -442,7 +442,7 @@ void NetworkConnectionToWebProcess::removeLoadIdentifier(ResourceLoadIdentifier > ASSERT(!m_networkResourceLoaders.contains(identifier)); > } > >-void NetworkConnectionToWebProcess::pageLoadCompleted(uint64_t webPageID) >+void NetworkConnectionToWebProcess::pageLoadCompleted(PageIdentifier webPageID) > { > stopAllNetworkActivityTrackingForPage(webPageID); > } >@@ -512,7 +512,7 @@ void NetworkConnectionToWebProcess::convertMainResourceLoadToDownload(PAL::Sessi > loader->convertToDownload(downloadID, request, response); > } > >-void NetworkConnectionToWebProcess::cookiesForDOM(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&& completionHandler) >+void NetworkConnectionToWebProcess::cookiesForDOM(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&& completionHandler) > { > auto& networkStorageSession = storageSession(networkProcess(), sessionID); > auto result = networkStorageSession.cookiesForDOM(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); >@@ -525,7 +525,7 @@ void NetworkConnectionToWebProcess::cookiesForDOM(PAL::SessionID sessionID, cons > completionHandler(WTFMove(result.first), result.second); > } > >-void NetworkConnectionToWebProcess::setCookiesFromDOM(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) >+void NetworkConnectionToWebProcess::setCookiesFromDOM(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, const String& cookieString) > { > auto& networkStorageSession = storageSession(networkProcess(), sessionID); > networkStorageSession.setCookiesFromDOM(firstParty, sameSiteInfo, url, frameID, pageID, cookieString); >@@ -542,13 +542,13 @@ void NetworkConnectionToWebProcess::cookiesEnabled(PAL::SessionID sessionID, Com > completionHandler(storageSession(networkProcess(), sessionID).cookiesEnabled()); > } > >-void NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies, CompletionHandler<void(String, bool)>&& completionHandler) >+void NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies, CompletionHandler<void(String, bool)>&& completionHandler) > { > auto result = storageSession(networkProcess(), sessionID).cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); > completionHandler(WTFMove(result.first), result.second); > } > >-void NetworkConnectionToWebProcess::getRawCookies(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, CompletionHandler<void(Vector<WebCore::Cookie>&&)>&& completionHandler) >+void NetworkConnectionToWebProcess::getRawCookies(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, CompletionHandler<void(Vector<WebCore::Cookie>&&)>&& completionHandler) > { > Vector<WebCore::Cookie> result; > storageSession(networkProcess(), sessionID).getRawCookies(firstParty, sameSiteInfo, url, frameID, pageID, result); >@@ -638,13 +638,13 @@ void NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession() > } > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >-void NetworkConnectionToWebProcess::removeStorageAccessForFrame(PAL::SessionID sessionID, uint64_t frameID, uint64_t pageID) >+void NetworkConnectionToWebProcess::removeStorageAccessForFrame(PAL::SessionID sessionID, uint64_t frameID, PageIdentifier pageID) > { > if (auto* storageSession = networkProcess().storageSession(sessionID)) > storageSession->removeStorageAccessForFrame(frameID, pageID); > } > >-void NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics(PAL::SessionID sessionID, uint64_t pageID) >+void NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics(PAL::SessionID sessionID, PageIdentifier pageID) > { > if (auto* storageSession = networkProcess().storageSession(sessionID)) > storageSession->clearPageSpecificDataForResourceLoadStatistics(pageID); >@@ -697,7 +697,7 @@ void NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated(Vector<WebCore > } > } > >-void NetworkConnectionToWebProcess::hasStorageAccess(PAL::SessionID sessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(bool)>&& completionHandler) >+void NetworkConnectionToWebProcess::hasStorageAccess(PAL::SessionID sessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, PageIdentifier pageID, CompletionHandler<void(bool)>&& completionHandler) > { > if (auto networkSession = networkProcess().networkSession(sessionID)) { > if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics()) { >@@ -709,7 +709,7 @@ void NetworkConnectionToWebProcess::hasStorageAccess(PAL::SessionID sessionID, c > completionHandler(true); > } > >-void NetworkConnectionToWebProcess::requestStorageAccess(PAL::SessionID sessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(WebCore::StorageAccessWasGranted wasGranted, WebCore::StorageAccessPromptWasShown promptWasShown)>&& completionHandler) >+void NetworkConnectionToWebProcess::requestStorageAccess(PAL::SessionID sessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, PageIdentifier pageID, CompletionHandler<void(WebCore::StorageAccessWasGranted wasGranted, WebCore::StorageAccessPromptWasShown promptWasShown)>&& completionHandler) > { > if (auto networkSession = networkProcess().networkSession(sessionID)) { > if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics()) { >@@ -721,7 +721,7 @@ void NetworkConnectionToWebProcess::requestStorageAccess(PAL::SessionID sessionI > completionHandler(WebCore::StorageAccessWasGranted::Yes, WebCore::StorageAccessPromptWasShown::No); > } > >-void NetworkConnectionToWebProcess::requestStorageAccessUnderOpener(PAL::SessionID sessionID, WebCore::RegistrableDomain&& domainInNeedOfStorageAccess, uint64_t openerPageID, WebCore::RegistrableDomain&& openerDomain) >+void NetworkConnectionToWebProcess::requestStorageAccessUnderOpener(PAL::SessionID sessionID, WebCore::RegistrableDomain&& domainInNeedOfStorageAccess, PageIdentifier openerPageID, WebCore::RegistrableDomain&& openerDomain) > { > if (auto networkSession = networkProcess().networkSession(sessionID)) { > if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics()) >@@ -745,7 +745,7 @@ void NetworkConnectionToWebProcess::resetOriginAccessWhitelists() > SecurityPolicy::resetOriginAccessWhitelists(); > } > >-Optional<NetworkActivityTracker> NetworkConnectionToWebProcess::startTrackingResourceLoad(uint64_t pageID, ResourceLoadIdentifier resourceID, bool isMainResource, const PAL::SessionID& sessionID) >+Optional<NetworkActivityTracker> NetworkConnectionToWebProcess::startTrackingResourceLoad(PageIdentifier pageID, ResourceLoadIdentifier resourceID, bool isMainResource, const PAL::SessionID& sessionID) > { > if (sessionID.isEphemeral()) > return WTF::nullopt; >@@ -814,7 +814,7 @@ void NetworkConnectionToWebProcess::stopAllNetworkActivityTracking() > m_networkActivityTrackers.clear(); > } > >-void NetworkConnectionToWebProcess::stopAllNetworkActivityTrackingForPage(uint64_t pageID) >+void NetworkConnectionToWebProcess::stopAllNetworkActivityTrackingForPage(PageIdentifier pageID) > { > for (auto& activityTracker : m_networkActivityTrackers) { > if (activityTracker.pageID == pageID) >@@ -826,7 +826,7 @@ void NetworkConnectionToWebProcess::stopAllNetworkActivityTrackingForPage(uint64 > }); > } > >-size_t NetworkConnectionToWebProcess::findRootNetworkActivity(uint64_t pageID) >+size_t NetworkConnectionToWebProcess::findRootNetworkActivity(PageIdentifier pageID) > { > return m_networkActivityTrackers.findMatching([&](const auto& item) { > return item.isRootActivity && item.pageID == pageID; >@@ -903,17 +903,17 @@ void NetworkConnectionToWebProcess::clearConnectionHasUploads() > m_networkProcess->parentProcessConnection()->send(Messages::WebProcessPool::ClearWebProcessHasUploads(m_webProcessIdentifier), 0); > } > >-void NetworkConnectionToWebProcess::webPageWasAdded(PAL::SessionID sessionID, uint64_t pageID, uint64_t oldPageID) >+void NetworkConnectionToWebProcess::webPageWasAdded(PAL::SessionID sessionID, PageIdentifier pageID, WebCore::PageIdentifier oldPageID) > { > m_networkProcess->webPageWasAdded(m_connection.get(), sessionID, pageID, oldPageID); > } > >-void NetworkConnectionToWebProcess::webPageWasRemoved(PAL::SessionID sessionID, uint64_t pageID) >+void NetworkConnectionToWebProcess::webPageWasRemoved(PAL::SessionID sessionID, PageIdentifier pageID) > { > m_networkProcess->webPageWasRemoved(m_connection.get(), sessionID, pageID); > } > >-void NetworkConnectionToWebProcess::webProcessSessionChanged(PAL::SessionID newSessionID, const Vector<uint64_t>& pages) >+void NetworkConnectionToWebProcess::webProcessSessionChanged(PAL::SessionID newSessionID, const Vector<PageIdentifier>& pages) > { > m_networkProcess->webProcessSessionChanged(m_connection.get(), newSessionID, pages); > } >diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h >index cbc7bbfe8f57d75413158104f88a54400942076b..06d57968828658e168c2c81f7281f1f960c804ba 100644 >--- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h >+++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h >@@ -35,6 +35,7 @@ > #include "NetworkResourceLoadMap.h" > #include "WebPaymentCoordinatorProxy.h" > #include <WebCore/NetworkLoadInformation.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/ProcessIdentifier.h> > #include <WebCore/RegistrableDomain.h> > #include <wtf/RefCounted.h> >@@ -133,7 +134,7 @@ public: > m_networkLoadInformationByID.remove(identifier); > } > >- Optional<NetworkActivityTracker> startTrackingResourceLoad(uint64_t pageID, ResourceLoadIdentifier resourceID, bool isMainResource, const PAL::SessionID&); >+ Optional<NetworkActivityTracker> startTrackingResourceLoad(WebCore::PageIdentifier, ResourceLoadIdentifier resourceID, bool isMainResource, const PAL::SessionID&); > void stopTrackingResourceLoad(ResourceLoadIdentifier resourceID, NetworkActivityTracker::CompletionCode); > > WebCore::BlobRegistryImpl& blobRegistry(); >@@ -144,9 +145,9 @@ public: > void setConnectionHasUploads(); > void clearConnectionHasUploads(); > >- void webPageWasAdded(PAL::SessionID, uint64_t pageID, uint64_t oldPageID); >- void webPageWasRemoved(PAL::SessionID, uint64_t pageID); >- void webProcessSessionChanged(PAL::SessionID newSessionID, const Vector<uint64_t>& pages); >+ void webPageWasAdded(PAL::SessionID, WebCore::PageIdentifier, WebCore::PageIdentifier oldPageID); >+ void webPageWasRemoved(PAL::SessionID, WebCore::PageIdentifier); >+ void webProcessSessionChanged(PAL::SessionID newSessionID, const Vector<WebCore::PageIdentifier>& pages); > > private: > NetworkConnectionToWebProcess(NetworkProcess&, IPC::Connection::Identifier); >@@ -170,16 +171,16 @@ private: > void preconnectTo(uint64_t preconnectionIdentifier, NetworkResourceLoadParameters&&); > > void removeLoadIdentifier(ResourceLoadIdentifier); >- void pageLoadCompleted(uint64_t webPageID); >+ void pageLoadCompleted(WebCore::PageIdentifier); > void crossOriginRedirectReceived(ResourceLoadIdentifier, const URL& redirectURL); > void startDownload(PAL::SessionID, DownloadID, const WebCore::ResourceRequest&, const String& suggestedName = { }); > void convertMainResourceLoadToDownload(PAL::SessionID, uint64_t mainResourceLoadIdentifier, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); > >- void cookiesForDOM(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&&); >- void setCookiesFromDOM(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&); >+ void cookiesForDOM(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier>, WebCore::IncludeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&&); >+ void setCookiesFromDOM(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier>, const String&); > void cookiesEnabled(PAL::SessionID, CompletionHandler<void(bool)>&&); >- void cookieRequestHeaderFieldValue(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&&); >- void getRawCookies(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, CompletionHandler<void(Vector<WebCore::Cookie>&&)>&&); >+ void cookieRequestHeaderFieldValue(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier>, WebCore::IncludeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&&); >+ void getRawCookies(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier>, CompletionHandler<void(Vector<WebCore::Cookie>&&)>&&); > void deleteCookie(PAL::SessionID, const URL&, const String& cookieName); > > void registerFileBlobURL(const URL&, const String& path, SandboxExtension::Handle&&, const String& contentType); >@@ -218,17 +219,17 @@ private: > CacheStorageEngineConnection& cacheStorageConnection(); > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >- void removeStorageAccessForFrame(PAL::SessionID, uint64_t frameID, uint64_t pageID); >- void clearPageSpecificDataForResourceLoadStatistics(PAL::SessionID, uint64_t pageID); >+ void removeStorageAccessForFrame(PAL::SessionID, uint64_t frameID, WebCore::PageIdentifier); >+ void clearPageSpecificDataForResourceLoadStatistics(PAL::SessionID, WebCore::PageIdentifier); > > void logUserInteraction(PAL::SessionID, const RegistrableDomain&); > void logWebSocketLoading(PAL::SessionID, const RegistrableDomain& targetDomain, const RegistrableDomain& topFrameDomain, WallTime lastSeen); > void logSubresourceLoading(PAL::SessionID, const RegistrableDomain& targetDomain, const RegistrableDomain& topFrameDomain, WallTime lastSeen); > void logSubresourceRedirect(PAL::SessionID, const RegistrableDomain& sourceDomain, const RegistrableDomain& targetDomain); > void resourceLoadStatisticsUpdated(Vector<WebCore::ResourceLoadStatistics>&&); >- void hasStorageAccess(PAL::SessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(bool)>&&); >- void requestStorageAccess(PAL::SessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&&); >- void requestStorageAccessUnderOpener(PAL::SessionID, WebCore::RegistrableDomain&& domainInNeedOfStorageAccess, uint64_t openerPageID, WebCore::RegistrableDomain&& openerDomain); >+ void hasStorageAccess(PAL::SessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, WebCore::PageIdentifier, CompletionHandler<void(bool)>&&); >+ void requestStorageAccess(PAL::SessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, WebCore::PageIdentifier, CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&&); >+ void requestStorageAccessUnderOpener(PAL::SessionID, WebCore::RegistrableDomain&& domainInNeedOfStorageAccess, WebCore::PageIdentifier openerPageID, WebCore::RegistrableDomain&& openerDomain); > #endif > > void addOriginAccessWhitelistEntry(const String& sourceOrigin, const String& destinationProtocol, const String& destinationHost, bool allowDestinationSubdomains); >@@ -239,29 +240,29 @@ private: > ResourceNetworkActivityTracker() = default; > ResourceNetworkActivityTracker(const ResourceNetworkActivityTracker&) = default; > ResourceNetworkActivityTracker(ResourceNetworkActivityTracker&&) = default; >- ResourceNetworkActivityTracker(uint64_t pageID) >+ ResourceNetworkActivityTracker(WebCore::PageIdentifier pageID) > : pageID { pageID } > , isRootActivity { true } > , networkActivity { NetworkActivityTracker::Label::LoadPage } > { > } > >- ResourceNetworkActivityTracker(uint64_t pageID, ResourceLoadIdentifier resourceID) >+ ResourceNetworkActivityTracker(WebCore::PageIdentifier pageID, ResourceLoadIdentifier resourceID) > : pageID { pageID } > , resourceID { resourceID } > , networkActivity { NetworkActivityTracker::Label::LoadResource } > { > } > >- uint64_t pageID { 0 }; >+ WebCore::PageIdentifier pageID; > ResourceLoadIdentifier resourceID { 0 }; > bool isRootActivity { false }; > NetworkActivityTracker networkActivity; > }; > > void stopAllNetworkActivityTracking(); >- void stopAllNetworkActivityTrackingForPage(uint64_t pageID); >- size_t findRootNetworkActivity(uint64_t pageID); >+ void stopAllNetworkActivityTrackingForPage(WebCore::PageIdentifier); >+ size_t findRootNetworkActivity(WebCore::PageIdentifier); > size_t findNetworkActivityTracker(ResourceLoadIdentifier resourceID); > > #if ENABLE(APPLE_PAY_REMOTE_UI) >diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in >index f7c97eebb213cd783caf4e20469bfa3ce194c8ce..833e74fcf6003eb83ac1de2d8c6bfc0ff25b9fc3 100644 >--- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in >+++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in >@@ -26,18 +26,18 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { > PerformSynchronousLoad(WebKit::NetworkResourceLoadParameters resourceLoadParameters) -> (WebCore::ResourceError error, WebCore::ResourceResponse response, Vector<char> data) Synchronous > LoadPing(WebKit::NetworkResourceLoadParameters resourceLoadParameters) > RemoveLoadIdentifier(uint64_t resourceLoadIdentifier) >- PageLoadCompleted(uint64_t webPageID) >+ PageLoadCompleted(WebCore::PageIdentifier webPageID) > PrefetchDNS(String hostname) > PreconnectTo(uint64_t preconnectionIdentifier, WebKit::NetworkResourceLoadParameters loadParameters); > > StartDownload(PAL::SessionID sessionID, WebKit::DownloadID downloadID, WebCore::ResourceRequest request, String suggestedName) > ConvertMainResourceLoadToDownload(PAL::SessionID sessionID, uint64_t mainResourceLoadIdentifier, WebKit::DownloadID downloadID, WebCore::ResourceRequest request, WebCore::ResourceResponse response) > >- CookiesForDOM(PAL::SessionID sessionID, URL firstParty, struct WebCore::SameSiteInfo sameSiteInfo, URL url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, enum:bool WebCore::IncludeSecureCookies includeSecureCookies) -> (String cookieString, bool didAccessSecureCookies) Synchronous >- SetCookiesFromDOM(PAL::SessionID sessionID, URL firstParty, struct WebCore::SameSiteInfo sameSiteInfo, URL url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, String cookieString) >+ CookiesForDOM(PAL::SessionID sessionID, URL firstParty, struct WebCore::SameSiteInfo sameSiteInfo, URL url, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier> pageID, enum:bool WebCore::IncludeSecureCookies includeSecureCookies) -> (String cookieString, bool didAccessSecureCookies) Synchronous >+ SetCookiesFromDOM(PAL::SessionID sessionID, URL firstParty, struct WebCore::SameSiteInfo sameSiteInfo, URL url, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier> pageID, String cookieString) > CookiesEnabled(PAL::SessionID sessionID) -> (bool enabled) Synchronous >- CookieRequestHeaderFieldValue(PAL::SessionID sessionID, URL firstParty, struct WebCore::SameSiteInfo sameSiteInfo, URL url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, enum:bool WebCore::IncludeSecureCookies includeSecureCookies) -> (String cookieString, bool didAccessSecureCookies) Synchronous >- GetRawCookies(PAL::SessionID sessionID, URL firstParty, struct WebCore::SameSiteInfo sameSiteInfo, URL url, Optional<uint64_t> frameID, Optional<uint64_t> pageID) -> (Vector<WebCore::Cookie> cookies) Synchronous >+ CookieRequestHeaderFieldValue(PAL::SessionID sessionID, URL firstParty, struct WebCore::SameSiteInfo sameSiteInfo, URL url, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier> pageID, enum:bool WebCore::IncludeSecureCookies includeSecureCookies) -> (String cookieString, bool didAccessSecureCookies) Synchronous >+ GetRawCookies(PAL::SessionID sessionID, URL firstParty, struct WebCore::SameSiteInfo sameSiteInfo, URL url, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier> pageID) -> (Vector<WebCore::Cookie> cookies) Synchronous > DeleteCookie(PAL::SessionID sessionID, URL url, String cookieName) > > RegisterFileBlobURL(URL url, String path, WebKit::SandboxExtension::Handle extensionHandle, String contentType) >@@ -56,16 +56,16 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { > EnsureLegacyPrivateBrowsingSession() > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >- RemoveStorageAccessForFrame(PAL::SessionID sessionID, uint64_t frameID, uint64_t pageID); >- ClearPageSpecificDataForResourceLoadStatistics(PAL::SessionID sessionID, uint64_t pageID); >+ RemoveStorageAccessForFrame(PAL::SessionID sessionID, uint64_t frameID, WebCore::PageIdentifier pageID); >+ ClearPageSpecificDataForResourceLoadStatistics(PAL::SessionID sessionID, WebCore::PageIdentifier pageID); > LogUserInteraction(PAL::SessionID sessionID, WebCore::RegistrableDomain domain) > LogWebSocketLoading(PAL::SessionID sessionID, WebCore::RegistrableDomain targetDomain, WebCore::RegistrableDomain topFrameDomain, WallTime lastSeen) > LogSubresourceLoading(PAL::SessionID sessionID, WebCore::RegistrableDomain targetDomain, WebCore::RegistrableDomain topFrameDomain, WallTime lastSeen) > LogSubresourceRedirect(PAL::SessionID sessionID, WebCore::RegistrableDomain sourceDomain, WebCore::RegistrableDomain targetDomain) > ResourceLoadStatisticsUpdated(Vector<WebCore::ResourceLoadStatistics> statistics) >- HasStorageAccess(PAL::SessionID sessionID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain, uint64_t frameID, uint64_t pageID) -> (bool hasStorageAccess) Async >- RequestStorageAccess(PAL::SessionID sessionID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain, uint64_t frameID, uint64_t pageID) -> (enum:bool WebCore::StorageAccessWasGranted wasGranted, enum:bool WebCore::StorageAccessPromptWasShown promptWasShown) Async >- RequestStorageAccessUnderOpener(PAL::SessionID sessionID, WebCore::RegistrableDomain domainInNeedOfStorageAccess, uint64_t openerPageID, WebCore::RegistrableDomain openerDomain) >+ HasStorageAccess(PAL::SessionID sessionID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain, uint64_t frameID, WebCore::PageIdentifier pageID) -> (bool hasStorageAccess) Async >+ RequestStorageAccess(PAL::SessionID sessionID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain, uint64_t frameID, WebCore::PageIdentifier pageID) -> (enum:bool WebCore::StorageAccessWasGranted wasGranted, enum:bool WebCore::StorageAccessPromptWasShown promptWasShown) Async >+ RequestStorageAccessUnderOpener(PAL::SessionID sessionID, WebCore::RegistrableDomain domainInNeedOfStorageAccess, WebCore::PageIdentifier openerPageID, WebCore::RegistrableDomain openerDomain) > #endif > > AddOriginAccessWhitelistEntry(String sourceOrigin, String destinationProtocol, String destinationHost, bool allowDestinationSubdomains); >@@ -87,7 +87,7 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { > > SetWebProcessIdentifier(WebCore::ProcessIdentifier processIdentifier) > >- WebPageWasAdded(PAL::SessionID sessionID, uint64_t pageID, uint64_t oldPageID) >- WebPageWasRemoved(PAL::SessionID sessionID, uint64_t pageID) >- WebProcessSessionChanged(PAL::SessionID newSessionID, Vector<uint64_t> pages) >+ WebPageWasAdded(PAL::SessionID sessionID, WebCore::PageIdentifier pageID, WebCore::PageIdentifier oldPageID) >+ WebPageWasRemoved(PAL::SessionID sessionID, WebCore::PageIdentifier pageID) >+ WebProcessSessionChanged(PAL::SessionID newSessionID, Vector<WebCore::PageIdentifier> pages) > } >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >index d14b1de9d91c022b7e0e0382174da8822b93a318..409714d66726a8474aff29a160817f247967b016 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >@@ -48,7 +48,7 @@ static inline bool isSameOrigin(const URL& url, const SecurityOrigin* origin) > return url.protocolIsData() || url.protocolIsBlob() || !origin || origin->canRequest(url); > } > >-NetworkLoadChecker::NetworkLoadChecker(NetworkProcess& networkProcess, FetchOptions&& options, PAL::SessionID sessionID, uint64_t pageID, uint64_t frameID, HTTPHeaderMap&& originalRequestHeaders, URL&& url, RefPtr<SecurityOrigin>&& sourceOrigin, PreflightPolicy preflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled, bool shouldCaptureExtraNetworkLoadMetrics, LoadType requestLoadType) >+NetworkLoadChecker::NetworkLoadChecker(NetworkProcess& networkProcess, FetchOptions&& options, PAL::SessionID sessionID, PageIdentifier pageID, uint64_t frameID, HTTPHeaderMap&& originalRequestHeaders, URL&& url, RefPtr<SecurityOrigin>&& sourceOrigin, PreflightPolicy preflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled, bool shouldCaptureExtraNetworkLoadMetrics, LoadType requestLoadType) > : m_options(WTFMove(options)) > , m_sessionID(sessionID) > , m_networkProcess(networkProcess) >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadChecker.h b/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >index 31d11c3a8aecb2aafd49e5c310398e0ac16ddee7..57df1da4680d2584ee216aadff08de82a136bce9 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >+++ b/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >@@ -54,7 +54,7 @@ class NetworkLoadChecker : public CanMakeWeakPtr<NetworkLoadChecker> { > public: > enum class LoadType : bool { MainFrame, Other }; > >- NetworkLoadChecker(NetworkProcess&, WebCore::FetchOptions&&, PAL::SessionID, uint64_t pageID, uint64_t frameID, WebCore::HTTPHeaderMap&&, URL&&, RefPtr<WebCore::SecurityOrigin>&&, WebCore::PreflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled = false, bool shouldCaptureExtraNetworkLoadMetrics = false, LoadType requestLoadType = LoadType::Other); >+ NetworkLoadChecker(NetworkProcess&, WebCore::FetchOptions&&, PAL::SessionID, WebCore::PageIdentifier, uint64_t frameID, WebCore::HTTPHeaderMap&&, URL&&, RefPtr<WebCore::SecurityOrigin>&&, WebCore::PreflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled = false, bool shouldCaptureExtraNetworkLoadMetrics = false, LoadType requestLoadType = LoadType::Other); > ~NetworkLoadChecker(); > > struct RedirectionTriplet { >@@ -125,7 +125,7 @@ private: > WebCore::StoredCredentialsPolicy m_storedCredentialsPolicy; > PAL::SessionID m_sessionID; > Ref<NetworkProcess> m_networkProcess; >- uint64_t m_pageID; >+ WebCore::PageIdentifier m_pageID; > uint64_t m_frameID; > WebCore::HTTPHeaderMap m_originalRequestHeaders; // Needed for CORS checks. > WebCore::HTTPHeaderMap m_firstRequestHeaders; // Needed for CORS checks. >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadParameters.h b/Source/WebKit/NetworkProcess/NetworkLoadParameters.h >index 896399d13325d014a174bf77b4ca636caf2e0c46..89730cf9fd2699bcfd32ddc38ef8ce03746a3034 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadParameters.h >+++ b/Source/WebKit/NetworkProcess/NetworkLoadParameters.h >@@ -27,6 +27,7 @@ > > #include "NetworkActivityTracker.h" > #include <WebCore/BlobDataFileReference.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/ResourceLoaderOptions.h> > #include <WebCore/ResourceRequest.h> > #include <pal/SessionID.h> >@@ -38,7 +39,7 @@ enum class PreconnectOnly { No, Yes }; > > class NetworkLoadParameters { > public: >- uint64_t webPageID { 0 }; >+ WebCore::PageIdentifier webPageID; > uint64_t webFrameID { 0 }; > WTF::ProcessID parentPID { 0 }; > PAL::SessionID sessionID { PAL::SessionID::emptySessionID() }; >diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp >index d8130854f13e436a6bab58bab276abfd5744b564..e5c2beae58c8da7ba99a230c392493aae73296f6 100644 >--- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp >@@ -1155,7 +1155,7 @@ void NetworkProcess::resetCacheMaxAgeCapForPrevalentResources(PAL::SessionID ses > completionHandler(); > } > >-void NetworkProcess::didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID sessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag> navigationDataTransfer, uint64_t pageID) >+void NetworkProcess::didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID sessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag> navigationDataTransfer, WebCore::PageIdentifier pageID) > { > ASSERT(!navigationDataTransfer.isEmpty()); > >@@ -1961,7 +1961,7 @@ void NetworkProcess::setAllowsAnySSLCertificateForWebSocket(bool allows, Complet > completionHandler(); > } > >-void NetworkProcess::logDiagnosticMessage(uint64_t webPageID, const String& message, const String& description, ShouldSample shouldSample) >+void NetworkProcess::logDiagnosticMessage(PageIdentifier webPageID, const String& message, const String& description, ShouldSample shouldSample) > { > if (!DiagnosticLoggingClient::shouldLogAfterSampling(shouldSample)) > return; >@@ -1969,7 +1969,7 @@ void NetworkProcess::logDiagnosticMessage(uint64_t webPageID, const String& mess > parentProcessConnection()->send(Messages::NetworkProcessProxy::LogDiagnosticMessage(webPageID, message, description, ShouldSample::No), 0); > } > >-void NetworkProcess::logDiagnosticMessageWithResult(uint64_t webPageID, const String& message, const String& description, DiagnosticLoggingResultType result, ShouldSample shouldSample) >+void NetworkProcess::logDiagnosticMessageWithResult(PageIdentifier webPageID, const String& message, const String& description, DiagnosticLoggingResultType result, ShouldSample shouldSample) > { > if (!DiagnosticLoggingClient::shouldLogAfterSampling(shouldSample)) > return; >@@ -1977,7 +1977,7 @@ void NetworkProcess::logDiagnosticMessageWithResult(uint64_t webPageID, const St > parentProcessConnection()->send(Messages::NetworkProcessProxy::LogDiagnosticMessageWithResult(webPageID, message, description, result, ShouldSample::No), 0); > } > >-void NetworkProcess::logDiagnosticMessageWithValue(uint64_t webPageID, const String& message, const String& description, double value, unsigned significantFigures, ShouldSample shouldSample) >+void NetworkProcess::logDiagnosticMessageWithValue(PageIdentifier webPageID, const String& message, const String& description, double value, unsigned significantFigures, ShouldSample shouldSample) > { > if (!DiagnosticLoggingClient::shouldLogAfterSampling(shouldSample)) > return; >@@ -2626,7 +2626,7 @@ void NetworkProcess::removeKeptAliveLoad(NetworkResourceLoader& loader) > session->removeKeptAliveLoad(loader); > } > >-void NetworkProcess::webPageWasAdded(IPC::Connection& connection, PAL::SessionID sessionID, uint64_t pageID, uint64_t oldPageID) >+void NetworkProcess::webPageWasAdded(IPC::Connection& connection, PAL::SessionID sessionID, PageIdentifier pageID, PageIdentifier oldPageID) > { > if (!pageID || !oldPageID) { > LOG_ERROR("Cannot add page with invalid id"); >@@ -2645,13 +2645,13 @@ void NetworkProcess::webPageWasAdded(IPC::Connection& connection, PAL::SessionID > return sessionID; > }); > >- storageManager.createSessionStorageNamespace(pageID, std::numeric_limits<unsigned>::max()); >- storageManager.addAllowedSessionStorageNamespaceConnection(pageID, connection); >+ storageManager.createSessionStorageNamespace(pageID.toUInt64(), std::numeric_limits<unsigned>::max()); >+ storageManager.addAllowedSessionStorageNamespaceConnection(pageID.toUInt64(), connection); > if (pageID != oldPageID) >- storageManager.cloneSessionStorageNamespace(oldPageID, pageID); >+ storageManager.cloneSessionStorageNamespace(oldPageID.toUInt64(), pageID.toUInt64()); > } > >-void NetworkProcess::webPageWasRemoved(IPC::Connection& connection, PAL::SessionID sessionID, uint64_t pageID) >+void NetworkProcess::webPageWasRemoved(IPC::Connection& connection, PAL::SessionID sessionID, PageIdentifier pageID) > { > if (!pageID) { > LOG_ERROR("Cannot remove page with invalid id"); >@@ -2664,8 +2664,8 @@ void NetworkProcess::webPageWasRemoved(IPC::Connection& connection, PAL::Session > return; > > auto& storageManager = session->storageManager(); >- storageManager.removeAllowedSessionStorageNamespaceConnection(pageID, connection); >- storageManager.destroySessionStorageNamespace(pageID); >+ storageManager.removeAllowedSessionStorageNamespaceConnection(pageID.toUInt64(), connection); >+ storageManager.destroySessionStorageNamespace(pageID.toUInt64()); > } > > void NetworkProcess::webProcessWasDisconnected(IPC::Connection& connection) >@@ -2681,7 +2681,7 @@ void NetworkProcess::webProcessWasDisconnected(IPC::Connection& connection) > networkSession(sessionID)->storageManager().processDidCloseConnection(connection); > } > >-void NetworkProcess::webProcessSessionChanged(IPC::Connection& connection, PAL::SessionID newSessionID, const Vector<uint64_t>& pageIDs) >+void NetworkProcess::webProcessSessionChanged(IPC::Connection& connection, PAL::SessionID newSessionID, const Vector<PageIdentifier>& pageIDs) > { > auto connectionID = connection.uniqueID(); > ASSERT(m_sessionByConnection.contains(connectionID)); >diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h >index 6030f8ffaabe15008f3ad26fc23db806379e91ee..111635d2e2008122d7825bc96379ac8967da18e7 100644 >--- a/Source/WebKit/NetworkProcess/NetworkProcess.h >+++ b/Source/WebKit/NetworkProcess/NetworkProcess.h >@@ -42,6 +42,7 @@ > #include <WebCore/FetchIdentifier.h> > #include <WebCore/IDBKeyData.h> > #include <WebCore/IDBServer.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/RegistrableDomain.h> > #include <WebCore/ServiceWorkerIdentifier.h> > #include <WebCore/ServiceWorkerTypes.h> >@@ -137,8 +138,6 @@ public: > using NavigatedToDomain = WebCore::RegistrableDomain; > using DomainInNeedOfStorageAccess = WebCore::RegistrableDomain; > using OpenerDomain = WebCore::RegistrableDomain; >- using OpenerPageID = uint64_t; >- using PageID = uint64_t; > using FrameID = uint64_t; > > NetworkProcess(AuxiliaryProcessInitializationParameters&&); >@@ -191,9 +190,9 @@ public: > void resume(); > > // Diagnostic messages logging. >- void logDiagnosticMessage(uint64_t webPageID, const String& message, const String& description, WebCore::ShouldSample); >- void logDiagnosticMessageWithResult(uint64_t webPageID, const String& message, const String& description, WebCore::DiagnosticLoggingResultType, WebCore::ShouldSample); >- void logDiagnosticMessageWithValue(uint64_t webPageID, const String& message, const String& description, double value, unsigned significantFigures, WebCore::ShouldSample); >+ void logDiagnosticMessage(WebCore::PageIdentifier, const String& message, const String& description, WebCore::ShouldSample); >+ void logDiagnosticMessageWithResult(WebCore::PageIdentifier, const String& message, const String& description, WebCore::DiagnosticLoggingResultType, WebCore::ShouldSample); >+ void logDiagnosticMessageWithValue(WebCore::PageIdentifier, const String& message, const String& description, double value, unsigned significantFigures, WebCore::ShouldSample); > > #if PLATFORM(COCOA) > RetainPtr<CFDataRef> sourceApplicationAuditData() const; >@@ -259,7 +258,7 @@ public: > void setTopFrameUniqueRedirectTo(PAL::SessionID, const TopFrameDomain&, const RedirectedToDomain&, CompletionHandler<void()>&&); > void setTopFrameUniqueRedirectFrom(PAL::SessionID, const TopFrameDomain&, const RedirectedFromDomain&, CompletionHandler<void()>&&); > void registrableDomainsWithWebsiteData(PAL::SessionID, OptionSet<WebsiteDataType>, bool shouldNotifyPage, CompletionHandler<void(HashSet<RegistrableDomain>&&)>&&); >- void didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag>, uint64_t pageID); >+ void didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag>, WebCore::PageIdentifier); > void setCrossSiteLoadWithLinkDecorationForTesting(PAL::SessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, CompletionHandler<void()>&&); > void resetCrossSiteLoadsWithLinkDecorationForTesting(PAL::SessionID, CompletionHandler<void()>&&); > #endif >@@ -272,10 +271,10 @@ public: > void setSessionIsControlledByAutomation(PAL::SessionID, bool); > bool sessionIsControlledByAutomation(PAL::SessionID) const; > >- void webPageWasAdded(IPC::Connection&, PAL::SessionID, uint64_t pageID, uint64_t oldPageID); >- void webPageWasRemoved(IPC::Connection&, PAL::SessionID, uint64_t pageID); >+ void webPageWasAdded(IPC::Connection&, PAL::SessionID, WebCore::PageIdentifier, WebCore::PageIdentifier); >+ void webPageWasRemoved(IPC::Connection&, PAL::SessionID, WebCore::PageIdentifier); > void webProcessWasDisconnected(IPC::Connection&); >- void webProcessSessionChanged(IPC::Connection&, PAL::SessionID, const Vector<uint64_t>&); >+ void webProcessSessionChanged(IPC::Connection&, PAL::SessionID, const Vector<WebCore::PageIdentifier>&); > void getLocalStorageOriginDetails(PAL::SessionID, CompletionHandler<void(Vector<LocalStorageDatabaseTracker::OriginDetails>&&)>&&); > > #if ENABLE(CONTENT_EXTENSIONS) >diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in >index 8af173518fa7295190f0457d40a2c9ef1e432fcf..6d0624083f75f332726ab3fb21dc1d2cff90c21c 100644 >--- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in >+++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in >@@ -131,7 +131,7 @@ messages -> NetworkProcess LegacyReceiver { > SetTopFrameUniqueRedirectTo(PAL::SessionID sessionID, WebCore::RegistrableDomain topFrameDomain, WebCore::RegistrableDomain redirectedToDomain) -> () Async > SetTopFrameUniqueRedirectFrom(PAL::SessionID sessionID, WebCore::RegistrableDomain topFrameDomain, WebCore::RegistrableDomain redirectedFromDomain) -> () Async > ResetCacheMaxAgeCapForPrevalentResources(PAL::SessionID sessionID) -> () Async >- DidCommitCrossSiteLoadWithDataTransfer(PAL::SessionID sessionID, WebCore::RegistrableDomain fromDomain, WebCore::RegistrableDomain toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag> navigationDataTransfer, uint64_t pageID) >+ DidCommitCrossSiteLoadWithDataTransfer(PAL::SessionID sessionID, WebCore::RegistrableDomain fromDomain, WebCore::RegistrableDomain toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag> navigationDataTransfer, WebCore::PageIdentifier pageID) > SetCrossSiteLoadWithLinkDecorationForTesting(PAL::SessionID sessionID, WebCore::RegistrableDomain fromDomain, WebCore::RegistrableDomain toDomain) -> () Async > ResetCrossSiteLoadsWithLinkDecorationForTesting(PAL::SessionID sessionID) -> () Async > DeleteCookiesForTesting(PAL::SessionID sessionID, WebCore::RegistrableDomain domain, bool includeHttpOnlyCookies) -> () Async >diff --git a/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp b/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp >index 58aacb993db98accda6522d9564c9eaa894bda81..33cdc4d17dbe2e0866e3612ef22761a38238059b 100644 >--- a/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp >@@ -107,8 +107,11 @@ bool NetworkResourceLoadParameters::decode(IPC::Decoder& decoder, NetworkResourc > if (!decoder.decode(result.identifier)) > return false; > >- if (!decoder.decode(result.webPageID)) >+ Optional<PageIdentifier> webPageID; >+ decoder >> webPageID; >+ if (!webPageID) > return false; >+ result.webPageID = *webPageID; > > if (!decoder.decode(result.webFrameID)) > return false; >diff --git a/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp b/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >index fe26536f21c3ee9a701898ca05932d55d15d34b0..0d4f9a2a1aea5c8800a5b13fe37e017bbdc49599 100644 >--- a/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >@@ -174,18 +174,18 @@ void NetworkResourceLoader::start() > m_networkLoadChecker->check(ResourceRequest { originalRequest() }, this, [this] (auto&& result) { > WTF::switchOn(result, > [this] (ResourceError& error) { >- RELEASE_LOG_IF_ALLOWED("start: error checking (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d, parentPID = %d, error.domain = %{public}s, error.code = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, this->isMainResource(), this->isSynchronous(), m_parameters.parentPID, error.domain().utf8().data(), error.errorCode()); >+ RELEASE_LOG_IF_ALLOWED("start: error checking (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d, parentPID = %d, error.domain = %{public}s, error.code = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, this->isMainResource(), this->isSynchronous(), m_parameters.parentPID, error.domain().utf8().data(), error.errorCode()); > if (!error.isCancellation()) > this->didFailLoading(error); > }, > [this] (NetworkLoadChecker::RedirectionTriplet& triplet) { > this->m_isWaitingContinueWillSendRequestForCachedRedirect = true; > this->willSendRedirectedRequest(WTFMove(triplet.request), WTFMove(triplet.redirectRequest), WTFMove(triplet.redirectResponse)); >- RELEASE_LOG_IF_ALLOWED("start: synthetic redirect sent because request URL was modified (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d, parentPID = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, this->isMainResource(), this->isSynchronous(), m_parameters.parentPID); >+ RELEASE_LOG_IF_ALLOWED("start: synthetic redirect sent because request URL was modified (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d, parentPID = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, this->isMainResource(), this->isSynchronous(), m_parameters.parentPID); > }, > [this] (ResourceRequest& request) { > if (this->canUseCache(request)) { >- RELEASE_LOG_IF_ALLOWED("start: Checking cache for resource (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d, parentPID = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, this->isMainResource(), this->isSynchronous(), m_parameters.parentPID); >+ RELEASE_LOG_IF_ALLOWED("start: Checking cache for resource (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d, parentPID = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, this->isMainResource(), this->isSynchronous(), m_parameters.parentPID); > this->retrieveCacheEntry(request); > return; > } >@@ -198,7 +198,7 @@ void NetworkResourceLoader::start() > } > // FIXME: Remove that code path once m_networkLoadChecker is used for all network loads. > if (canUseCache(originalRequest())) { >- RELEASE_LOG_IF_ALLOWED("start: Checking cache for resource (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d, parentPID = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous(), m_parameters.parentPID); >+ RELEASE_LOG_IF_ALLOWED("start: Checking cache for resource (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d, parentPID = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous(), m_parameters.parentPID); > retrieveCacheEntry(originalRequest()); > return; > } >@@ -227,13 +227,13 @@ void NetworkResourceLoader::retrieveCacheEntry(const ResourceRequest& request) > loader->logSlowCacheRetrieveIfNeeded(info); > > if (!entry) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource not in cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource not in cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); > loader->startNetworkLoad(WTFMove(request), FirstLoad::Yes); > return; > } > #if ENABLE(RESOURCE_LOAD_STATISTICS) > if (entry->hasReachedPrevalentResourceAgeCap()) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource has reached prevalent resource age cap (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource has reached prevalent resource age cap (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); > m_cacheEntryForMaxAgeCapValidation = WTFMove(entry); > ResourceRequest revalidationRequest = originalRequest(); > loader->startNetworkLoad(WTFMove(revalidationRequest), FirstLoad::Yes); >@@ -241,21 +241,21 @@ void NetworkResourceLoader::retrieveCacheEntry(const ResourceRequest& request) > } > #endif > if (entry->redirectRequest()) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Handling redirect (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Handling redirect (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); > loader->dispatchWillSendRequestForCacheEntry(WTFMove(request), WTFMove(entry)); > return; > } > if (loader->m_parameters.needsCertificateInfo && !entry->response().certificateInfo()) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource does not have required certificate (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource does not have required certificate (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); > loader->startNetworkLoad(WTFMove(request), FirstLoad::Yes); > return; > } > if (entry->needsValidation() || request.cachePolicy() == WebCore::ResourceRequestCachePolicy::RefreshAnyCacheData) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Validating cache entry (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Validating cache entry (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); > loader->validateCacheEntry(WTFMove(entry)); > return; > } >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Retrieved resource from cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Retrieved resource from cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); > loader->didRetrieveCacheEntry(WTFMove(entry)); > }); > } >@@ -263,7 +263,7 @@ void NetworkResourceLoader::retrieveCacheEntry(const ResourceRequest& request) > void NetworkResourceLoader::startNetworkLoad(ResourceRequest&& request, FirstLoad load) > { > if (load == FirstLoad::Yes) { >- RELEASE_LOG_IF_ALLOWED("startNetworkLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("startNetworkLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); > > consumeSandboxExtensions(); > >@@ -289,7 +289,7 @@ void NetworkResourceLoader::startNetworkLoad(ResourceRequest&& request, FirstLoa > } > if (!networkSession) { > WTFLogAlways("Attempted to create a NetworkLoad with a session (id=%" PRIu64 ") that does not exist.", parameters.sessionID.sessionID()); >- RELEASE_LOG_ERROR_IF_ALLOWED("startNetworkLoad: Attempted to create a NetworkLoad with a session that does not exist (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", sessionID=%" PRIu64 ")", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, parameters.sessionID.sessionID()); >+ RELEASE_LOG_ERROR_IF_ALLOWED("startNetworkLoad: Attempted to create a NetworkLoad with a session that does not exist (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", sessionID=%" PRIu64 ")", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, parameters.sessionID.sessionID()); > m_connection->networkProcess().logDiagnosticMessage(m_parameters.webPageID, WebCore::DiagnosticLoggingKeys::internalErrorKey(), WebCore::DiagnosticLoggingKeys::invalidSessionIDKey(), WebCore::ShouldSample::No); > didFailLoading(internalError(request.url())); > return; >@@ -298,7 +298,7 @@ void NetworkResourceLoader::startNetworkLoad(ResourceRequest&& request, FirstLoa > parameters.request = WTFMove(request); > m_networkLoad = std::make_unique<NetworkLoad>(*this, &m_connection->blobRegistry(), WTFMove(parameters), *networkSession); > >- RELEASE_LOG_IF_ALLOWED("startNetworkLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", description = %{public}s)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, m_networkLoad->description().utf8().data()); >+ RELEASE_LOG_IF_ALLOWED("startNetworkLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", description = %{public}s)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, m_networkLoad->description().utf8().data()); > } > > void NetworkResourceLoader::cleanup(LoadResult result) >@@ -322,7 +322,7 @@ void NetworkResourceLoader::cleanup(LoadResult result) > > void NetworkResourceLoader::convertToDownload(DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response) > { >- RELEASE_LOG(Loading, "Converting NetworkResourceLoader %p to download %" PRIu64 " (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", this, downloadID.downloadID(), m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier); >+ RELEASE_LOG(Loading, "Converting NetworkResourceLoader %p to download %" PRIu64 " (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", this, downloadID.downloadID(), m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier); > > // This can happen if the resource came from the disk cache. > if (!m_networkLoad) { >@@ -340,7 +340,7 @@ void NetworkResourceLoader::abort() > ASSERT(RunLoop::isMain()); > > RELEASE_LOG_IF_ALLOWED("abort: Canceling resource load (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", >- m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier); >+ m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier); > > if (m_parameters.options.keepAlive && m_response.isNull() && !m_isKeptAlive) { > m_isKeptAlive = true; >@@ -425,7 +425,7 @@ bool NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptio > > void NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedResponse, ResponseCompletionHandler&& completionHandler) > { >- RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", httpStatusCode = %d, length = %" PRId64 ")", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, receivedResponse.httpStatusCode(), receivedResponse.expectedContentLength()); >+ RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", httpStatusCode = %d, length = %" PRId64 ")", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, receivedResponse.httpStatusCode(), receivedResponse.expectedContentLength()); > > m_response = WTFMove(receivedResponse); > >@@ -505,7 +505,7 @@ void NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedRespon > void NetworkResourceLoader::didReceiveBuffer(Ref<SharedBuffer>&& buffer, int reportedEncodedDataLength) > { > if (!m_numBytesReceived) >- RELEASE_LOG_IF_ALLOWED("didReceiveBuffer: Started receiving data (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier); >+ RELEASE_LOG_IF_ALLOWED("didReceiveBuffer: Started receiving data (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier); > m_numBytesReceived += buffer->size(); > > ASSERT(!m_cacheEntryForValidation); >@@ -534,7 +534,7 @@ void NetworkResourceLoader::didReceiveBuffer(Ref<SharedBuffer>&& buffer, int rep > > void NetworkResourceLoader::didFinishLoading(const NetworkLoadMetrics& networkLoadMetrics) > { >- RELEASE_LOG_IF_ALLOWED("didFinishLoading: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", length = %zd)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, m_numBytesReceived); >+ RELEASE_LOG_IF_ALLOWED("didFinishLoading: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", length = %zd)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, m_numBytesReceived); > > if (shouldCaptureExtraNetworkLoadMetrics()) > m_connection->addNetworkLoadInformationMetrics(identifier(), networkLoadMetrics); >@@ -569,7 +569,7 @@ void NetworkResourceLoader::didFinishLoading(const NetworkLoadMetrics& networkLo > > void NetworkResourceLoader::didFailLoading(const ResourceError& error) > { >- RELEASE_LOG_IF_ALLOWED("didFailLoading: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isTimeout = %d, isCancellation = %d, isAccessControl = %d, errCode = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, error.isTimeout(), error.isCancellation(), error.isAccessControl(), error.errorCode()); >+ RELEASE_LOG_IF_ALLOWED("didFailLoading: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isTimeout = %d, isCancellation = %d, isAccessControl = %d, errCode = %d)", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier, error.isTimeout(), error.isCancellation(), error.isAccessControl(), error.errorCode()); > > if (shouldCaptureExtraNetworkLoadMetrics()) > m_connection->removeNetworkLoadInformation(identifier()); >@@ -731,7 +731,7 @@ void NetworkResourceLoader::continueWillSendRequest(ResourceRequest&& newRequest > } > } > >- RELEASE_LOG_IF_ALLOWED("continueWillSendRequest: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier); >+ RELEASE_LOG_IF_ALLOWED("continueWillSendRequest: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_parameters.webPageID.toUInt64(), m_parameters.webFrameID, m_parameters.identifier); > > m_isAllowedToAskUserForCredentials = isAllowedToAskUserForCredentials; > >@@ -988,6 +988,11 @@ static String escapeIDForJSON(const Optional<uint64_t>& value) > return value ? String::number(value.value()) : String("None"_s); > }; > >+static String escapeIDForJSON(const Optional<PageIdentifier>& value) >+{ >+ return value ? String::number(value->toUInt64()) : String("None"_s); >+}; >+ > void NetworkResourceLoader::logCookieInformation() const > { > ASSERT(shouldLogCookieInformation(m_connection, sessionID())); >@@ -998,7 +1003,7 @@ void NetworkResourceLoader::logCookieInformation() const > logCookieInformation(m_connection, "NetworkResourceLoader", reinterpret_cast<const void*>(this), *networkStorageSession, originalRequest().firstPartyForCookies(), SameSiteInfo::create(originalRequest()), originalRequest().url(), originalRequest().httpReferrer(), frameID(), pageID(), identifier()); > } > >-static void logBlockedCookieInformation(NetworkConnectionToWebProcess& connection, const String& label, const void* loggedObject, const WebCore::NetworkStorageSession& networkStorageSession, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, const String& referrer, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Optional<uint64_t> identifier) >+static void logBlockedCookieInformation(NetworkConnectionToWebProcess& connection, const String& label, const void* loggedObject, const WebCore::NetworkStorageSession& networkStorageSession, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, const String& referrer, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, Optional<uint64_t> identifier) > { > ASSERT(NetworkResourceLoader::shouldLogCookieInformation(connection, networkStorageSession.sessionID())); > >@@ -1025,7 +1030,7 @@ static void logBlockedCookieInformation(NetworkConnectionToWebProcess& connectio > #undef LOCAL_LOG_IF_ALLOWED > } > >-static void logCookieInformationInternal(NetworkConnectionToWebProcess& connection, const String& label, const void* loggedObject, const WebCore::NetworkStorageSession& networkStorageSession, const URL& firstParty, const WebCore::SameSiteInfo& sameSiteInfo, const URL& url, const String& referrer, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Optional<uint64_t> identifier) >+static void logCookieInformationInternal(NetworkConnectionToWebProcess& connection, const String& label, const void* loggedObject, const WebCore::NetworkStorageSession& networkStorageSession, const URL& firstParty, const WebCore::SameSiteInfo& sameSiteInfo, const URL& url, const String& referrer, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, Optional<uint64_t> identifier) > { > ASSERT(NetworkResourceLoader::shouldLogCookieInformation(connection, networkStorageSession.sessionID())); > >@@ -1086,7 +1091,7 @@ static void logCookieInformationInternal(NetworkConnectionToWebProcess& connecti > #undef LOCAL_LOG_IF_ALLOWED > } > >-void NetworkResourceLoader::logCookieInformation(NetworkConnectionToWebProcess& connection, const String& label, const void* loggedObject, const NetworkStorageSession& networkStorageSession, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, const String& referrer, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Optional<uint64_t> identifier) >+void NetworkResourceLoader::logCookieInformation(NetworkConnectionToWebProcess& connection, const String& label, const void* loggedObject, const NetworkStorageSession& networkStorageSession, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, const String& referrer, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, Optional<uint64_t> identifier) > { > ASSERT(shouldLogCookieInformation(connection, networkStorageSession.sessionID())); > >diff --git a/Source/WebKit/NetworkProcess/NetworkResourceLoader.h b/Source/WebKit/NetworkProcess/NetworkResourceLoader.h >index a8a3005c142306138876821a43a057a0b6f3d7fc..a8f6d315798c4adfff99da7e82ffc833a967683e 100644 >--- a/Source/WebKit/NetworkProcess/NetworkResourceLoader.h >+++ b/Source/WebKit/NetworkProcess/NetworkResourceLoader.h >@@ -84,7 +84,7 @@ public: > PAL::SessionID sessionID() const { return m_parameters.sessionID; } > ResourceLoadIdentifier identifier() const { return m_parameters.identifier; } > uint64_t frameID() const { return m_parameters.webFrameID; } >- uint64_t pageID() const { return m_parameters.webPageID; } >+ WebCore::PageIdentifier pageID() const { return m_parameters.webPageID; } > > struct SynchronousLoadData; > >@@ -110,7 +110,7 @@ public: > > #if ENABLE(RESOURCE_LOAD_STATISTICS) && !RELEASE_LOG_DISABLED > static bool shouldLogCookieInformation(NetworkConnectionToWebProcess&, const PAL::SessionID&); >- static void logCookieInformation(NetworkConnectionToWebProcess&, const String& label, const void* loggedObject, const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, const String& referrer, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Optional<uint64_t> identifier); >+ static void logCookieInformation(NetworkConnectionToWebProcess&, const String& label, const void* loggedObject, const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, const String& referrer, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier>, Optional<uint64_t> identifier); > #endif > > void disableExtraNetworkLoadMetricsCapture() { m_shouldCaptureExtraNetworkLoadMetrics = false; } >diff --git a/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp b/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp >index 97e0b244078d832aedcdd8a67918414f2870c602..553cbad19bc5a197e06252750f282ce3b0416fb0 100644 >--- a/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp >+++ b/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp >@@ -45,40 +45,40 @@ namespace WebKit { > void ServiceWorkerFetchTask::didReceiveRedirectResponse(const ResourceResponse& response) > { > RELEASE_LOG_IF_ALLOWED("didReceiveRedirectResponse: %s", m_identifier.fetchIdentifier.loggingString().utf8().data()); >- m_connection->send(Messages::ServiceWorkerClientFetch::DidReceiveRedirectResponse { response }, m_identifier.fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerClientFetch::DidReceiveRedirectResponse { response }, m_identifier.fetchIdentifier); > } > > void ServiceWorkerFetchTask::didReceiveResponse(const ResourceResponse& response, bool needsContinueDidReceiveResponseMessage) > { >- m_connection->send(Messages::ServiceWorkerClientFetch::DidReceiveResponse { response, needsContinueDidReceiveResponseMessage }, m_identifier.fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerClientFetch::DidReceiveResponse { response, needsContinueDidReceiveResponseMessage }, m_identifier.fetchIdentifier); > } > > void ServiceWorkerFetchTask::didReceiveData(const IPC::DataReference& data, int64_t encodedDataLength) > { >- m_connection->send(Messages::ServiceWorkerClientFetch::DidReceiveData { data, encodedDataLength }, m_identifier.fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerClientFetch::DidReceiveData { data, encodedDataLength }, m_identifier.fetchIdentifier); > } > > void ServiceWorkerFetchTask::didReceiveFormData(const IPC::FormDataReference& formData) > { >- m_connection->send(Messages::ServiceWorkerClientFetch::DidReceiveFormData { formData }, m_identifier.fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerClientFetch::DidReceiveFormData { formData }, m_identifier.fetchIdentifier); > } > > void ServiceWorkerFetchTask::didFinish() > { > RELEASE_LOG_IF_ALLOWED("didFinishFetch: fetchIdentifier: %s", m_identifier.fetchIdentifier.loggingString().utf8().data()); >- m_connection->send(Messages::ServiceWorkerClientFetch::DidFinish { }, m_identifier.fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerClientFetch::DidFinish { }, m_identifier.fetchIdentifier); > } > > void ServiceWorkerFetchTask::didFail(const ResourceError& error) > { > RELEASE_LOG_ERROR_IF_ALLOWED("didFailFetch: fetchIdentifier: %s", m_identifier.fetchIdentifier.loggingString().utf8().data()); >- m_connection->send(Messages::ServiceWorkerClientFetch::DidFail { error }, m_identifier.fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerClientFetch::DidFail { error }, m_identifier.fetchIdentifier); > } > > void ServiceWorkerFetchTask::didNotHandle() > { > RELEASE_LOG_IF_ALLOWED("didNotHandleFetch: fetchIdentifier: %s", m_identifier.fetchIdentifier.loggingString().utf8().data()); >- m_connection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, m_identifier.fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, m_identifier.fetchIdentifier); > } > > } // namespace WebKit >diff --git a/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp b/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp >index d32cd46389ec022bfc50145b737ef4caaec93231..91fdc715971d7b19cbb8b42c647db30c3afe29cd 100644 >--- a/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp >+++ b/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp >@@ -159,7 +159,7 @@ void WebSWServerConnection::startFetch(ServiceWorkerRegistrationIdentifier servi > auto* worker = server().activeWorkerFromRegistrationID(serviceWorkerRegistrationIdentifier); > if (!worker) { > SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: %s -> DidNotHandle because no active worker", fetchIdentifier.loggingString().utf8().data()); >- m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier.toUInt64()); >+ m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); > return; > } > auto serviceWorkerIdentifier = worker->identifier(); >@@ -170,13 +170,13 @@ void WebSWServerConnection::startFetch(ServiceWorkerRegistrationIdentifier servi > > if (!success) { > SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: %s DidNotHandle because worker did not become activated", fetchIdentifier.loggingString().utf8().data()); >- m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier.toUInt64()); >+ m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); > return; > } > > auto* worker = server().workerByID(serviceWorkerIdentifier); > if (!worker) { >- m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier.toUInt64()); >+ m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); > return; > } > >@@ -192,7 +192,7 @@ void WebSWServerConnection::startFetch(ServiceWorkerRegistrationIdentifier servi > static_cast<WebSWServerToContextConnection&>(*contextConnection).startFetch(m_sessionID, m_contentConnection.get(), this->identifier(), fetchIdentifier, serviceWorkerIdentifier, request, options, formData, referrer); > } else { > SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: %s DidNotHandle because failed to run service worker", fetchIdentifier.loggingString().utf8().data()); >- m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier.toUInt64()); >+ m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); > } > }); > }; >diff --git a/Source/WebKit/NetworkProcess/cache/NetworkCache.h b/Source/WebKit/NetworkProcess/cache/NetworkCache.h >index c7f386b3d7c3145580f2ac0e0e352ea6b87155c1..8bbc16978560e4463221df73acb108762ab769a9 100644 >--- a/Source/WebKit/NetworkProcess/cache/NetworkCache.h >+++ b/Source/WebKit/NetworkProcess/cache/NetworkCache.h >@@ -28,6 +28,7 @@ > #include "NetworkCacheEntry.h" > #include "NetworkCacheStorage.h" > #include "ShareableResource.h" >+#include <WebCore/PageIdentifier.h> > #include <WebCore/ResourceResponse.h> > #include <wtf/CompletionHandler.h> > #include <wtf/OptionSet.h> >@@ -84,7 +85,7 @@ enum class UseDecision { > NoDueToExpiredRedirect > }; > >-using GlobalFrameID = std::pair<uint64_t /*webPageID*/, uint64_t /*webFrameID*/>; >+using GlobalFrameID = std::pair<WebCore::PageIdentifier, uint64_t /*webFrameID*/>; > > class Cache : public RefCounted<Cache> { > public: >diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h b/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h >index 965c6fa664bcd155f76cdb3b4d7326eee03e9188..2dd0e7d46bc719e96fa15074fed00b1c88665658 100644 >--- a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h >+++ b/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h >@@ -42,7 +42,7 @@ class NetworkSessionCocoa; > class NetworkDataTaskCocoa final : public NetworkDataTask { > friend class NetworkSessionCocoa; > public: >- static Ref<NetworkDataTask> create(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, uint64_t frameID, uint64_t pageID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, Optional<NetworkActivityTracker> networkActivityTracker) >+ static Ref<NetworkDataTask> create(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, uint64_t frameID, WebCore::PageIdentifier pageID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, Optional<NetworkActivityTracker> networkActivityTracker) > { > return adoptRef(*new NetworkDataTaskCocoa(session, client, request, frameID, pageID, storedCredentialsPolicy, shouldContentSniff, shouldContentEncodingSniff, shouldClearReferrerOnHTTPSToHTTPRedirect, shouldPreconnectOnly, dataTaskIsForMainFrameNavigation, networkActivityTracker)); > } >@@ -70,12 +70,12 @@ public: > WebCore::NetworkLoadMetrics& networkLoadMetrics() { return m_networkLoadMetrics; } > > uint64_t frameID() const { return m_frameID; }; >- uint64_t pageID() const { return m_pageID; }; >+ WebCore::PageIdentifier pageID() const { return m_pageID; }; > > String description() const override; > > private: >- NetworkDataTaskCocoa(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, uint64_t frameID, uint64_t pageID, WebCore::StoredCredentialsPolicy, WebCore::ContentSniffingPolicy, WebCore::ContentEncodingSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly, bool dataTaskIsForMainFrameNavigation, Optional<NetworkActivityTracker>); >+ NetworkDataTaskCocoa(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, uint64_t frameID, WebCore::PageIdentifier, WebCore::StoredCredentialsPolicy, WebCore::ContentSniffingPolicy, WebCore::ContentEncodingSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly, bool dataTaskIsForMainFrameNavigation, Optional<NetworkActivityTracker>); > > bool tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&); > void applySniffingPoliciesAndBindRequestToInferfaceIfNeeded(__strong NSURLRequest*&, bool shouldContentSniff, bool shouldContentEncodingSniff); >@@ -93,7 +93,7 @@ private: > RetainPtr<NSURLSessionDataTask> m_task; > WebCore::NetworkLoadMetrics m_networkLoadMetrics; > uint64_t m_frameID; >- uint64_t m_pageID; >+ WebCore::PageIdentifier m_pageID; > > #if ENABLE(RESOURCE_LOAD_STATISTICS) > bool m_hasBeenSetToUseStatelessCookieStorage { false }; >diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm >index 35e443b9ee918057ad34def068a899bea067adf6..28a05e80db685af67b284c842317194f97e87e3e 100644 >--- a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm >+++ b/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm >@@ -160,7 +160,7 @@ static void updateTaskWithFirstPartyForSameSiteCookies(NSURLSessionDataTask* tas > #endif > } > >-NetworkDataTaskCocoa::NetworkDataTaskCocoa(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& requestWithCredentials, uint64_t frameID, uint64_t pageID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, Optional<NetworkActivityTracker> networkActivityTracker) >+NetworkDataTaskCocoa::NetworkDataTaskCocoa(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& requestWithCredentials, uint64_t frameID, WebCore::PageIdentifier pageID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, Optional<NetworkActivityTracker> networkActivityTracker) > : NetworkDataTask(session, client, requestWithCredentials, storedCredentialsPolicy, shouldClearReferrerOnHTTPSToHTTPRedirect, dataTaskIsForMainFrameNavigation) > , m_frameID(frameID) > , m_pageID(pageID) >@@ -236,7 +236,7 @@ NetworkDataTaskCocoa::NetworkDataTaskCocoa(NetworkSession& session, NetworkDataT > if (shouldBlockCookies) { > #if !RELEASE_LOG_DISABLED > if (m_session->shouldLogCookieInformation()) >- RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - NetworkDataTaskCocoa::logCookieInformation: pageID = %llu, frameID = %llu, taskID = %lu: Blocking cookies for URL %s", this, pageID, frameID, (unsigned long)[m_task taskIdentifier], nsRequest.URL.absoluteString.UTF8String); >+ RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - NetworkDataTaskCocoa::logCookieInformation: pageID = %llu, frameID = %llu, taskID = %lu: Blocking cookies for URL %s", this, pageID.toUInt64(), frameID, (unsigned long)[m_task taskIdentifier], nsRequest.URL.absoluteString.UTF8String); > #else > LOG(NetworkSession, "%llu Blocking cookies for URL %s", [m_task taskIdentifier], nsRequest.URL.absoluteString.UTF8String); > #endif >@@ -366,7 +366,7 @@ void NetworkDataTaskCocoa::willPerformHTTPRedirection(WebCore::ResourceResponse& > bool shouldBlockCookies = m_storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::EphemeralStatelessCookieless || m_session->networkStorageSession().shouldBlockCookies(request, m_frameID, m_pageID); > #if !RELEASE_LOG_DISABLED > if (m_session->shouldLogCookieInformation()) >- RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - NetworkDataTaskCocoa::willPerformHTTPRedirection::logCookieInformation: pageID = %llu, frameID = %llu, taskID = %lu: %s cookies for redirect URL %s", this, m_pageID, m_frameID, (unsigned long)[m_task taskIdentifier], (shouldBlockCookies ? "Blocking" : "Not blocking"), request.url().string().utf8().data()); >+ RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - NetworkDataTaskCocoa::willPerformHTTPRedirection::logCookieInformation: pageID = %llu, frameID = %llu, taskID = %lu: %s cookies for redirect URL %s", this, m_pageID.toUInt64(), m_frameID, (unsigned long)[m_task taskIdentifier], (shouldBlockCookies ? "Blocking" : "Not blocking"), request.url().string().utf8().data()); > #else > LOG(NetworkSession, "%llu %s cookies for redirect URL %s", [m_task taskIdentifier], (shouldBlockCookies ? "Blocking" : "Not blocking"), request.url().string().utf8().data()); > #endif >@@ -379,7 +379,7 @@ void NetworkDataTaskCocoa::willPerformHTTPRedirection(WebCore::ResourceResponse& > if (!shouldBlockCookies) { > #if !RELEASE_LOG_DISABLED > if (m_session->shouldLogCookieInformation()) >- RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - NetworkDataTaskCocoa::willPerformHTTPRedirection::logCookieInformation: pageID = %llu, frameID = %llu, taskID = %lu: Not partitioning cookies for redirect URL %s", this, m_pageID, m_frameID, (unsigned long)[m_task taskIdentifier], request.url().string().utf8().data()); >+ RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - NetworkDataTaskCocoa::willPerformHTTPRedirection::logCookieInformation: pageID = %llu, frameID = %llu, taskID = %lu: Not partitioning cookies for redirect URL %s", this, m_pageID.toUInt64(), m_frameID, (unsigned long)[m_task taskIdentifier], request.url().string().utf8().data()); > #else > LOG(NetworkSession, "%llu Not partitioning cookies for redirect URL %s", [m_task taskIdentifier], request.url().string().utf8().data()); > #endif >diff --git a/Source/WebKit/Platform/IPC/Connection.h b/Source/WebKit/Platform/IPC/Connection.h >index c4fb00b083c4112a22c81ec45f088da09cb869e8..3edf82adf3b5ae3b284c7dd5915b885e7523176f 100644 >--- a/Source/WebKit/Platform/IPC/Connection.h >+++ b/Source/WebKit/Platform/IPC/Connection.h >@@ -186,6 +186,36 @@ public: > template<typename T> void sendWithReply(T&& message, uint64_t destinationID, FunctionDispatcher& replyDispatcher, Function<void(Optional<typename CodingType<typename T::Reply>::Type>)>&& replyHandler); > template<typename T> bool sendSync(T&& message, typename T::Reply&& reply, uint64_t destinationID, Seconds timeout = Seconds::infinity(), OptionSet<SendSyncOption> sendSyncOptions = { }); > template<typename T> bool waitForAndDispatchImmediately(uint64_t destinationID, Seconds timeout, OptionSet<WaitForOption> waitForOptions = { }); >+ >+ template<typename T, typename C, typename U> >+ void sendWithAsyncReply(T&& message, C&& completionHandler, ObjectIdentifier<U> destinationID = { }) >+ { >+ sendWithAsyncReply<T, C>(WTFMove(message), WTFMove(completionHandler), destinationID.toUInt64()); >+ } >+ >+ template<typename T, typename U> >+ bool send(T&& message, ObjectIdentifier<U> destinationID, OptionSet<SendOption> sendOptions = { }) >+ { >+ return send<T>(WTFMove(message), destinationID.toUInt64(), sendOptions); >+ } >+ >+ template<typename T, typename U> >+ void sendWithReply(T&& message, ObjectIdentifier<U> destinationID, FunctionDispatcher& replyDispatcher, Function<void(Optional<typename CodingType<typename T::Reply>::Type>)>&& replyHandler) >+ { >+ return sendWithReply<T>(WTFMove(message), destinationID.toUInt64(), replyDispatcher, WTFMove(replyHandler)); >+ } >+ >+ template<typename T, typename U> >+ bool sendSync(T&& message, typename T::Reply&& reply, ObjectIdentifier<U> destinationID, Seconds timeout = Seconds::infinity(), OptionSet<SendSyncOption> sendSyncOptions = { }) >+ { >+ return sendSync<T>(WTFMove(message), WTFMove(reply), destinationID.toUInt64(), timeout, sendSyncOptions); >+ } >+ >+ template<typename T, typename U> >+ bool waitForAndDispatchImmediately(ObjectIdentifier<U> destinationID, Seconds timeout, OptionSet<WaitForOption> waitForOptions = { }) >+ { >+ return waitForAndDispatchImmediately<T>(destinationID.toUInt64(), timeout, waitForOptions); >+ } > > bool sendMessage(std::unique_ptr<Encoder>, OptionSet<SendOption> sendOptions); > void sendMessageWithReply(uint64_t requestID, std::unique_ptr<Encoder>, FunctionDispatcher& replyDispatcher, Function<void(std::unique_ptr<Decoder>)>&& replyHandler); >diff --git a/Source/WebKit/Platform/IPC/MessageSender.h b/Source/WebKit/Platform/IPC/MessageSender.h >index d5f981e4534b2a9bd8b4a5cc614e87ca44956d4a..3d6f342892bc88390678e8c364639110de4f5726 100644 >--- a/Source/WebKit/Platform/IPC/MessageSender.h >+++ b/Source/WebKit/Platform/IPC/MessageSender.h >@@ -34,9 +34,9 @@ class MessageSender { > public: > virtual ~MessageSender(); > >- template<typename U> bool send(const U& message) >+ template<typename U> bool send(const U& message, OptionSet<SendOption> sendOptions = { }) > { >- return send(message, messageSenderDestinationID(), { }); >+ return send(message, messageSenderDestinationID(), sendOptions); > } > > template<typename U> bool send(const U& message, uint64_t destinationID, OptionSet<SendOption> sendOptions = { }) >@@ -48,6 +48,12 @@ public: > > return sendMessage(WTFMove(encoder), sendOptions); > } >+ >+ template<typename U, typename T> >+ bool send(const U& message, ObjectIdentifier<T> destinationID, OptionSet<SendOption> sendOptions = { }) >+ { >+ return send<U>(message, destinationID.toUInt64(), sendOptions); >+ } > > template<typename T> > bool sendSync(T&& message, typename T::Reply&& reply, Seconds timeout = Seconds::infinity(), OptionSet<SendSyncOption> sendSyncOptions = { }) >@@ -65,8 +71,8 @@ public: > return messageSenderConnection()->sendSync(WTFMove(message), WTFMove(reply), destinationID, timeout, sendSyncOptions); > } > >- template<typename T, typename... Args> >- void sendWithAsyncReply(T&& message, CompletionHandler<void(Args...)>&& completionHandler) >+ template<typename T, typename C> >+ void sendWithAsyncReply(T&& message, C&& completionHandler) > { > messageSenderConnection()->sendWithAsyncReply(WTFMove(message), WTFMove(completionHandler), messageSenderDestinationID()); > } >diff --git a/Source/WebKit/Scripts/webkit/messages.py b/Source/WebKit/Scripts/webkit/messages.py >index 9e6e93206bdc1b01022dea5044d2833bd5e94edc..f0ec8dc1b7169bcca55a654912ed2fef5370df10 100644 >--- a/Source/WebKit/Scripts/webkit/messages.py >+++ b/Source/WebKit/Scripts/webkit/messages.py >@@ -205,6 +205,7 @@ def forward_declarations_and_headers(receiver): > 'String', > 'WebCore::DocumentIdentifier', > 'WebCore::FetchIdentifier', >+ 'WebCore::PageIdentifier', > 'WebCore::PointerID', > 'WebCore::ProcessIdentifier', > 'WebCore::ServiceWorkerIdentifier', >diff --git a/Source/WebKit/Shared/API/APIPageHandle.cpp b/Source/WebKit/Shared/API/APIPageHandle.cpp >index a6a00995500e7633e0d45b18a447c742a69220ab..e605a45946ffc7f1d07cb84e8f5cb987bbf367dd 100644 >--- a/Source/WebKit/Shared/API/APIPageHandle.cpp >+++ b/Source/WebKit/Shared/API/APIPageHandle.cpp >@@ -31,17 +31,17 @@ > > namespace API { > >-Ref<PageHandle> PageHandle::create(uint64_t pageID) >+Ref<PageHandle> PageHandle::create(WebCore::PageIdentifier pageID) > { > return adoptRef(*new PageHandle(pageID, false)); > } > >-Ref<PageHandle> PageHandle::createAutoconverting(uint64_t pageID) >+Ref<PageHandle> PageHandle::createAutoconverting(WebCore::PageIdentifier pageID) > { > return adoptRef(*new PageHandle(pageID, true)); > } > >-PageHandle::PageHandle(uint64_t pageID, bool isAutoconverting) >+PageHandle::PageHandle(WebCore::PageIdentifier pageID, bool isAutoconverting) > : m_pageID(pageID) > , m_isAutoconverting(isAutoconverting) > { >@@ -59,15 +59,16 @@ void PageHandle::encode(IPC::Encoder& encoder) const > > bool PageHandle::decode(IPC::Decoder& decoder, RefPtr<Object>& result) > { >- uint64_t pageID; >- if (!decoder.decode(pageID)) >+ Optional<WebCore::PageIdentifier> pageID; >+ decoder >> pageID; >+ if (!pageID) > return false; > > bool isAutoconverting; > if (!decoder.decode(isAutoconverting)) > return false; > >- result = isAutoconverting ? createAutoconverting(pageID) : create(pageID); >+ result = isAutoconverting ? createAutoconverting(*pageID) : create(*pageID); > return true; > } > >diff --git a/Source/WebKit/Shared/API/APIPageHandle.h b/Source/WebKit/Shared/API/APIPageHandle.h >index f30fafbdc31b791a9fc0aa626fc90a748ef08948..6a1cfb698259bf48d4d8ed58ecb87b0f22674321 100644 >--- a/Source/WebKit/Shared/API/APIPageHandle.h >+++ b/Source/WebKit/Shared/API/APIPageHandle.h >@@ -27,6 +27,7 @@ > #define APIPageHandle_h > > #include "APIObject.h" >+#include <WebCore/PageIdentifier.h> > #include <wtf/Ref.h> > > namespace IPC { >@@ -38,20 +39,20 @@ namespace API { > > class PageHandle : public ObjectImpl<Object::Type::PageHandle> { > public: >- static Ref<PageHandle> create(uint64_t pageID); >- static Ref<PageHandle> createAutoconverting(uint64_t pageID); >+ static Ref<PageHandle> create(WebCore::PageIdentifier); >+ static Ref<PageHandle> createAutoconverting(WebCore::PageIdentifier); > virtual ~PageHandle(); > >- uint64_t pageID() const { return m_pageID; } >+ WebCore::PageIdentifier pageID() const { return m_pageID; } > bool isAutoconverting() const { return m_isAutoconverting; } > > void encode(IPC::Encoder&) const; > static bool decode(IPC::Decoder&, RefPtr<Object>&); > > private: >- explicit PageHandle(uint64_t pageID, bool isAutoconverting); >+ PageHandle(WebCore::PageIdentifier, bool isAutoconverting); > >- const uint64_t m_pageID; >+ const WebCore::PageIdentifier m_pageID; > const bool m_isAutoconverting; > }; > >diff --git a/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h b/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h >index 86f8041709abd5c3cd64cd820f86352cac2a4d51..40408178002a94671d350df261e08c950eef2b82 100644 >--- a/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h >+++ b/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h >@@ -27,6 +27,7 @@ > > #include "MessageReceiver.h" > #include "ProcessThrottler.h" >+#include <WebCore/PageIdentifier.h> > #include <wtf/Function.h> > #include <wtf/WeakObjCPtr.h> > #include <wtf/WeakPtr.h> >@@ -73,7 +74,7 @@ private: > Function<void()> m_launchInitialProcessIfNecessary; > HashMap<uint64_t, ProcessThrottler::BackgroundActivityToken> m_pendingReplies; > bool m_isRegisteredAsMessageReceiver { false }; >- uint64_t m_messageReceiverID { 0 }; >+ WebCore::PageIdentifier m_messageReceiverID; > }; > > } // namespace WebKit >diff --git a/Source/WebKit/Shared/API/Cocoa/WKBrowsingContextHandle.mm b/Source/WebKit/Shared/API/Cocoa/WKBrowsingContextHandle.mm >index 58cb1dd2b5e7c7c6b0965af67a55762f49598306..7e97f176c08a585b1b9c2430fe9613bd3a39169c 100644 >--- a/Source/WebKit/Shared/API/Cocoa/WKBrowsingContextHandle.mm >+++ b/Source/WebKit/Shared/API/Cocoa/WKBrowsingContextHandle.mm >@@ -28,7 +28,7 @@ > > @implementation WKBrowsingContextHandle > >-- (id)_initWithPageID:(uint64_t)pageID >+- (id)_initWithPageID:(WebCore::PageIdentifier)pageID > { > if (!(self = [super init])) > return nil; >@@ -40,7 +40,7 @@ - (id)_initWithPageID:(uint64_t)pageID > > - (NSUInteger)hash > { >- return _pageID; >+ return _pageID.toUInt64(); > } > > - (BOOL)isEqual:(id)object >@@ -53,7 +53,7 @@ - (BOOL)isEqual:(id)object > > - (void)encodeWithCoder:(NSCoder *)coder > { >- [coder encodeInt64:_pageID forKey:@"pageID"]; >+ [coder encodeInt64:_pageID.toUInt64() forKey:@"pageID"]; > } > > - (id)initWithCoder:(NSCoder *)coder >@@ -61,7 +61,7 @@ - (id)initWithCoder:(NSCoder *)coder > if (!(self = [super init])) > return nil; > >- _pageID = [coder decodeInt64ForKey:@"pageID"]; >+ _pageID = makeObjectIdentifier<WebCore::PageIdentifierType>([coder decodeInt64ForKey:@"pageID"]); > > return self; > } >diff --git a/Source/WebKit/Shared/API/Cocoa/WKBrowsingContextHandleInternal.h b/Source/WebKit/Shared/API/Cocoa/WKBrowsingContextHandleInternal.h >index 2a9e646281a74fb428c20e97cbef6ad7e3658943..43e41e24cd36336b54784b003cf17bbc16f67a66 100644 >--- a/Source/WebKit/Shared/API/Cocoa/WKBrowsingContextHandleInternal.h >+++ b/Source/WebKit/Shared/API/Cocoa/WKBrowsingContextHandleInternal.h >@@ -24,11 +24,12 @@ > */ > > #import "WKBrowsingContextHandle.h" >+#import <WebCore/PageIdentifier.h> > > @interface WKBrowsingContextHandle () > >-@property (nonatomic, readonly, getter = _pageID) uint64_t pageID; >+@property (nonatomic, readonly, getter=_pageID) WebCore::PageIdentifier pageID; > >-- (id)_initWithPageID:(uint64_t)pageID; >+- (id)_initWithPageID:(WebCore::PageIdentifier)pageID; > > @end >diff --git a/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.cpp b/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.cpp >index eb8a0b6617ae53b5098f886206cdf73e88421435..d4e1c25008112bbbdf5836f967f0c83c0c6f713d 100644 >--- a/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.cpp >+++ b/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.cpp >@@ -66,7 +66,7 @@ IPC::Connection* WebPaymentCoordinatorProxy::messageSenderConnection() const > > uint64_t WebPaymentCoordinatorProxy::messageSenderDestinationID() const > { >- return *m_destinationID; >+ return m_destinationID->toUInt64(); > } > > void WebPaymentCoordinatorProxy::canMakePayments(CompletionHandler<void(bool)>&& reply) >@@ -84,7 +84,7 @@ void WebPaymentCoordinatorProxy::openPaymentSetup(const String& merchantIdentifi > platformOpenPaymentSetup(merchantIdentifier, domainName, WTFMove(completionHandler)); > } > >-void WebPaymentCoordinatorProxy::showPaymentUI(uint64_t destinationID, PAL::SessionID sessionID, const String& originatingURLString, const Vector<String>& linkIconURLStrings, const WebCore::ApplePaySessionPaymentRequest& paymentRequest, CompletionHandler<void(bool)>&& completionHandler) >+void WebPaymentCoordinatorProxy::showPaymentUI(WebCore::PageIdentifier destinationID, PAL::SessionID sessionID, const String& originatingURLString, const Vector<String>& linkIconURLStrings, const WebCore::ApplePaySessionPaymentRequest& paymentRequest, CompletionHandler<void(bool)>&& completionHandler) > { > if (auto& coordinator = activePaymentCoordinatorProxy()) > coordinator->didCancelPaymentSession(); >diff --git a/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h b/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h >index d237eab3dab879a5da3571f89101d7ee970596b2..6e4a85cf2e27fe465aad75cee23bcae2de7fe02e 100644 >--- a/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h >+++ b/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h >@@ -30,6 +30,7 @@ > #include "MessageReceiver.h" > #include "MessageSender.h" > #include "PaymentAuthorizationPresenter.h" >+#include <WebCore/PageIdentifier.h> > #include <WebCore/PaymentHeaders.h> > #include <wtf/Forward.h> > #include <wtf/RetainPtr.h> >@@ -115,7 +116,7 @@ private: > void canMakePayments(CompletionHandler<void(bool)>&&); > void canMakePaymentsWithActiveCard(const String& merchantIdentifier, const String& domainName, PAL::SessionID, CompletionHandler<void(bool)>&&); > void openPaymentSetup(const String& merchantIdentifier, const String& domainName, CompletionHandler<void(bool)>&&); >- void showPaymentUI(uint64_t destinationID, PAL::SessionID, const String& originatingURLString, const Vector<String>& linkIconURLStrings, const WebCore::ApplePaySessionPaymentRequest&, CompletionHandler<void(bool)>&&); >+ void showPaymentUI(WebCore::PageIdentifier destinationID, PAL::SessionID, const String& originatingURLString, const Vector<String>& linkIconURLStrings, const WebCore::ApplePaySessionPaymentRequest&, CompletionHandler<void(bool)>&&); > void completeMerchantValidation(const WebCore::PaymentMerchantSession&); > void completeShippingMethodSelection(const Optional<WebCore::ShippingMethodUpdate>&); > void completeShippingContactSelection(const Optional<WebCore::ShippingContactUpdate>&); >@@ -147,7 +148,7 @@ private: > #endif > > Client& m_client; >- Optional<uint64_t> m_destinationID; >+ Optional<WebCore::PageIdentifier> m_destinationID; > > enum class State { > // Idle - Nothing's happening. >diff --git a/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in b/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in >index dd313127bf4a8a1aa0c6decc6d234f9bdbaab7d3..1de4cddce4b1263e2d0b94bfb9319148bbc18236 100644 >--- a/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in >+++ b/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in >@@ -30,7 +30,7 @@ messages -> WebPaymentCoordinatorProxy { > CanMakePaymentsWithActiveCard(String merchantIdentifier, String domainName, PAL::SessionID sessionID) -> (bool canMakePayments) Async > OpenPaymentSetup(String merchantIdentifier, String domainName) -> (bool result) Async > >- ShowPaymentUI(uint64_t destinationID, PAL::SessionID sessionID, String originatingURLString, Vector<String> linkIconURLStrings, WebCore::ApplePaySessionPaymentRequest paymentRequest) -> (bool result) Synchronous >+ ShowPaymentUI(WebCore::PageIdentifier destinationID, PAL::SessionID sessionID, String originatingURLString, Vector<String> linkIconURLStrings, WebCore::ApplePaySessionPaymentRequest paymentRequest) -> (bool result) Synchronous > CompleteMerchantValidation(WebCore::PaymentMerchantSession paymentMerchantSession) > CompleteShippingMethodSelection(Optional<WebCore::ShippingMethodUpdate> update) > CompleteShippingContactSelection(Optional<WebCore::ShippingContactUpdate> update) >diff --git a/Source/WebKit/Shared/Authentication/AuthenticationManager.cpp b/Source/WebKit/Shared/Authentication/AuthenticationManager.cpp >index 6eb335f07d3cfe62900071cdaa7893f04335beaa..9deb76ff132c6cb5fdf5ebf522234f6d443ef94d 100644 >--- a/Source/WebKit/Shared/Authentication/AuthenticationManager.cpp >+++ b/Source/WebKit/Shared/Authentication/AuthenticationManager.cpp >@@ -75,7 +75,7 @@ uint64_t AuthenticationManager::addChallengeToChallengeMap(Challenge&& challenge > return challengeID; > } > >-bool AuthenticationManager::shouldCoalesceChallenge(uint64_t pageID, uint64_t challengeID, const AuthenticationChallenge& challenge) const >+bool AuthenticationManager::shouldCoalesceChallenge(PageIdentifier pageID, uint64_t challengeID, const AuthenticationChallenge& challenge) const > { > if (!canCoalesceChallenge(challenge)) > return false; >@@ -108,7 +108,7 @@ Vector<uint64_t> AuthenticationManager::coalesceChallengesMatching(uint64_t chal > return challengesToCoalesce; > } > >-void AuthenticationManager::didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, const AuthenticationChallenge& authenticationChallenge, ChallengeCompletionHandler&& completionHandler) >+void AuthenticationManager::didReceiveAuthenticationChallenge(PageIdentifier pageID, uint64_t frameID, const AuthenticationChallenge& authenticationChallenge, ChallengeCompletionHandler&& completionHandler) > { > ASSERT(pageID); > ASSERT(frameID); >@@ -124,7 +124,7 @@ void AuthenticationManager::didReceiveAuthenticationChallenge(uint64_t pageID, u > > void AuthenticationManager::didReceiveAuthenticationChallenge(IPC::MessageSender& download, const WebCore::AuthenticationChallenge& authenticationChallenge, ChallengeCompletionHandler&& completionHandler) > { >- uint64_t dummyPageID = 0; >+ PageIdentifier dummyPageID; > uint64_t challengeID = addChallengeToChallengeMap({ dummyPageID, authenticationChallenge, WTFMove(completionHandler) }); > > // Coalesce challenges in the same protection space and in the same page. >diff --git a/Source/WebKit/Shared/Authentication/AuthenticationManager.h b/Source/WebKit/Shared/Authentication/AuthenticationManager.h >index 7fe399e0b7e9458bd91782593841e4c449335ae1..86e744c108df4cbcf5d047609acf96c6823d6b16 100644 >--- a/Source/WebKit/Shared/Authentication/AuthenticationManager.h >+++ b/Source/WebKit/Shared/Authentication/AuthenticationManager.h >@@ -29,6 +29,7 @@ > #include "NetworkProcessSupplement.h" > #include "WebProcessSupplement.h" > #include <WebCore/AuthenticationChallenge.h> >+#include <WebCore/PageIdentifier.h> > #include <wtf/CompletionHandler.h> > #include <wtf/Forward.h> > #include <wtf/HashMap.h> >@@ -60,7 +61,7 @@ public: > > static const char* supplementName(); > >- void didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&&); >+ void didReceiveAuthenticationChallenge(WebCore::PageIdentifier, uint64_t frameID, const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&&); > void didReceiveAuthenticationChallenge(IPC::MessageSender& download, const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&&); > > void completeAuthenticationChallenge(uint64_t challengeID, AuthenticationChallengeDisposition, WebCore::Credential&&); >@@ -69,7 +70,7 @@ public: > > private: > struct Challenge { >- uint64_t pageID; >+ WebCore::PageIdentifier pageID; > WebCore::AuthenticationChallenge challenge; > ChallengeCompletionHandler completionHandler; > }; >@@ -83,7 +84,7 @@ private: > void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override; > > uint64_t addChallengeToChallengeMap(Challenge&&); >- bool shouldCoalesceChallenge(uint64_t pageID, uint64_t challengeID, const WebCore::AuthenticationChallenge&) const; >+ bool shouldCoalesceChallenge(WebCore::PageIdentifier, uint64_t challengeID, const WebCore::AuthenticationChallenge&) const; > > Vector<uint64_t> coalesceChallengesMatching(uint64_t challengeID) const; > >diff --git a/Source/WebKit/Shared/AuxiliaryProcess.h b/Source/WebKit/Shared/AuxiliaryProcess.h >index 32b0a475dc2bb8ff77fa41725c083b0f75099539..19253e2bab6a17bef4663667fd48ab9e9e051539 100644 >--- a/Source/WebKit/Shared/AuxiliaryProcess.h >+++ b/Source/WebKit/Shared/AuxiliaryProcess.h >@@ -62,6 +62,18 @@ public: > void removeMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID); > void removeMessageReceiver(IPC::StringReference messageReceiverName); > void removeMessageReceiver(IPC::MessageReceiver&); >+ >+ template <typename T> >+ void addMessageReceiver(IPC::StringReference messageReceiverName, ObjectIdentifier<T> destinationID, IPC::MessageReceiver& receiver) >+ { >+ addMessageReceiver(messageReceiverName, destinationID.toUInt64(), receiver); >+ } >+ >+ template <typename T> >+ void removeMessageReceiver(IPC::StringReference messageReceiverName, ObjectIdentifier<T> destinationID) >+ { >+ removeMessageReceiver(messageReceiverName, destinationID.toUInt64()); >+ } > > void setProcessSuppressionEnabled(bool); > >diff --git a/Source/WebKit/Shared/TextInputContext.h b/Source/WebKit/Shared/TextInputContext.h >index 4f75fd806f68d6a999bba6a45b1457476fcab88c..54d4277b8538fba4156ab83d6adb8957828a0d79 100644 >--- a/Source/WebKit/Shared/TextInputContext.h >+++ b/Source/WebKit/Shared/TextInputContext.h >@@ -29,13 +29,14 @@ > #include <WebCore/DocumentIdentifier.h> > #include <WebCore/ElementIdentifier.h> > #include <WebCore/FloatRect.h> >+#include <WebCore/PageIdentifier.h> > > namespace WebKit { > > struct TextInputContext { > WebCore::FloatRect boundingRect; > >- uint64_t webPageIdentifier; >+ WebCore::PageIdentifier webPageIdentifier; > WebCore::DocumentIdentifier documentIdentifier; > WebCore::ElementIdentifier elementIdentifier; > >diff --git a/Source/WebKit/Shared/WebBackForwardListItem.cpp b/Source/WebKit/Shared/WebBackForwardListItem.cpp >index 9dbb36a45536aa373bc97d0a7cf4d842dff396ed..d900a16733a9ce53f76e97f8959c147a750897d7 100644 >--- a/Source/WebKit/Shared/WebBackForwardListItem.cpp >+++ b/Source/WebKit/Shared/WebBackForwardListItem.cpp >@@ -35,12 +35,12 @@ > namespace WebKit { > using namespace WebCore; > >-Ref<WebBackForwardListItem> WebBackForwardListItem::create(BackForwardListItemState&& backForwardListItemState, uint64_t pageID) >+Ref<WebBackForwardListItem> WebBackForwardListItem::create(BackForwardListItemState&& backForwardListItemState, PageIdentifier pageID) > { > return adoptRef(*new WebBackForwardListItem(WTFMove(backForwardListItemState), pageID)); > } > >-WebBackForwardListItem::WebBackForwardListItem(BackForwardListItemState&& backForwardListItemState, uint64_t pageID) >+WebBackForwardListItem::WebBackForwardListItem(BackForwardListItemState&& backForwardListItemState, PageIdentifier pageID) > : m_itemState(WTFMove(backForwardListItemState)) > , m_pageID(pageID) > , m_lastProcessIdentifier(m_itemState.identifier.processIdentifier) >diff --git a/Source/WebKit/Shared/WebBackForwardListItem.h b/Source/WebKit/Shared/WebBackForwardListItem.h >index 872ef18095d18cc3a9c5e7463d30e7f614872f5e..44af7c66590746df982e05c13beecd06a7864e2c 100644 >--- a/Source/WebKit/Shared/WebBackForwardListItem.h >+++ b/Source/WebKit/Shared/WebBackForwardListItem.h >@@ -27,6 +27,7 @@ > > #include "APIObject.h" > #include "SessionState.h" >+#include <WebCore/PageIdentifier.h> > #include <wtf/Ref.h> > #include <wtf/WeakPtr.h> > #include <wtf/text/WTFString.h> >@@ -46,7 +47,7 @@ class SuspendedPageProxy; > > class WebBackForwardListItem : public API::ObjectImpl<API::Object::Type::BackForwardListItem> { > public: >- static Ref<WebBackForwardListItem> create(BackForwardListItemState&&, uint64_t pageID); >+ static Ref<WebBackForwardListItem> create(BackForwardListItemState&&, WebCore::PageIdentifier); > virtual ~WebBackForwardListItem(); > > static WebBackForwardListItem* itemForID(const WebCore::BackForwardItemIdentifier&); >@@ -54,7 +55,7 @@ public: > > const WebCore::BackForwardItemIdentifier& itemID() const { return m_itemState.identifier; } > const BackForwardListItemState& itemState() { return m_itemState; } >- uint64_t pageID() const { return m_pageID; } >+ WebCore::PageIdentifier pageID() const { return m_pageID; } > > WebCore::ProcessIdentifier lastProcessIdentifier() const { return m_lastProcessIdentifier; } > void setLastProcessIdentifier(const WebCore::ProcessIdentifier& identifier) { m_lastProcessIdentifier = identifier; } >@@ -81,12 +82,12 @@ public: > #endif > > private: >- explicit WebBackForwardListItem(BackForwardListItemState&&, uint64_t pageID); >+ WebBackForwardListItem(BackForwardListItemState&&, WebCore::PageIdentifier); > > void removeSuspendedPageFromProcessPool(); > > BackForwardListItemState m_itemState; >- uint64_t m_pageID; >+ WebCore::PageIdentifier m_pageID; > WebCore::ProcessIdentifier m_lastProcessIdentifier; > WeakPtr<SuspendedPageProxy> m_suspendedPage; > }; >diff --git a/Source/WebKit/Shared/WebPageCreationParameters.cpp b/Source/WebKit/Shared/WebPageCreationParameters.cpp >index e9da60aeebeff1da691e1e453373577a3a940a25..6994825d081cb0994842accdce4846e3ddb0e921 100644 >--- a/Source/WebKit/Shared/WebPageCreationParameters.cpp >+++ b/Source/WebKit/Shared/WebPageCreationParameters.cpp >@@ -53,7 +53,7 @@ void WebPageCreationParameters::encode(IPC::Encoder& encoder) const > encoder << userAgent; > encoder << itemStates; > encoder << sessionID; >- encoder << userContentControllerID.toUInt64(); >+ encoder << userContentControllerID; > encoder << visitedLinkTableID; > encoder << websiteDataStoreID; > encoder << canRunBeforeUnloadConfirmPanel; >@@ -193,11 +193,11 @@ Optional<WebPageCreationParameters> WebPageCreationParameters::decode(IPC::Decod > if (!decoder.decode(parameters.sessionID)) > return WTF::nullopt; > >- Optional<uint64_t> userContentControllerIdentifier; >+ Optional<UserContentControllerIdentifier> userContentControllerIdentifier; > decoder >> userContentControllerIdentifier; > if (!userContentControllerIdentifier) > return WTF::nullopt; >- parameters.userContentControllerID = makeObjectIdentifier<UserContentControllerIdentifierType>(*userContentControllerIdentifier); >+ parameters.userContentControllerID = *userContentControllerIdentifier; > > if (!decoder.decode(parameters.visitedLinkTableID)) > return WTF::nullopt; >@@ -392,7 +392,7 @@ Optional<WebPageCreationParameters> WebPageCreationParameters::decode(IPC::Decod > return WTF::nullopt; > parameters.backgroundColor = WTFMove(*backgroundColor); > >- Optional<Optional<uint64_t>> oldPageID; >+ Optional<Optional<PageIdentifier>> oldPageID; > decoder >> oldPageID; > if (!oldPageID) > return WTF::nullopt; >diff --git a/Source/WebKit/Shared/WebPageCreationParameters.h b/Source/WebKit/Shared/WebPageCreationParameters.h >index c2be84146b34ea756197075ac8b2cbc38bec42e0..90127bc31030eee03f2627e97cad45f9b7b69c12 100644 >--- a/Source/WebKit/Shared/WebPageCreationParameters.h >+++ b/Source/WebKit/Shared/WebPageCreationParameters.h >@@ -39,6 +39,7 @@ > #include <WebCore/IntSize.h> > #include <WebCore/LayoutMilestone.h> > #include <WebCore/MediaProducer.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/Pagination.h> > #include <WebCore/ScrollTypes.h> > #include <WebCore/UserInterfaceLayoutDirection.h> >@@ -202,7 +203,7 @@ struct WebPageCreationParameters { > > Optional<WebCore::Color> backgroundColor; > >- Optional<uint64_t> oldPageID; >+ Optional<WebCore::PageIdentifier> oldPageID; > }; > > } // namespace WebKit >diff --git a/Source/WebKit/Shared/WebPageGroupData.cpp b/Source/WebKit/Shared/WebPageGroupData.cpp >index 9639d015c2f94e67b767228ad23b1d9c43b35007..8c28320d1dad2de764658c3dc456093cfe34c7e3 100644 >--- a/Source/WebKit/Shared/WebPageGroupData.cpp >+++ b/Source/WebKit/Shared/WebPageGroupData.cpp >@@ -34,7 +34,7 @@ void WebPageGroupData::encode(IPC::Encoder& encoder) const > { > encoder << identifier; > encoder << pageGroupID; >- encoder << userContentControllerIdentifier.toUInt64(); >+ encoder << userContentControllerIdentifier; > } > > Optional<WebPageGroupData> WebPageGroupData::decode(IPC::Decoder& decoder) >@@ -49,12 +49,12 @@ Optional<WebPageGroupData> WebPageGroupData::decode(IPC::Decoder& decoder) > if (!pageGroupID) > return WTF::nullopt; > >- Optional<uint64_t> userContentControllerIdentifier; >+ Optional<UserContentControllerIdentifier> userContentControllerIdentifier; > decoder >> userContentControllerIdentifier; > if (!userContentControllerIdentifier) > return WTF::nullopt; > >- return {{ WTFMove(*identifier), WTFMove(*pageGroupID), makeObjectIdentifier<UserContentControllerIdentifierType>(*userContentControllerIdentifier) }}; >+ return {{ WTFMove(*identifier), *pageGroupID, *userContentControllerIdentifier }}; > } > > } // namespace WebKit >diff --git a/Source/WebKit/Shared/mac/ObjCObjectGraph.mm b/Source/WebKit/Shared/mac/ObjCObjectGraph.mm >index c65484f551220ddbc8b84b796acb05988726b873..fe66de6592aa0af2345882db3d41a12ca2b9bc16 100644 >--- a/Source/WebKit/Shared/mac/ObjCObjectGraph.mm >+++ b/Source/WebKit/Shared/mac/ObjCObjectGraph.mm >@@ -298,11 +298,12 @@ bool ObjCObjectGraph::decode(IPC::Decoder& decoder, RetainPtr<id>& result) > } > > case ObjCType::WKBrowsingContextHandle: { >- uint64_t pageID; >- if (!decoder.decode(pageID)) >+ Optional<WebCore::PageIdentifier> pageID; >+ decoder >> pageID; >+ if (!pageID) > return false; > >- result = adoptNS([[WKBrowsingContextHandle alloc] _initWithPageID:pageID]); >+ result = adoptNS([[WKBrowsingContextHandle alloc] _initWithPageID:*pageID]); > break; > } > >diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp >index 2c1f3e977b2e52dbf9c595479c164c96b513f248..9356ee3e4b21850d491f055ea5d31225b4c0080a 100644 >--- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp >+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp >@@ -1749,5 +1749,5 @@ void webkitWebContextWebViewDestroyed(WebKitWebContext* context, WebKitWebView* > > WebKitWebView* webkitWebContextGetWebViewForPage(WebKitWebContext* context, WebPageProxy* page) > { >- return page ? context->priv->webViews.get(page->pageID()) : 0; >+ return page ? context->priv->webViews.get(page->pageID().toUInt64()) : nullptr; > } >diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp >index 887f7b31c0e6d3aed12fc103d490ea5ea0b37973..ceb90d73d83f72e1eb69b0b8a2dcff9a9da21aca 100644 >--- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp >+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp >@@ -2818,7 +2818,7 @@ guint64 webkit_web_view_get_page_id(WebKitWebView* webView) > { > g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); > >- return getPage(webView).pageID(); >+ return getPage(webView).pageID().toUInt64(); > } > > /** >diff --git a/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp b/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp >index 1075781af2c3f8a7ea7c6186ebcf79c7081c1997..2f9cfe9424026172d906dbd1a03c4cd01544bb8b 100644 >--- a/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp >+++ b/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp >@@ -54,6 +54,7 @@ > namespace WebKit { > > using namespace Inspector; >+using namespace WebCore; > > String AutomationCommandError::toProtocolString() > { >@@ -522,7 +523,7 @@ void WebAutomationSession::waitForNavigationToCompleteOnFrame(WebFrameProxy& fra > } > } > >-void WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout(HashMap<uint64_t, RefPtr<Inspector::BackendDispatcher::CallbackBase>>& map) >+void WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout(HashMap<PageIdentifier, RefPtr<Inspector::BackendDispatcher::CallbackBase>>& map) > { > Inspector::ErrorString timeoutError = STRING_FOR_PREDEFINED_ERROR_NAME(Timeout); > for (auto id : copyToVector(map.keys())) { >diff --git a/Source/WebKit/UIProcess/Automation/WebAutomationSession.h b/Source/WebKit/UIProcess/Automation/WebAutomationSession.h >index 65eb3e46e5b88ba82ac2d1024ecae63cb34d7087..f39c061b57892a9248fd09dffcfa7b8c50a07537 100644 >--- a/Source/WebKit/UIProcess/Automation/WebAutomationSession.h >+++ b/Source/WebKit/UIProcess/Automation/WebAutomationSession.h >@@ -34,6 +34,7 @@ > #include "ShareableBitmap.h" > #include "SimulatedInputDispatcher.h" > #include "WebEvent.h" >+#include <WebCore/PageIdentifier.h> > #include <wtf/CompletionHandler.h> > #include <wtf/Forward.h> > #include <wtf/RunLoop.h> >@@ -225,7 +226,7 @@ private: > > void waitForNavigationToCompleteOnPage(WebPageProxy&, Inspector::Protocol::Automation::PageLoadStrategy, Seconds, Ref<Inspector::BackendDispatcher::CallbackBase>&&); > void waitForNavigationToCompleteOnFrame(WebFrameProxy&, Inspector::Protocol::Automation::PageLoadStrategy, Seconds, Ref<Inspector::BackendDispatcher::CallbackBase>&&); >- void respondToPendingPageNavigationCallbacksWithTimeout(HashMap<uint64_t, RefPtr<Inspector::BackendDispatcher::CallbackBase>>&); >+ void respondToPendingPageNavigationCallbacksWithTimeout(HashMap<WebCore::PageIdentifier, RefPtr<Inspector::BackendDispatcher::CallbackBase>>&); > void respondToPendingFrameNavigationCallbacksWithTimeout(HashMap<uint64_t, RefPtr<Inspector::BackendDispatcher::CallbackBase>>&); > void loadTimerFired(); > >@@ -280,22 +281,22 @@ private: > Ref<Inspector::AutomationBackendDispatcher> m_domainDispatcher; > std::unique_ptr<Inspector::AutomationFrontendDispatcher> m_domainNotifier; > >- HashMap<uint64_t, String> m_webPageHandleMap; >- HashMap<String, uint64_t> m_handleWebPageMap; >+ HashMap<WebCore::PageIdentifier, String> m_webPageHandleMap; >+ HashMap<String, WebCore::PageIdentifier> m_handleWebPageMap; > > HashMap<uint64_t, String> m_webFrameHandleMap; > HashMap<String, uint64_t> m_handleWebFrameMap; > >- HashMap<uint64_t, RefPtr<Inspector::BackendDispatcher::CallbackBase>> m_pendingNormalNavigationInBrowsingContextCallbacksPerPage; >- HashMap<uint64_t, RefPtr<Inspector::BackendDispatcher::CallbackBase>> m_pendingEagerNavigationInBrowsingContextCallbacksPerPage; >+ HashMap<WebCore::PageIdentifier, RefPtr<Inspector::BackendDispatcher::CallbackBase>> m_pendingNormalNavigationInBrowsingContextCallbacksPerPage; >+ HashMap<WebCore::PageIdentifier, RefPtr<Inspector::BackendDispatcher::CallbackBase>> m_pendingEagerNavigationInBrowsingContextCallbacksPerPage; > HashMap<uint64_t, RefPtr<Inspector::BackendDispatcher::CallbackBase>> m_pendingNormalNavigationInBrowsingContextCallbacksPerFrame; > HashMap<uint64_t, RefPtr<Inspector::BackendDispatcher::CallbackBase>> m_pendingEagerNavigationInBrowsingContextCallbacksPerFrame; >- HashMap<uint64_t, RefPtr<Inspector::BackendDispatcher::CallbackBase>> m_pendingInspectorCallbacksPerPage; >+ HashMap<WebCore::PageIdentifier, RefPtr<Inspector::BackendDispatcher::CallbackBase>> m_pendingInspectorCallbacksPerPage; > #if ENABLE(WEBDRIVER_KEYBOARD_INTERACTIONS) >- HashMap<uint64_t, Function<void(Optional<AutomationCommandError>)>> m_pendingKeyboardEventsFlushedCallbacksPerPage; >+ HashMap<WebCore::PageIdentifier, Function<void(Optional<AutomationCommandError>)>> m_pendingKeyboardEventsFlushedCallbacksPerPage; > #endif > #if ENABLE(WEBDRIVER_MOUSE_INTERACTIONS) >- HashMap<uint64_t, Function<void(Optional<AutomationCommandError>)>> m_pendingMouseEventsFlushedCallbacksPerPage; >+ HashMap<WebCore::PageIdentifier, Function<void(Optional<AutomationCommandError>)>> m_pendingMouseEventsFlushedCallbacksPerPage; > #endif > > uint64_t m_nextEvaluateJavaScriptCallbackID { 1 }; >@@ -319,7 +320,7 @@ private: > // SimulatedInputDispatcher APIs take a set of input sources. We also intern these > // so that previous input source state is used as initial state for later commands. > HashSet<Ref<SimulatedInputSource>> m_inputSources; >- HashMap<uint64_t, Ref<SimulatedInputDispatcher>> m_inputDispatchersByPage; >+ HashMap<WebCore::PageIdentifier, Ref<SimulatedInputDispatcher>> m_inputDispatchersByPage; > #endif > #if ENABLE(WEBDRIVER_KEYBOARD_INTERACTIONS) > // Keep track of currently active modifiers across multiple keystrokes. >diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h >index 9893d398b57462ad9b88838e22710fcaf04630d0..6b09badb8d0cebabf2c69f6009b1bd1d23c09e58 100644 >--- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h >+++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h >@@ -51,6 +51,18 @@ public: > template<typename T> bool send(T&& message, uint64_t destinationID, OptionSet<IPC::SendOption> sendOptions = { }); > template<typename T> bool sendSync(T&& message, typename T::Reply&&, uint64_t destinationID, Seconds timeout = 1_s, OptionSet<IPC::SendSyncOption> sendSyncOptions = { }); > template<typename T, typename... Args> void sendWithAsyncReply(T&&, CompletionHandler<void(Args...)>&&); >+ >+ template<typename T, typename U> >+ bool send(T&& message, ObjectIdentifier<U> destinationID, OptionSet<IPC::SendOption> sendOptions = { }) >+ { >+ return send<T>(WTFMove(message), destinationID.toUInt64(), sendOptions); >+ } >+ >+ template<typename T, typename U> >+ bool sendSync(T&& message, typename T::Reply&& reply, ObjectIdentifier<U> destinationID, Seconds timeout = 1_s, OptionSet<IPC::SendSyncOption> sendSyncOptions = { }) >+ { >+ return sendSync<T>(WTFMove(message), WTFMove(reply), destinationID.toUInt64(), timeout, sendSyncOptions); >+ } > > IPC::Connection* connection() const > { >@@ -67,6 +79,18 @@ public: > void addMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID, IPC::MessageReceiver&); > void removeMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID); > void removeMessageReceiver(IPC::StringReference messageReceiverName); >+ >+ template <typename T> >+ void addMessageReceiver(IPC::StringReference messageReceiverName, ObjectIdentifier<T> destinationID, IPC::MessageReceiver& receiver) >+ { >+ addMessageReceiver(messageReceiverName, destinationID.toUInt64(), receiver); >+ } >+ >+ template <typename T> >+ void removeMessageReceiver(IPC::StringReference messageReceiverName, ObjectIdentifier<T> destinationID) >+ { >+ removeMessageReceiver(messageReceiverName, destinationID.toUInt64()); >+ } > > enum class State { > Launching, >diff --git a/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm b/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm >index f05d79c0d01b89d6b6848ca2506ccf91dcfb7671..670659768618ed75f980c11adaca91be299e4ed6 100644 >--- a/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm >+++ b/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm >@@ -527,94 +527,94 @@ void PlaybackSessionManagerProxy::handleControlledElementIDResponse(uint64_t con > > void PlaybackSessionManagerProxy::play(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::Play(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::Play(contextId)); > } > > void PlaybackSessionManagerProxy::pause(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::Pause(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::Pause(contextId)); > } > > void PlaybackSessionManagerProxy::togglePlayState(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::TogglePlayState(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::TogglePlayState(contextId)); > } > > void PlaybackSessionManagerProxy::beginScrubbing(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::BeginScrubbing(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::BeginScrubbing(contextId)); > } > > void PlaybackSessionManagerProxy::endScrubbing(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::EndScrubbing(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::EndScrubbing(contextId)); > } > > void PlaybackSessionManagerProxy::seekToTime(uint64_t contextId, double time, double toleranceBefore, double toleranceAfter) > { >- m_page->send(Messages::PlaybackSessionManager::SeekToTime(contextId, time, toleranceBefore, toleranceAfter), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::SeekToTime(contextId, time, toleranceBefore, toleranceAfter)); > } > > void PlaybackSessionManagerProxy::fastSeek(uint64_t contextId, double time) > { >- m_page->send(Messages::PlaybackSessionManager::FastSeek(contextId, time), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::FastSeek(contextId, time)); > } > > void PlaybackSessionManagerProxy::beginScanningForward(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::BeginScanningForward(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::BeginScanningForward(contextId)); > } > > void PlaybackSessionManagerProxy::beginScanningBackward(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::BeginScanningBackward(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::BeginScanningBackward(contextId)); > } > > void PlaybackSessionManagerProxy::endScanning(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::EndScanning(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::EndScanning(contextId)); > } > > void PlaybackSessionManagerProxy::selectAudioMediaOption(uint64_t contextId, uint64_t index) > { >- m_page->send(Messages::PlaybackSessionManager::SelectAudioMediaOption(contextId, index), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::SelectAudioMediaOption(contextId, index)); > } > > void PlaybackSessionManagerProxy::selectLegibleMediaOption(uint64_t contextId, uint64_t index) > { >- m_page->send(Messages::PlaybackSessionManager::SelectLegibleMediaOption(contextId, index), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::SelectLegibleMediaOption(contextId, index)); > } > > void PlaybackSessionManagerProxy::togglePictureInPicture(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::TogglePictureInPicture(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::TogglePictureInPicture(contextId)); > } > > void PlaybackSessionManagerProxy::toggleMuted(uint64_t contextId) > { >- m_page->send(Messages::PlaybackSessionManager::ToggleMuted(contextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::ToggleMuted(contextId)); > } > > void PlaybackSessionManagerProxy::setMuted(uint64_t contextId, bool muted) > { >- m_page->send(Messages::PlaybackSessionManager::SetMuted(contextId, muted), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::SetMuted(contextId, muted)); > } > > void PlaybackSessionManagerProxy::setVolume(uint64_t contextId, double volume) > { >- m_page->send(Messages::PlaybackSessionManager::SetVolume(contextId, volume), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::SetVolume(contextId, volume)); > } > > void PlaybackSessionManagerProxy::setPlayingOnSecondScreen(uint64_t contextId, bool value) > { > if (m_page) >- m_page->send(Messages::PlaybackSessionManager::SetPlayingOnSecondScreen(contextId, value), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::SetPlayingOnSecondScreen(contextId, value)); > } > > void PlaybackSessionManagerProxy::requestControlledElementID() > { > if (m_controlsManagerContextId) >- m_page->send(Messages::PlaybackSessionManager::HandleControlledElementIDRequest(m_controlsManagerContextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManager::HandleControlledElementIDRequest(m_controlsManagerContextId)); > } > > PlatformPlaybackSessionInterface* PlaybackSessionManagerProxy::controlsManagerInterface() >diff --git a/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm b/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm >index 6ba479e060a096c43951ea74bf897ba671689f7e..c8d65c362aac82c641195116498a1179c533e441 100644 >--- a/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm >+++ b/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm >@@ -620,43 +620,43 @@ void VideoFullscreenManagerProxy::preparedToExitFullscreen(uint64_t contextId) > > void VideoFullscreenManagerProxy::requestFullscreenMode(uint64_t contextId, WebCore::HTMLMediaElementEnums::VideoFullscreenMode mode, bool finishedWithMedia) > { >- m_page->send(Messages::VideoFullscreenManager::RequestFullscreenMode(contextId, mode, finishedWithMedia), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::RequestFullscreenMode(contextId, mode, finishedWithMedia)); > } > > void VideoFullscreenManagerProxy::requestUpdateInlineRect(uint64_t contextId) > { >- m_page->send(Messages::VideoFullscreenManager::RequestUpdateInlineRect(contextId), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::RequestUpdateInlineRect(contextId)); > } > > void VideoFullscreenManagerProxy::requestVideoContentLayer(uint64_t contextId) > { >- m_page->send(Messages::VideoFullscreenManager::RequestVideoContentLayer(contextId), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::RequestVideoContentLayer(contextId)); > } > > void VideoFullscreenManagerProxy::returnVideoContentLayer(uint64_t contextId) > { >- m_page->send(Messages::VideoFullscreenManager::ReturnVideoContentLayer(contextId), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::ReturnVideoContentLayer(contextId)); > } > > void VideoFullscreenManagerProxy::didSetupFullscreen(uint64_t contextId) > { >- m_page->send(Messages::VideoFullscreenManager::DidSetupFullscreen(contextId), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::DidSetupFullscreen(contextId)); > } > > void VideoFullscreenManagerProxy::willExitFullscreen(uint64_t contextId) > { >- m_page->send(Messages::VideoFullscreenManager::WillExitFullscreen(contextId), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::WillExitFullscreen(contextId)); > } > > void VideoFullscreenManagerProxy::didExitFullscreen(uint64_t contextId) > { >- m_page->send(Messages::VideoFullscreenManager::DidExitFullscreen(contextId), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::DidExitFullscreen(contextId)); > m_page->didExitFullscreen(); > } > > void VideoFullscreenManagerProxy::didEnterFullscreen(uint64_t contextId) > { >- m_page->send(Messages::VideoFullscreenManager::DidEnterFullscreen(contextId), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::DidEnterFullscreen(contextId)); > m_page->didEnterFullscreen(); > } > >@@ -670,7 +670,7 @@ void VideoFullscreenManagerProxy::didCleanupFullscreen(uint64_t contextId) > [CATransaction flush]; > [model->layerHostView() removeFromSuperview]; > model->setLayerHostView(nullptr); >- m_page->send(Messages::VideoFullscreenManager::DidCleanupFullscreen(contextId), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::DidCleanupFullscreen(contextId)); > > interface->setMode(HTMLMediaElementEnums::VideoFullscreenModeNone); > removeClientForContext(contextId); >@@ -688,25 +688,25 @@ void VideoFullscreenManagerProxy::setVideoLayerFrame(uint64_t contextId, WebCore > mach_port_name_t fencePort = fenceSendRight.leakSendRight(); > #endif > >- m_page->send(Messages::VideoFullscreenManager::SetVideoLayerFrameFenced(contextId, frame, IPC::Attachment(fencePort, MACH_MSG_TYPE_MOVE_SEND)), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::SetVideoLayerFrameFenced(contextId, frame, IPC::Attachment(fencePort, MACH_MSG_TYPE_MOVE_SEND))); > } > } > > void VideoFullscreenManagerProxy::setVideoLayerGravity(uint64_t contextId, WebCore::MediaPlayerEnums::VideoGravity gravity) > { >- m_page->send(Messages::VideoFullscreenManager::SetVideoLayerGravityEnum(contextId, (unsigned)gravity), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::SetVideoLayerGravityEnum(contextId, (unsigned)gravity)); > } > > void VideoFullscreenManagerProxy::fullscreenModeChanged(uint64_t contextId, WebCore::HTMLMediaElementEnums::VideoFullscreenMode mode) > { > m_page->uiClient().hasVideoInPictureInPictureDidChange(m_page, mode & MediaPlayerEnums::VideoFullscreenModePictureInPicture); >- m_page->send(Messages::VideoFullscreenManager::FullscreenModeChanged(contextId, mode), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::FullscreenModeChanged(contextId, mode)); > } > > void VideoFullscreenManagerProxy::fullscreenMayReturnToInline(uint64_t contextId) > { > bool isViewVisible = m_page->isViewVisible(); >- m_page->send(Messages::VideoFullscreenManager::FullscreenMayReturnToInline(contextId, isViewVisible), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManager::FullscreenMayReturnToInline(contextId, isViewVisible)); > } > > #endif >diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >index 2aa748f004f222a01ddb7ac8eee7132ca78890ca..08a3d308d3a50f194544c13e791b36a713b3d4c1 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >@@ -1997,13 +1997,13 @@ float WebViewImpl::intrinsicDeviceScaleFactor() const > > void WebViewImpl::windowDidOrderOffScreen() > { >- LOG(ActivityState, "WebViewImpl %p (page %llu) windowDidOrderOffScreen", this, m_page->pageID()); >+ LOG(ActivityState, "WebViewImpl %p (page %llu) windowDidOrderOffScreen", this, m_page->pageID().toUInt64()); > m_page->activityStateDidChange({ WebCore::ActivityState::IsVisible, WebCore::ActivityState::WindowIsActive }); > } > > void WebViewImpl::windowDidOrderOnScreen() > { >- LOG(ActivityState, "WebViewImpl %p (page %llu) windowDidOrderOnScreen", this, m_page->pageID()); >+ LOG(ActivityState, "WebViewImpl %p (page %llu) windowDidOrderOnScreen", this, m_page->pageID().toUInt64()); > m_page->activityStateDidChange({ WebCore::ActivityState::IsVisible, WebCore::ActivityState::WindowIsActive }); > } > >@@ -2071,7 +2071,7 @@ void WebViewImpl::windowDidChangeLayerHosting() > > void WebViewImpl::windowDidChangeOcclusionState() > { >- LOG(ActivityState, "WebViewImpl %p (page %llu) windowDidChangeOcclusionState", this, m_page->pageID()); >+ LOG(ActivityState, "WebViewImpl %p (page %llu) windowDidChangeOcclusionState", this, m_page->pageID().toUInt64()); > m_page->activityStateDidChange(WebCore::ActivityState::IsVisible); > } > >@@ -2234,19 +2234,19 @@ void WebViewImpl::viewDidChangeBackingProperties() > > void WebViewImpl::viewDidHide() > { >- LOG(ActivityState, "WebViewImpl %p (page %llu) viewDidHide", this, m_page->pageID()); >+ LOG(ActivityState, "WebViewImpl %p (page %llu) viewDidHide", this, m_page->pageID().toUInt64()); > m_page->activityStateDidChange(WebCore::ActivityState::IsVisible); > } > > void WebViewImpl::viewDidUnhide() > { >- LOG(ActivityState, "WebViewImpl %p (page %llu) viewDidUnhide", this, m_page->pageID()); >+ LOG(ActivityState, "WebViewImpl %p (page %llu) viewDidUnhide", this, m_page->pageID().toUInt64()); > m_page->activityStateDidChange(WebCore::ActivityState::IsVisible); > } > > void WebViewImpl::activeSpaceDidChange() > { >- LOG(ActivityState, "WebViewImpl %p (page %llu) activeSpaceDidChange", this, m_page->pageID()); >+ LOG(ActivityState, "WebViewImpl %p (page %llu) activeSpaceDidChange", this, m_page->pageID().toUInt64()); > m_page->activityStateDidChange(WebCore::ActivityState::IsVisible); > } > >diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.cpp b/Source/WebKit/UIProcess/DrawingAreaProxy.cpp >index b5b4e0ad22162c9d0c00c98cd8393509fcf6df81..ecf5da0a910b639480ac32a5fb1b0fb0cffff6eb 100644 >--- a/Source/WebKit/UIProcess/DrawingAreaProxy.cpp >+++ b/Source/WebKit/UIProcess/DrawingAreaProxy.cpp >@@ -48,12 +48,12 @@ DrawingAreaProxy::DrawingAreaProxy(DrawingAreaType type, WebPageProxy& webPagePr > , m_viewExposedRectChangedTimer(RunLoop::main(), this, &DrawingAreaProxy::viewExposedRectChangedTimerFired) > #endif > { >- process.addMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_identifier.toUInt64(), *this); >+ process.addMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_identifier, *this); > } > > DrawingAreaProxy::~DrawingAreaProxy() > { >- process().removeMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_identifier.toUInt64()); >+ process().removeMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_identifier); > } > > bool DrawingAreaProxy::setSize(const IntSize& size, const IntSize& scrollDelta) >diff --git a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp >index e85253b20a9613bd97c40da47fe835538b8e78ff..346ac6720a65881fd098b5c34f1bd8add9cce09e 100644 >--- a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp >+++ b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp >@@ -311,7 +311,7 @@ void NetworkProcessProxy::didCreateNetworkConnectionToWebProcess(const IPC::Atta > #endif > } > >-void NetworkProcessProxy::didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, WebCore::AuthenticationChallenge&& coreChallenge, uint64_t challengeID) >+void NetworkProcessProxy::didReceiveAuthenticationChallenge(PageIdentifier pageID, uint64_t frameID, WebCore::AuthenticationChallenge&& coreChallenge, uint64_t challengeID) > { > #if ENABLE(SERVICE_WORKER) > if (auto* serviceWorkerProcessProxy = m_processPool.serviceWorkerProcessProxyFromPageID(pageID)) { >@@ -371,7 +371,7 @@ void NetworkProcessProxy::didFinishLaunching(ProcessLauncher* launcher, IPC::Con > #endif > } > >-void NetworkProcessProxy::logDiagnosticMessage(uint64_t pageID, const String& message, const String& description, WebCore::ShouldSample shouldSample) >+void NetworkProcessProxy::logDiagnosticMessage(PageIdentifier pageID, const String& message, const String& description, WebCore::ShouldSample shouldSample) > { > WebPageProxy* page = WebProcessProxy::webPage(pageID); > // FIXME: We do this null-check because by the time the decision to log is made, the page may be gone. We should refactor to avoid this, >@@ -382,7 +382,7 @@ void NetworkProcessProxy::logDiagnosticMessage(uint64_t pageID, const String& me > page->logDiagnosticMessage(message, description, shouldSample); > } > >-void NetworkProcessProxy::logDiagnosticMessageWithResult(uint64_t pageID, const String& message, const String& description, uint32_t result, WebCore::ShouldSample shouldSample) >+void NetworkProcessProxy::logDiagnosticMessageWithResult(PageIdentifier pageID, const String& message, const String& description, uint32_t result, WebCore::ShouldSample shouldSample) > { > WebPageProxy* page = WebProcessProxy::webPage(pageID); > // FIXME: We do this null-check because by the time the decision to log is made, the page may be gone. We should refactor to avoid this, >@@ -393,7 +393,7 @@ void NetworkProcessProxy::logDiagnosticMessageWithResult(uint64_t pageID, const > page->logDiagnosticMessageWithResult(message, description, result, shouldSample); > } > >-void NetworkProcessProxy::logDiagnosticMessageWithValue(uint64_t pageID, const String& message, const String& description, double value, unsigned significantFigures, WebCore::ShouldSample shouldSample) >+void NetworkProcessProxy::logDiagnosticMessageWithValue(PageIdentifier pageID, const String& message, const String& description, double value, unsigned significantFigures, WebCore::ShouldSample shouldSample) > { > WebPageProxy* page = WebProcessProxy::webPage(pageID); > // FIXME: We do this null-check because by the time the decision to log is made, the page may be gone. We should refactor to avoid this, >@@ -736,7 +736,7 @@ void NetworkProcessProxy::setGrandfathered(PAL::SessionID sessionID, const Regis > sendWithAsyncReply(Messages::NetworkProcess::SetGrandfathered(sessionID, resourceDomain, isGrandfathered), WTFMove(completionHandler)); > } > >-void NetworkProcessProxy::requestStorageAccessConfirm(uint64_t pageID, uint64_t frameID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, CompletionHandler<void(bool)>&& completionHandler) >+void NetworkProcessProxy::requestStorageAccessConfirm(PageIdentifier pageID, uint64_t frameID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, CompletionHandler<void(bool)>&& completionHandler) > { > WebPageProxy* page = WebProcessProxy::webPage(pageID); > if (!page) { >@@ -908,7 +908,7 @@ void NetworkProcessProxy::notifyResourceLoadStatisticsTelemetryFinished(unsigned > WebProcessProxy::notifyPageStatisticsTelemetryFinished(API::Dictionary::create(messageBody).ptr()); > } > >-void NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID sessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag> navigationDataTransfer, uint64_t pageID) >+void NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID sessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag> navigationDataTransfer, PageIdentifier pageID) > { > if (!canSendMessage()) > return; >@@ -916,7 +916,7 @@ void NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID > send(Messages::NetworkProcess::DidCommitCrossSiteLoadWithDataTransfer(sessionID, fromDomain, toDomain, navigationDataTransfer, pageID), 0); > } > >-void NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource(uint64_t pageID) >+void NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource(PageIdentifier pageID) > { > if (!canSendMessage()) > return; >diff --git a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h >index 35b9e6654f3d642f6f78965adedb22903ca50553..97088e9a4eedc90745987f77c34383485405b990 100644 >--- a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h >+++ b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h >@@ -82,8 +82,6 @@ public: > using NavigatedToDomain = WebCore::RegistrableDomain; > using DomainInNeedOfStorageAccess = WebCore::RegistrableDomain; > using OpenerDomain = WebCore::RegistrableDomain; >- using OpenerPageID = uint64_t; >- using PageID = uint64_t; > using FrameID = uint64_t; > > explicit NetworkProcessProxy(WebProcessPool&); >@@ -132,7 +130,7 @@ public: > void setPrevalentResourceForDebugMode(PAL::SessionID, const RegistrableDomain&, CompletionHandler<void()>&&); > void setVeryPrevalentResource(PAL::SessionID, const RegistrableDomain&, CompletionHandler<void()>&&); > void getAllStorageAccessEntries(PAL::SessionID, CompletionHandler<void(Vector<String> domains)>&&); >- void requestStorageAccessConfirm(PageID, FrameID, const SubFrameDomain&, const TopFrameDomain&, CompletionHandler<void(bool)>&&); >+ void requestStorageAccessConfirm(WebCore::PageIdentifier, FrameID, const SubFrameDomain&, const TopFrameDomain&, CompletionHandler<void(bool)>&&); > void resetParametersToDefaultValues(PAL::SessionID, CompletionHandler<void()>&&); > void scheduleClearInMemoryAndPersistent(PAL::SessionID, ShouldGrandfatherStatistics, CompletionHandler<void()>&&); > void scheduleClearInMemoryAndPersistent(PAL::SessionID, Optional<WallTime> modifiedSince, ShouldGrandfatherStatistics, CompletionHandler<void()>&&); >@@ -146,8 +144,8 @@ public: > void setResourceLoadStatisticsDebugMode(PAL::SessionID, bool debugMode, CompletionHandler<void()>&&); > void setShouldClassifyResourcesBeforeDataRecordsRemoval(PAL::SessionID, bool, CompletionHandler<void()>&&); > void resetCacheMaxAgeCapForPrevalentResources(PAL::SessionID, CompletionHandler<void()>&&); >- void didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID, const NavigatedFromDomain&, const NavigatedToDomain&, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag>, PageID); >- void didCommitCrossSiteLoadWithDataTransferFromPrevalentResource(PageID); >+ void didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID, const NavigatedFromDomain&, const NavigatedToDomain&, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag>, WebCore::PageIdentifier); >+ void didCommitCrossSiteLoadWithDataTransferFromPrevalentResource(WebCore::PageIdentifier); > void setCrossSiteLoadWithLinkDecorationForTesting(PAL::SessionID, const NavigatedFromDomain&, const NavigatedToDomain&, CompletionHandler<void()>&&); > void resetCrossSiteLoadsWithLinkDecorationForTesting(PAL::SessionID, CompletionHandler<void()>&&); > void deleteCookiesForTesting(PAL::SessionID, const RegistrableDomain&, bool includeHttpOnlyCookies, CompletionHandler<void()>&&); >@@ -209,13 +207,13 @@ private: > // Message handlers > void didReceiveNetworkProcessProxyMessage(IPC::Connection&, IPC::Decoder&); > void didCreateNetworkConnectionToWebProcess(const IPC::Attachment&); >- void didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, WebCore::AuthenticationChallenge&&, uint64_t challengeID); >+ void didReceiveAuthenticationChallenge(WebCore::PageIdentifier, uint64_t frameID, WebCore::AuthenticationChallenge&&, uint64_t challengeID); > void didFetchWebsiteData(uint64_t callbackID, const WebsiteData&); > void didDeleteWebsiteData(uint64_t callbackID); > void didDeleteWebsiteDataForOrigins(uint64_t callbackID); >- void logDiagnosticMessage(uint64_t pageID, const String& message, const String& description, WebCore::ShouldSample); >- void logDiagnosticMessageWithResult(uint64_t pageID, const String& message, const String& description, uint32_t result, WebCore::ShouldSample); >- void logDiagnosticMessageWithValue(uint64_t pageID, const String& message, const String& description, double value, unsigned significantFigures, WebCore::ShouldSample); >+ void logDiagnosticMessage(WebCore::PageIdentifier, const String& message, const String& description, WebCore::ShouldSample); >+ void logDiagnosticMessageWithResult(WebCore::PageIdentifier, const String& message, const String& description, uint32_t result, WebCore::ShouldSample); >+ void logDiagnosticMessageWithValue(WebCore::PageIdentifier, const String& message, const String& description, double value, unsigned significantFigures, WebCore::ShouldSample); > void logGlobalDiagnosticMessageWithValue(const String& message, const String& description, double value, unsigned significantFigures, WebCore::ShouldSample); > #if ENABLE(RESOURCE_LOAD_STATISTICS) > void logTestingEvent(PAL::SessionID, const String& event); >diff --git a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in >index 3677b8f65eed937be9ebc724b6f22bda28535a61..047dfe88781bbcb6820165091b866d1336f88cba 100644 >--- a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in >+++ b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in >@@ -23,7 +23,7 @@ > messages -> NetworkProcessProxy LegacyReceiver { > DidCreateNetworkConnectionToWebProcess(IPC::Attachment connectionIdentifier) > >- DidReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, WebCore::AuthenticationChallenge challenge, uint64_t challengeID) >+ DidReceiveAuthenticationChallenge(WebCore::PageIdentifier pageID, uint64_t frameID, WebCore::AuthenticationChallenge challenge, uint64_t challengeID) > > DidFetchWebsiteData(uint64_t callbackID, struct WebKit::WebsiteData websiteData) > DidDeleteWebsiteData(uint64_t callbackID) >@@ -35,9 +35,9 @@ messages -> NetworkProcessProxy LegacyReceiver { > SetIsHoldingLockedFiles(bool isHoldingLockedFiles) > > # Diagnostic messages logging >- LogDiagnosticMessage(uint64_t pageID, String message, String description, enum:bool WebCore::ShouldSample shouldSample) >- LogDiagnosticMessageWithResult(uint64_t pageID, String message, String description, uint32_t result, enum:bool WebCore::ShouldSample shouldSample) >- LogDiagnosticMessageWithValue(uint64_t pageID, String message, String description, double value, unsigned significantFigures, enum:bool WebCore::ShouldSample shouldSample) >+ LogDiagnosticMessage(WebCore::PageIdentifier pageID, String message, String description, enum:bool WebCore::ShouldSample shouldSample) >+ LogDiagnosticMessageWithResult(WebCore::PageIdentifier pageID, String message, String description, uint32_t result, enum:bool WebCore::ShouldSample shouldSample) >+ LogDiagnosticMessageWithValue(WebCore::PageIdentifier pageID, String message, String description, double value, unsigned significantFigures, enum:bool WebCore::ShouldSample shouldSample) > LogGlobalDiagnosticMessageWithValue(String message, String description, double value, unsigned significantFigures, enum:bool WebCore::ShouldSample shouldSample) > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >@@ -46,9 +46,9 @@ messages -> NetworkProcessProxy LegacyReceiver { > NotifyWebsiteDataDeletionForRegistrableDomainsFinished() > NotifyWebsiteDataScanForRegistrableDomainsFinished() > NotifyResourceLoadStatisticsTelemetryFinished(unsigned totalPrevalentResources, unsigned totalPrevalentResourcesWithUserInteraction, unsigned top3SubframeUnderTopFrameOrigins) >- RequestStorageAccessConfirm(uint64_t pageID, uint64_t frameID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain) -> (bool userDidGrantAccess) Async >+ RequestStorageAccessConfirm(WebCore::PageIdentifier pageID, uint64_t frameID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain) -> (bool userDidGrantAccess) Async > DeleteWebsiteDataInUIProcessForRegistrableDomains(PAL::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> dataTypes, OptionSet<WebKit::WebsiteDataFetchOption> fetchOptions, Vector<WebCore::RegistrableDomain> domains) -> (HashSet<WebCore::RegistrableDomain> domainsWithMatchingDataRecords) Async >- DidCommitCrossSiteLoadWithDataTransferFromPrevalentResource(uint64_t pageID) >+ DidCommitCrossSiteLoadWithDataTransferFromPrevalentResource(WebCore::PageIdentifier pageID) > #endif > #if ENABLE(CONTENT_EXTENSIONS) > ContentExtensionRules(WebKit::UserContentControllerIdentifier identifier) >diff --git a/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp b/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp >index fae1f3fca888719be7f6272d205720bb890177fe..2aaff1ec2a65490d88543996bf8102c2d49c5042 100644 >--- a/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp >+++ b/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp >@@ -97,7 +97,7 @@ void WebNotificationManagerProxy::show(WebPageProxy* webPage, const String& titl > { > uint64_t globalNotificationID = generateGlobalNotificationID(); > auto notification = WebNotification::create(title, body, iconURL, tag, lang, dir, originString, globalNotificationID); >- std::pair<uint64_t, uint64_t> notificationIDPair = std::make_pair(webPage->pageID(), pageNotificationID); >+ std::pair<PageIdentifier, uint64_t> notificationIDPair = std::make_pair(webPage->pageID(), pageNotificationID); > m_globalNotificationMap.set(globalNotificationID, notificationIDPair); > m_notifications.set(notificationIDPair, std::make_pair(globalNotificationID, notification.copyRef())); > m_provider->show(*webPage, notification.get()); >@@ -119,12 +119,12 @@ void WebNotificationManagerProxy::didDestroyNotification(WebPageProxy* webPage, > } > } > >-static bool pageIDsMatch(uint64_t pageID, uint64_t, uint64_t desiredPageID, const Vector<uint64_t>&) >+static bool pageIDsMatch(PageIdentifier pageID, uint64_t, PageIdentifier desiredPageID, const Vector<uint64_t>&) > { > return pageID == desiredPageID; > } > >-static bool pageAndNotificationIDsMatch(uint64_t pageID, uint64_t pageNotificationID, uint64_t desiredPageID, const Vector<uint64_t>& desiredPageNotificationIDs) >+static bool pageAndNotificationIDsMatch(PageIdentifier pageID, uint64_t pageNotificationID, PageIdentifier desiredPageID, const Vector<uint64_t>& desiredPageNotificationIDs) > { > return pageID == desiredPageID && desiredPageNotificationIDs.contains(pageNotificationID); > } >@@ -141,13 +141,13 @@ void WebNotificationManagerProxy::clearNotifications(WebPageProxy* webPage, cons > > void WebNotificationManagerProxy::clearNotifications(WebPageProxy* webPage, const Vector<uint64_t>& pageNotificationIDs, NotificationFilterFunction filterFunction) > { >- uint64_t targetPageID = webPage->pageID(); >+ auto targetPageID = webPage->pageID(); > > Vector<uint64_t> globalNotificationIDs; > globalNotificationIDs.reserveCapacity(m_globalNotificationMap.size()); > > for (auto it = m_notifications.begin(), end = m_notifications.end(); it != end; ++it) { >- uint64_t webPageID = it->key.first; >+ auto webPageID = it->key.first; > uint64_t pageNotificationID = it->key.second; > if (!filterFunction(webPageID, pageNotificationID, targetPageID, pageNotificationIDs)) > continue; >@@ -170,7 +170,7 @@ void WebNotificationManagerProxy::providerDidShowNotification(uint64_t globalNot > if (it == m_globalNotificationMap.end()) > return; > >- uint64_t webPageID = it->value.first; >+ auto webPageID = it->value.first; > WebPageProxy* webPage = WebProcessProxy::webPage(webPageID); > if (!webPage) > return; >@@ -185,7 +185,7 @@ void WebNotificationManagerProxy::providerDidClickNotification(uint64_t globalNo > if (it == m_globalNotificationMap.end()) > return; > >- uint64_t webPageID = it->value.first; >+ auto webPageID = it->value.first; > WebPageProxy* webPage = WebProcessProxy::webPage(webPageID); > if (!webPage) > return; >diff --git a/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h b/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h >index f727ed472c5befa5a23f3e044e0fd419070404ef..115781e4333c85684fbca5ca841765644a8c7141 100644 >--- a/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h >+++ b/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h >@@ -29,6 +29,7 @@ > #include "MessageReceiver.h" > #include "WebContextSupplement.h" > #include <WebCore/NotificationClient.h> >+#include <WebCore/PageIdentifier.h> > #include <wtf/HashMap.h> > #include <wtf/text/StringHash.h> > >@@ -78,7 +79,7 @@ public: > private: > explicit WebNotificationManagerProxy(WebProcessPool*); > >- typedef bool (*NotificationFilterFunction)(uint64_t pageID, uint64_t pageNotificationID, uint64_t desiredPageID, const Vector<uint64_t>& desiredPageNotificationIDs); >+ typedef bool (*NotificationFilterFunction)(WebCore::PageIdentifier pageID, uint64_t pageNotificationID, WebCore::PageIdentifier desiredPageID, const Vector<uint64_t>& desiredPageNotificationIDs); > void clearNotifications(WebPageProxy*, const Vector<uint64_t>& pageNotificationIDs, NotificationFilterFunction); > > // WebContextSupplement >@@ -88,9 +89,9 @@ private: > > std::unique_ptr<API::NotificationProvider> m_provider; > // Pair comprised of web page ID and the web process's notification ID >- HashMap<uint64_t, std::pair<uint64_t, uint64_t>> m_globalNotificationMap; >+ HashMap<uint64_t, std::pair<WebCore::PageIdentifier, uint64_t>> m_globalNotificationMap; > // Key pair comprised of web page ID and the web process's notification ID; value pair comprised of global notification ID, and notification object >- HashMap<std::pair<uint64_t, uint64_t>, std::pair<uint64_t, RefPtr<WebNotification>>> m_notifications; >+ HashMap<std::pair<WebCore::PageIdentifier, uint64_t>, std::pair<uint64_t, RefPtr<WebNotification>>> m_notifications; > }; > > } // namespace WebKit >diff --git a/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp b/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp >index 45a1f0f5b5cb80ccc9a0cfba1613e44c874a5607..7d548a5321eecbfc64bc14e916881e990c9690d6 100644 >--- a/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp >+++ b/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp >@@ -47,6 +47,8 @@ > > namespace WebKit { > >+using namespace WebCore; >+ > #define RELEASE_LOG_IF_ALLOWED(channel, fmt, ...) RELEASE_LOG_IF(m_page.isAlwaysOnLoggingAllowed(), channel, "%p - ProvisionalPageProxy::" fmt, this, ##__VA_ARGS__) > #define RELEASE_LOG_ERROR_IF_ALLOWED(channel, fmt, ...) RELEASE_LOG_ERROR_IF(m_page.isAlwaysOnLoggingAllowed(), channel, "%p - ProvisionalPageProxy::" fmt, this, ##__VA_ARGS__) > >@@ -61,7 +63,7 @@ ProvisionalPageProxy::ProvisionalPageProxy(WebPageProxy& page, Ref<WebProcessPro > , m_suspensionToken(m_process->throttler().foregroundActivityToken()) > #endif > { >- RELEASE_LOG_ERROR_IF_ALLOWED(ProcessSwapping, "ProvisionalPageProxy: pageID = %" PRIu64 " navigationID = %" PRIu64 " suspendedPage: %p", m_page.pageID(), navigationID, suspendedPage.get()); >+ RELEASE_LOG_ERROR_IF_ALLOWED(ProcessSwapping, "ProvisionalPageProxy: pageID = %" PRIu64 " navigationID = %" PRIu64 " suspendedPage: %p", m_page.pageID().toUInt64(), navigationID, suspendedPage.get()); > > m_process->addMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_page.pageID(), *this); > m_process->addProvisionalPageProxy(*this); >@@ -117,7 +119,7 @@ void ProvisionalPageProxy::connectionWillOpen(IPC::Connection& connection) > > void ProvisionalPageProxy::processDidTerminate() > { >- RELEASE_LOG_ERROR_IF_ALLOWED(ProcessSwapping, "processDidTerminate: pageID = %" PRIu64, m_page.pageID()); >+ RELEASE_LOG_ERROR_IF_ALLOWED(ProcessSwapping, "processDidTerminate: pageID = %" PRIu64, m_page.pageID().toUInt64()); > m_page.provisionalProcessDidTerminate(); > } > >@@ -132,7 +134,7 @@ void ProvisionalPageProxy::cancel() > if (m_provisionalLoadURL.isEmpty()) > return; > >- RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "cancel: Simulating a didFailProvisionalLoadForFrame for pageID = %" PRIu64, m_page.pageID()); >+ RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "cancel: Simulating a didFailProvisionalLoadForFrame for pageID = %" PRIu64, m_page.pageID().toUInt64()); > ASSERT(m_mainFrame); > auto error = WebKit::cancelledError(m_request); > error.setType(WebCore::ResourceError::Type::Cancellation); >@@ -151,14 +153,14 @@ void ProvisionalPageProxy::initializeWebPage() > > void ProvisionalPageProxy::loadData(API::Navigation& navigation, const IPC::DataReference& data, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, Optional<WebsitePoliciesData>&& websitePolicies) > { >- RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "loadData: pageID = %" PRIu64, m_page.pageID()); >+ RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "loadData: pageID = %" PRIu64, m_page.pageID().toUInt64()); > > m_page.loadDataWithNavigationShared(m_process.copyRef(), navigation, data, MIMEType, encoding, baseURL, userData, WebCore::ShouldTreatAsContinuingLoad::Yes, WTFMove(websitePolicies)); > } > > void ProvisionalPageProxy::loadRequest(API::Navigation& navigation, WebCore::ResourceRequest&& request, WebCore::ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData, Optional<WebsitePoliciesData>&& websitePolicies) > { >- RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "loadRequest: pageID = %" PRIu64, m_page.pageID()); >+ RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "loadRequest: pageID = %" PRIu64, m_page.pageID().toUInt64()); > > // If this is a client-side redirect continuing in a new process, then the new process will overwrite the fromItem's URL. In this case, > // we need to make sure we update fromItem's processIdentifier as we want future navigations to this BackForward item to happen in the >@@ -171,7 +173,7 @@ void ProvisionalPageProxy::loadRequest(API::Navigation& navigation, WebCore::Res > > void ProvisionalPageProxy::goToBackForwardItem(API::Navigation& navigation, WebBackForwardListItem& item, Optional<WebsitePoliciesData>&& websitePolicies) > { >- RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "goToBackForwardItem: pageID = %" PRIu64, m_page.pageID()); >+ RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "goToBackForwardItem: pageID = %" PRIu64, m_page.pageID().toUInt64()); > > auto itemStates = m_page.backForwardList().filteredItemStates([this, targetItem = &item](auto& item) { > if (auto* page = item.suspendedPage()) { >@@ -196,7 +198,7 @@ inline bool ProvisionalPageProxy::validateInput(uint64_t frameID, const Optional > > void ProvisionalPageProxy::didCreateMainFrame(uint64_t frameID) > { >- RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "didCreateMainFrame: pageID = %" PRIu64 ", frameID = %" PRIu64, m_page.pageID(), frameID); >+ RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "didCreateMainFrame: pageID = %" PRIu64 ", frameID = %" PRIu64, m_page.pageID().toUInt64(), frameID); > ASSERT(!m_mainFrame); > > m_mainFrame = WebFrameProxy::create(m_page, frameID); >@@ -234,7 +236,7 @@ void ProvisionalPageProxy::didStartProvisionalLoadForFrame(uint64_t frameID, uin > if (!validateInput(frameID, navigationID)) > return; > >- RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "didStartProvisionalLoadForFrame: pageID = %" PRIu64 ", frameID = %" PRIu64 ", navigationID = %" PRIu64, m_page.pageID(), frameID, navigationID); >+ RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "didStartProvisionalLoadForFrame: pageID = %" PRIu64 ", frameID = %" PRIu64 ", navigationID = %" PRIu64, m_page.pageID().toUInt64(), frameID, navigationID); > ASSERT(m_provisionalLoadURL.isNull()); > m_provisionalLoadURL = url; > >@@ -254,7 +256,7 @@ void ProvisionalPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, cons > if (!validateInput(frameID, navigationID)) > return; > >- RELEASE_LOG_ERROR_IF_ALLOWED(ProcessSwapping, "didFailProvisionalLoadForFrame: pageID = %" PRIu64 ", frameID = %" PRIu64 ", navigationID = %" PRIu64, m_page.pageID(), frameID, navigationID); >+ RELEASE_LOG_ERROR_IF_ALLOWED(ProcessSwapping, "didFailProvisionalLoadForFrame: pageID = %" PRIu64 ", frameID = %" PRIu64 ", navigationID = %" PRIu64, m_page.pageID().toUInt64(), frameID, navigationID); > ASSERT(!m_provisionalLoadURL.isNull()); > m_provisionalLoadURL = { }; > >@@ -270,7 +272,7 @@ void ProvisionalPageProxy::didCommitLoadForFrame(uint64_t frameID, uint64_t navi > if (!validateInput(frameID, navigationID)) > return; > >- RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "didCommitLoadForFrame: pageID = %" PRIu64 ", frameID = %" PRIu64 ", navigationID = %" PRIu64, m_page.pageID(), frameID, navigationID); >+ RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "didCommitLoadForFrame: pageID = %" PRIu64 ", frameID = %" PRIu64 ", navigationID = %" PRIu64, m_page.pageID().toUInt64(), frameID, navigationID); > m_provisionalLoadURL = { }; > m_process->removeMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_page.pageID()); > >@@ -295,7 +297,7 @@ void ProvisionalPageProxy::didChangeProvisionalURLForFrame(uint64_t frameID, uin > } > > void ProvisionalPageProxy::decidePolicyForNavigationActionAsync(uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, WebCore::PolicyCheckIdentifier identifier, >- uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, >+ uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, Optional<PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, > WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, uint64_t listenerID) > { > if (!validateInput(frameID, navigationID)) >@@ -341,7 +343,7 @@ void ProvisionalPageProxy::backForwardGoToItem(const WebCore::BackForwardItemIde > } > > void ProvisionalPageProxy::decidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&& frameSecurityOrigin, WebCore::PolicyCheckIdentifier identifier, >- uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, >+ uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, Optional<PageIdentifier> originatingPageID, > const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, > const UserData& userData, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&& reply) > { >diff --git a/Source/WebKit/UIProcess/ProvisionalPageProxy.h b/Source/WebKit/UIProcess/ProvisionalPageProxy.h >index 6456c1f916d5975506c152794af2e6b668c0bf6c..7d2f390231aeab370c77fc1af02ce4ed525a5dcc 100644 >--- a/Source/WebKit/UIProcess/ProvisionalPageProxy.h >+++ b/Source/WebKit/UIProcess/ProvisionalPageProxy.h >@@ -94,7 +94,7 @@ private: > void didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&) final; > > void decidePolicyForNavigationActionAsync(uint64_t frameID, WebCore::SecurityOriginData&&, WebCore::PolicyCheckIdentifier, uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, >- uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, >+ Optional<WebCore::PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, > WebCore::ResourceResponse&& redirectResponse, const UserData&, uint64_t listenerID); > void decidePolicyForResponse(uint64_t frameID, const WebCore::SecurityOriginData&, WebCore::PolicyCheckIdentifier, uint64_t navigationID, const WebCore::ResourceResponse&, > const WebCore::ResourceRequest&, bool canShowMIMEType, const String& downloadAttribute, uint64_t listenerID, const UserData&); >@@ -110,7 +110,7 @@ private: > void startURLSchemeTask(URLSchemeTaskParameters&&); > void backForwardGoToItem(const WebCore::BackForwardItemIdentifier&, CompletionHandler<void(SandboxExtension::Handle&&)>&&); > void decidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&&, WebCore::PolicyCheckIdentifier, uint64_t navigationID, NavigationActionData&&, >- FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, >+ FrameInfoData&&, Optional<WebCore::PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, > WebCore::ResourceResponse&& redirectResponse, const UserData&, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&&); > #if USE(QUICK_LOOK) > void didRequestPasswordForQuickLookDocumentInMainFrame(const String& fileName); >diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm >index 0559c9874bdc335cea8ad4a877b2ac2970805f26..5b02ddb2489fe3b9731641edb3bfb37034655a24 100644 >--- a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm >+++ b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm >@@ -115,7 +115,7 @@ RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy(WebPageProxy& w > IOSurfacePool::sharedPool().setPoolSize(0); > #endif > >- process.addMessageReceiver(Messages::RemoteLayerTreeDrawingAreaProxy::messageReceiverName(), m_identifier.toUInt64(), *this); >+ process.addMessageReceiver(Messages::RemoteLayerTreeDrawingAreaProxy::messageReceiverName(), m_identifier, *this); > > if (m_webPageProxy.preferences().tiledScrollingIndicatorVisible()) > initializeDebugIndicator(); >@@ -124,7 +124,7 @@ RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy(WebPageProxy& w > RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy() > { > m_callbacks.invalidate(CallbackBase::Error::OwnerWasInvalidated); >- process().removeMessageReceiver(Messages::RemoteLayerTreeDrawingAreaProxy::messageReceiverName(), m_identifier.toUInt64()); >+ process().removeMessageReceiver(Messages::RemoteLayerTreeDrawingAreaProxy::messageReceiverName(), m_identifier); > > #if PLATFORM(IOS_FAMILY) > [m_displayLinkHandler invalidate]; >@@ -463,7 +463,7 @@ void RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState(ActivityStat > }(); > > auto startTime = MonotonicTime::now(); >- while (process().connection()->waitForAndDispatchImmediately<Messages::RemoteLayerTreeDrawingAreaProxy::CommitLayerTree>(m_identifier.toUInt64(), activityStateUpdateTimeout - (MonotonicTime::now() - startTime), IPC::WaitForOption::InterruptWaitingIfSyncMessageArrives)) { >+ while (process().connection()->waitForAndDispatchImmediately<Messages::RemoteLayerTreeDrawingAreaProxy::CommitLayerTree>(m_identifier, activityStateUpdateTimeout - (MonotonicTime::now() - startTime), IPC::WaitForOption::InterruptWaitingIfSyncMessageArrives)) { > if (activityStateChangeID == ActivityStateChangeAsynchronous || activityStateChangeID <= m_activityStateChangeID) > return; > } >diff --git a/Source/WebKit/UIProcess/ServiceWorkerProcessProxy.cpp b/Source/WebKit/UIProcess/ServiceWorkerProcessProxy.cpp >index 5a14fbe4dcd4b38c7a0bfd5c2f70a06c5c575f86..b2f7729fd3935f72e1bc9115a30a18f64e39fd25 100644 >--- a/Source/WebKit/UIProcess/ServiceWorkerProcessProxy.cpp >+++ b/Source/WebKit/UIProcess/ServiceWorkerProcessProxy.cpp >@@ -90,7 +90,7 @@ void ServiceWorkerProcessProxy::updatePreferencesStore(const WebPreferencesStore > send(Messages::WebSWContextManagerConnection::UpdatePreferencesStore { store }, 0); > } > >-void ServiceWorkerProcessProxy::didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, Ref<AuthenticationChallengeProxy>&& challenge) >+void ServiceWorkerProcessProxy::didReceiveAuthenticationChallenge(PageIdentifier pageID, uint64_t frameID, Ref<AuthenticationChallengeProxy>&& challenge) > { > UNUSED_PARAM(pageID); > UNUSED_PARAM(frameID); >diff --git a/Source/WebKit/UIProcess/ServiceWorkerProcessProxy.h b/Source/WebKit/UIProcess/ServiceWorkerProcessProxy.h >index 93245f0dc76f265757ec2bfe7163e9edaae9c0f0..e9365afac4f47d7fd747f98983ad9990e8ab9755 100644 >--- a/Source/WebKit/UIProcess/ServiceWorkerProcessProxy.h >+++ b/Source/WebKit/UIProcess/ServiceWorkerProcessProxy.h >@@ -41,14 +41,14 @@ public: > > static bool hasRegisteredServiceWorkers(const String& serviceWorkerDirectory); > >- void didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, Ref<AuthenticationChallengeProxy>&&); >+ void didReceiveAuthenticationChallenge(WebCore::PageIdentifier, uint64_t frameID, Ref<AuthenticationChallengeProxy>&&); > > void start(const WebPreferencesStore&, Optional<PAL::SessionID> initialSessionID); > void setUserAgent(const String&); > void updatePreferencesStore(const WebPreferencesStore&); > > const WebCore::RegistrableDomain& registrableDomain() { return m_registrableDomain; } >- uint64_t pageID() const { return m_serviceWorkerPageID; } >+ WebCore::PageIdentifier pageID() const { return m_serviceWorkerPageID; } > > private: > // AuxiliaryProcessProxy >@@ -59,7 +59,7 @@ private: > ServiceWorkerProcessProxy(WebProcessPool&, const WebCore::RegistrableDomain&, WebsiteDataStore&); > > WebCore::RegistrableDomain m_registrableDomain; >- uint64_t m_serviceWorkerPageID { 0 }; >+ WebCore::PageIdentifier m_serviceWorkerPageID; > }; > > } // namespace WebKit >diff --git a/Source/WebKit/UIProcess/SuspendedPageProxy.cpp b/Source/WebKit/UIProcess/SuspendedPageProxy.cpp >index 1346fcc05c5a29cdb086f72ef496782cb2b005ae..f6d3b536df8aab197d911ed14d2ea40feff2e1dd 100644 >--- a/Source/WebKit/UIProcess/SuspendedPageProxy.cpp >+++ b/Source/WebKit/UIProcess/SuspendedPageProxy.cpp >@@ -246,7 +246,7 @@ void SuspendedPageProxy::didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, > > const char* SuspendedPageProxy::loggingString() const > { >- return debugString("(0x", hex(reinterpret_cast<uintptr_t>(this)), " page ID ", m_page.pageID(), ", m_suspensionState ", static_cast<unsigned>(m_suspensionState), ')'); >+ return debugString("(0x", hex(reinterpret_cast<uintptr_t>(this)), " page ID ", m_page.pageID().toUInt64(), ", m_suspensionState ", static_cast<unsigned>(m_suspensionState), ')'); > } > > #endif >diff --git a/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp b/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp >index 9711b2337215879116c3dd8b466ef5585ae98582..834db7ae0792acb54593800806c92b2ffa5cc311 100644 >--- a/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp >+++ b/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp >@@ -49,6 +49,8 @@ > > namespace WebKit { > >+using namespace WebCore; >+ > static HashMap<UserContentControllerIdentifier, WebUserContentControllerProxy*>& webUserContentControllerProxies() > { > static NeverDestroyed<HashMap<UserContentControllerIdentifier, WebUserContentControllerProxy*>> proxies; >@@ -73,7 +75,7 @@ WebUserContentControllerProxy::~WebUserContentControllerProxy() > { > webUserContentControllerProxies().remove(m_identifier); > for (auto* process : m_processes) { >- process->removeMessageReceiver(Messages::WebUserContentControllerProxy::messageReceiverName(), identifier().toUInt64()); >+ process->removeMessageReceiver(Messages::WebUserContentControllerProxy::messageReceiverName(), identifier()); > process->didDestroyWebUserContentControllerProxy(*this); > } > #if ENABLE(CONTENT_EXTENSIONS) >@@ -85,7 +87,7 @@ WebUserContentControllerProxy::~WebUserContentControllerProxy() > void WebUserContentControllerProxy::addProcess(WebProcessProxy& webProcessProxy, WebPageCreationParameters& parameters) > { > if (m_processes.add(&webProcessProxy).isNewEntry) >- webProcessProxy.addMessageReceiver(Messages::WebUserContentControllerProxy::messageReceiverName(), identifier().toUInt64(), *this); >+ webProcessProxy.addMessageReceiver(Messages::WebUserContentControllerProxy::messageReceiverName(), identifier(), *this); > > ASSERT(parameters.userContentWorlds.isEmpty()); > for (const auto& world : m_userContentWorlds) >@@ -115,7 +117,7 @@ void WebUserContentControllerProxy::removeProcess(WebProcessProxy& webProcessPro > ASSERT(m_processes.contains(&webProcessProxy)); > > m_processes.remove(&webProcessProxy); >- webProcessProxy.removeMessageReceiver(Messages::WebUserContentControllerProxy::messageReceiverName(), identifier().toUInt64()); >+ webProcessProxy.removeMessageReceiver(Messages::WebUserContentControllerProxy::messageReceiverName(), identifier()); > } > > void WebUserContentControllerProxy::addUserContentWorldUse(API::UserContentWorld& world) >@@ -126,7 +128,7 @@ void WebUserContentControllerProxy::addUserContentWorldUse(API::UserContentWorld > auto addResult = m_userContentWorlds.add(&world); > if (addResult.isNewEntry) { > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::AddUserContentWorlds({ std::make_pair(world.identifier(), world.name()) }), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::AddUserContentWorlds({ std::make_pair(world.identifier(), world.name()) }), identifier()); > } > } > >@@ -150,7 +152,7 @@ void WebUserContentControllerProxy::removeUserContentWorldUses(API::UserContentW > { > if (shouldSendRemoveUserContentWorldsMessage(world, numberOfUsesToRemove)) { > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveUserContentWorlds({ world.identifier() }), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveUserContentWorlds({ world.identifier() }), identifier()); > } > } > >@@ -163,7 +165,7 @@ void WebUserContentControllerProxy::removeUserContentWorldUses(HashCountedSet<Re > } > > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveUserContentWorlds(worldsToRemove), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveUserContentWorlds(worldsToRemove), identifier()); > } > > void WebUserContentControllerProxy::addUserScript(API::UserScript& userScript, InjectUserScriptImmediately immediately) >@@ -175,7 +177,7 @@ void WebUserContentControllerProxy::addUserScript(API::UserScript& userScript, I > m_userScripts->elements().append(&userScript); > > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::AddUserScripts({ { userScript.identifier(), world->identifier(), userScript.userScript() } }, immediately), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::AddUserScripts({ { userScript.identifier(), world->identifier(), userScript.userScript() } }, immediately), identifier()); > } > > void WebUserContentControllerProxy::removeUserScript(API::UserScript& userScript) >@@ -183,7 +185,7 @@ void WebUserContentControllerProxy::removeUserScript(API::UserScript& userScript > Ref<API::UserContentWorld> world = userScript.userContentWorld(); > > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveUserScript(world->identifier(), userScript.identifier()), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveUserScript(world->identifier(), userScript.identifier()), identifier()); > > m_userScripts->elements().removeAll(&userScript); > >@@ -193,7 +195,7 @@ void WebUserContentControllerProxy::removeUserScript(API::UserScript& userScript > void WebUserContentControllerProxy::removeAllUserScripts(API::UserContentWorld& world) > { > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveAllUserScripts({ world.identifier() }), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveAllUserScripts({ world.identifier() }), identifier()); > > unsigned userScriptsRemoved = m_userScripts->removeAllOfTypeMatching<API::UserScript>([&](const auto& userScript) { > return &userScript->userContentWorld() == &world; >@@ -214,7 +216,7 @@ void WebUserContentControllerProxy::removeAllUserScripts() > worldIdentifiers.uncheckedAppend(worldCountPair.key->identifier()); > > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveAllUserScripts(worldIdentifiers), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveAllUserScripts(worldIdentifiers), identifier()); > > m_userScripts->elements().clear(); > >@@ -230,7 +232,7 @@ void WebUserContentControllerProxy::addUserStyleSheet(API::UserStyleSheet& userS > m_userStyleSheets->elements().append(&userStyleSheet); > > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::AddUserStyleSheets({ { userStyleSheet.identifier(), world->identifier(), userStyleSheet.userStyleSheet() } }), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::AddUserStyleSheets({ { userStyleSheet.identifier(), world->identifier(), userStyleSheet.userStyleSheet() } }), identifier()); > } > > void WebUserContentControllerProxy::removeUserStyleSheet(API::UserStyleSheet& userStyleSheet) >@@ -238,7 +240,7 @@ void WebUserContentControllerProxy::removeUserStyleSheet(API::UserStyleSheet& us > Ref<API::UserContentWorld> world = userStyleSheet.userContentWorld(); > > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveUserStyleSheet(world->identifier(), userStyleSheet.identifier()), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveUserStyleSheet(world->identifier(), userStyleSheet.identifier()), identifier()); > > m_userStyleSheets->elements().removeAll(&userStyleSheet); > >@@ -248,7 +250,7 @@ void WebUserContentControllerProxy::removeUserStyleSheet(API::UserStyleSheet& us > void WebUserContentControllerProxy::removeAllUserStyleSheets(API::UserContentWorld& world) > { > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveAllUserStyleSheets({ world.identifier() }), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveAllUserStyleSheets({ world.identifier() }), identifier()); > > unsigned userStyleSheetsRemoved = m_userStyleSheets->removeAllOfTypeMatching<API::UserStyleSheet>([&](const auto& userStyleSheet) { > return &userStyleSheet->userContentWorld() == &world; >@@ -269,7 +271,7 @@ void WebUserContentControllerProxy::removeAllUserStyleSheets() > worldIdentifiers.uncheckedAppend(worldCountPair.key->identifier()); > > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveAllUserStyleSheets(worldIdentifiers), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveAllUserStyleSheets(worldIdentifiers), identifier()); > > m_userStyleSheets->elements().clear(); > >@@ -290,7 +292,7 @@ bool WebUserContentControllerProxy::addUserScriptMessageHandler(WebScriptMessage > m_scriptMessageHandlers.add(handler.identifier(), &handler); > > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::AddUserScriptMessageHandlers({ { handler.identifier(), world->identifier(), handler.name() } }), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::AddUserScriptMessageHandlers({ { handler.identifier(), world->identifier(), handler.name() } }), identifier()); > > return true; > } >@@ -300,7 +302,7 @@ void WebUserContentControllerProxy::removeUserMessageHandlerForName(const String > for (auto it = m_scriptMessageHandlers.begin(), end = m_scriptMessageHandlers.end(); it != end; ++it) { > if (it->value->name() == name && &it->value->userContentWorld() == &world) { > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveUserScriptMessageHandler(world.identifier(), it->value->identifier()), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveUserScriptMessageHandler(world.identifier(), it->value->identifier()), identifier()); > > m_scriptMessageHandlers.remove(it); > >@@ -313,7 +315,7 @@ void WebUserContentControllerProxy::removeUserMessageHandlerForName(const String > void WebUserContentControllerProxy::removeAllUserMessageHandlers(API::UserContentWorld& world) > { > for (WebProcessProxy* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveAllUserScriptMessageHandlers({ world.identifier() }), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveAllUserScriptMessageHandlers({ world.identifier() }), identifier()); > > unsigned numberRemoved = 0; > m_scriptMessageHandlers.removeIf([&](auto& entry) { >@@ -327,7 +329,7 @@ void WebUserContentControllerProxy::removeAllUserMessageHandlers(API::UserConten > removeUserContentWorldUses(world, numberRemoved); > } > >-void WebUserContentControllerProxy::didPostMessage(IPC::Connection& connection, uint64_t pageID, const FrameInfoData& frameInfoData, uint64_t messageHandlerID, const IPC::DataReference& dataReference) >+void WebUserContentControllerProxy::didPostMessage(IPC::Connection& connection, PageIdentifier pageID, const FrameInfoData& frameInfoData, uint64_t messageHandlerID, const IPC::DataReference& dataReference) > { > WebPageProxy* page = WebProcessProxy::webPage(pageID); > if (!page) >@@ -351,7 +353,7 @@ void WebUserContentControllerProxy::addContentRuleList(API::ContentRuleList& con > auto pair = std::make_pair(contentRuleList.name(), contentRuleList.compiledRuleList().data()); > > for (auto* process : m_processes) >- process->send(Messages::WebUserContentController::AddContentRuleLists({ pair }), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::AddContentRuleLists({ pair }), identifier()); > > for (auto* process : m_networkProcesses) > process->send(Messages::NetworkContentRuleListManager::AddContentRuleLists { identifier(), { pair } }, 0); >@@ -362,7 +364,7 @@ void WebUserContentControllerProxy::removeContentRuleList(const String& name) > m_contentRuleLists.remove(name); > > for (auto* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveContentRuleList(name), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveContentRuleList(name), identifier()); > > for (auto* process : m_networkProcesses) > process->send(Messages::NetworkContentRuleListManager::RemoveContentRuleList { identifier(), name }, 0); >@@ -373,7 +375,7 @@ void WebUserContentControllerProxy::removeAllContentRuleLists() > m_contentRuleLists.clear(); > > for (auto* process : m_processes) >- process->send(Messages::WebUserContentController::RemoveAllContentRuleLists(), identifier().toUInt64()); >+ process->send(Messages::WebUserContentController::RemoveAllContentRuleLists(), identifier()); > > for (auto* process : m_networkProcesses) > process->send(Messages::NetworkContentRuleListManager::RemoveAllContentRuleLists { identifier() }, 0); >diff --git a/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h b/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h >index 623301116ed1d654f2a3489a7f0f6247766124ae..0ed36a59cc3a71d9f219e1948429c8a791d0c628 100644 >--- a/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h >+++ b/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h >@@ -28,6 +28,7 @@ > #include "APIObject.h" > #include "MessageReceiver.h" > #include "UserContentControllerIdentifier.h" >+#include <WebCore/PageIdentifier.h> > #include <wtf/Forward.h> > #include <wtf/HashCountedSet.h> > #include <wtf/HashMap.h> >@@ -110,7 +111,7 @@ private: > // IPC::MessageReceiver. > void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override; > >- void didPostMessage(IPC::Connection&, uint64_t pageID, const FrameInfoData&, uint64_t messageHandlerID, const IPC::DataReference&); >+ void didPostMessage(IPC::Connection&, WebCore::PageIdentifier, const FrameInfoData&, uint64_t messageHandlerID, const IPC::DataReference&); > > void addUserContentWorldUse(API::UserContentWorld&); > void removeUserContentWorldUses(API::UserContentWorld&, unsigned numberOfUsesToRemove); >diff --git a/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.messages.in b/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.messages.in >index 81714351fce775dabc4718d43f88e36f5f50fee4..25a4e291274ee0369fdd16ee005c2c95f9faf275 100644 >--- a/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.messages.in >+++ b/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.messages.in >@@ -24,5 +24,5 @@ > */ > > messages -> WebUserContentControllerProxy { >-DidPostMessage(uint64_t pageID, struct WebKit::FrameInfoData frameInfoData, uint64_t messageHandlerID, IPC::DataReference message) WantsConnection >+DidPostMessage(WebCore::PageIdentifier pageID, struct WebKit::FrameInfoData frameInfoData, uint64_t messageHandlerID, IPC::DataReference message) WantsConnection > } >diff --git a/Source/WebKit/UIProcess/ViewGestureController.cpp b/Source/WebKit/UIProcess/ViewGestureController.cpp >index 248182d80921fe1a19e5c634b16a24c7c7d176ef..1e91abb6efdd0cd596f94dace8f7268e3184a5cf 100644 >--- a/Source/WebKit/UIProcess/ViewGestureController.cpp >+++ b/Source/WebKit/UIProcess/ViewGestureController.cpp >@@ -66,10 +66,10 @@ static const float minimumScrollEventRatioForSwipe = 0.5; > static const float swipeSnapshotRemovalRenderTreeSizeTargetFraction = 0.5; > #endif > >-static HashMap<uint64_t, ViewGestureController*>& viewGestureControllersForAllPages() >+static HashMap<PageIdentifier, ViewGestureController*>& viewGestureControllersForAllPages() > { > // The key in this map is the associated page ID. >- static NeverDestroyed<HashMap<uint64_t, ViewGestureController*>> viewGestureControllers; >+ static NeverDestroyed<HashMap<PageIdentifier, ViewGestureController*>> viewGestureControllers; > return viewGestureControllers.get(); > } > >@@ -116,7 +116,7 @@ void ViewGestureController::connectToProcess() > m_isConnectedToProcess = true; > } > >-ViewGestureController* ViewGestureController::controllerForGesture(uint64_t pageID, ViewGestureController::GestureID gestureID) >+ViewGestureController* ViewGestureController::controllerForGesture(PageIdentifier pageID, ViewGestureController::GestureID gestureID) > { > auto gestureControllerIter = viewGestureControllersForAllPages().find(pageID); > if (gestureControllerIter == viewGestureControllersForAllPages().end()) >@@ -547,7 +547,7 @@ void ViewGestureController::forceRepaintIfNeeded() > > m_hasOutstandingRepaintRequest = true; > >- uint64_t pageID = m_webPageProxy.pageID(); >+ auto pageID = m_webPageProxy.pageID(); > GestureID gestureID = m_currentGestureID; > m_webPageProxy.forceRepaint(VoidCallback::create([pageID, gestureID] (CallbackBase::Error error) { > if (auto gestureController = controllerForGesture(pageID, gestureID)) >diff --git a/Source/WebKit/UIProcess/ViewGestureController.h b/Source/WebKit/UIProcess/ViewGestureController.h >index 431c2766d08261e52cefb206d6cd299b12cf1394..c1670d3a94cef3d906af4949cd5413604947630b 100644 >--- a/Source/WebKit/UIProcess/ViewGestureController.h >+++ b/Source/WebKit/UIProcess/ViewGestureController.h >@@ -29,6 +29,7 @@ > #include "SameDocumentNavigationType.h" > #include <WebCore/Color.h> > #include <WebCore/FloatRect.h> >+#include <WebCore/PageIdentifier.h> > #include <wtf/MonotonicTime.h> > #include <wtf/RetainPtr.h> > #include <wtf/RunLoop.h> >@@ -175,7 +176,7 @@ private: > // IPC::MessageReceiver. > void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override; > >- static ViewGestureController* controllerForGesture(uint64_t pageID, GestureID); >+ static ViewGestureController* controllerForGesture(WebCore::PageIdentifier, GestureID); > > static GestureID takeNextGestureID(); > void willBeginGesture(ViewGestureType); >diff --git a/Source/WebKit/UIProcess/VisitedLinkStore.cpp b/Source/WebKit/UIProcess/VisitedLinkStore.cpp >index f2e7b93405766ea5e8c75eabf5ac6a4fd4c04dee..991dc2fcff9d43c5e0876864cc280438d9e34a12 100644 >--- a/Source/WebKit/UIProcess/VisitedLinkStore.cpp >+++ b/Source/WebKit/UIProcess/VisitedLinkStore.cpp >@@ -109,7 +109,7 @@ void VisitedLinkStore::webProcessDidCloseConnection(WebProcessProxy&, IPC::Conne > // FIXME: Implement. > } > >-void VisitedLinkStore::addVisitedLinkHashFromPage(uint64_t pageID, SharedStringHash linkHash) >+void VisitedLinkStore::addVisitedLinkHashFromPage(PageIdentifier pageID, SharedStringHash linkHash) > { > if (auto* webPageProxy = WebProcessProxy::webPage(pageID)) { > if (!webPageProxy->addsVisitedLinks()) >diff --git a/Source/WebKit/UIProcess/VisitedLinkStore.h b/Source/WebKit/UIProcess/VisitedLinkStore.h >index 06f20ba91cbdbba26795f38c60c81b68d81759a5..02b49bac55e2486bd3e89a9ee88ea88336f1efc5 100644 >--- a/Source/WebKit/UIProcess/VisitedLinkStore.h >+++ b/Source/WebKit/UIProcess/VisitedLinkStore.h >@@ -67,7 +67,7 @@ private: > void didInvalidateSharedMemory() final; > void didUpdateSharedStringHashes(const Vector<WebCore::SharedStringHash>& addedHashes, const Vector<WebCore::SharedStringHash>& removedHashes) final; > >- void addVisitedLinkHashFromPage(uint64_t pageID, WebCore::SharedStringHash); >+ void addVisitedLinkHashFromPage(WebCore::PageIdentifier, WebCore::SharedStringHash); > > void sendStoreHandleToProcess(WebProcessProxy&); > >diff --git a/Source/WebKit/UIProcess/VisitedLinkStore.messages.in b/Source/WebKit/UIProcess/VisitedLinkStore.messages.in >index e7862e365b0ffe1391463c007061d7e7f8f8d54b..2e66c42808ebb7ebcf39319b1086a927f331361e 100644 >--- a/Source/WebKit/UIProcess/VisitedLinkStore.messages.in >+++ b/Source/WebKit/UIProcess/VisitedLinkStore.messages.in >@@ -21,5 +21,5 @@ > # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > messages -> VisitedLinkStore { >- AddVisitedLinkHashFromPage(uint64_t pageID, uint64_t linkHash) >+ AddVisitedLinkHashFromPage(WebCore::PageIdentifier pageID, uint64_t linkHash) > } >diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp >index e0d35641b99d7e5eca61b8319589ec615239a5c8..992d765e7f319cec0acc1edc00c141a5affd7246 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.cpp >+++ b/Source/WebKit/UIProcess/WebPageProxy.cpp >@@ -382,12 +382,12 @@ void WebPageProxy::forMostVisibleWebPageIfAny(PAL::SessionID sessionID, const Se > completionHandler(selectedPage); > } > >-Ref<WebPageProxy> WebPageProxy::create(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, Ref<API::PageConfiguration>&& configuration) >+Ref<WebPageProxy> WebPageProxy::create(PageClient& pageClient, WebProcessProxy& process, PageIdentifier pageID, Ref<API::PageConfiguration>&& configuration) > { > return adoptRef(*new WebPageProxy(pageClient, process, pageID, WTFMove(configuration))); > } > >-WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, Ref<API::PageConfiguration>&& configuration) >+WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, PageIdentifier pageID, Ref<API::PageConfiguration>&& configuration) > : m_pageClient(makeWeakPtr(pageClient)) > , m_configuration(WTFMove(configuration)) > , m_navigationClient(makeUniqueRef<API::NavigationClient>()) >@@ -436,7 +436,7 @@ WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uin > #endif > , m_resetRecentCrashCountTimer(RunLoop::main(), this, &WebPageProxy::resetRecentCrashCount) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "constructor: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "constructor: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (!m_configuration->drawsBackground()) > m_backgroundColor = Color(Color::transparent); >@@ -490,7 +490,7 @@ WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uin > > WebPageProxy::~WebPageProxy() > { >- RELEASE_LOG_IF_ALLOWED(Loading, "destructor: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "destructor: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > ASSERT(m_process->webPage(m_pageID) != this); > #if !ASSERT_DISABLED >@@ -709,7 +709,7 @@ void WebPageProxy::launchProcess(const RegistrableDomain& registrableDomain) > ASSERT(!m_isClosed); > ASSERT(!hasRunningProcess()); > >- RELEASE_LOG_IF_ALLOWED(Loading, "launchProcess: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "launchProcess: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > m_process->removeWebPage(*this, WebProcessProxy::EndsUsingDataStore::Yes); > m_process->removeMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_pageID); >@@ -764,7 +764,7 @@ bool WebPageProxy::suspendCurrentPageIfPossible(API::Navigation& navigation, Opt > RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "suspendCurrentPageIfPossible: Suspending current page for process pid %i", m_process->processIdentifier()); > auto suspendedPage = std::make_unique<SuspendedPageProxy>(*this, m_process.copyRef(), *mainFrameID, shouldDelayClosingUntilEnteringAcceleratedCompositingMode); > >- LOG(ProcessSwapping, "WebPageProxy %" PRIu64 " created suspended page %s for process pid %i, back/forward item %s" PRIu64, pageID(), suspendedPage->loggingString(), m_process->processIdentifier(), fromItem ? fromItem->itemID().logString() : 0); >+ LOG(ProcessSwapping, "WebPageProxy %" PRIu64 " created suspended page %s for process pid %i, back/forward item %s" PRIu64, pageID().toUInt64(), suspendedPage->loggingString(), m_process->processIdentifier(), fromItem ? fromItem->itemID().logString() : 0); > > // If the client forced a swap then it may not be web-compatible to keep the previous page because other windows may have an opener link to it. We thus close it as soon as we > // can do so without flashing. >@@ -782,7 +782,7 @@ bool WebPageProxy::suspendCurrentPageIfPossible(API::Navigation& navigation, Opt > void WebPageProxy::swapToWebProcess(Ref<WebProcessProxy>&& process, std::unique_ptr<DrawingAreaProxy>&& drawingArea, RefPtr<WebFrameProxy>&& mainFrame) > { > ASSERT(!m_isClosed); >- RELEASE_LOG_IF_ALLOWED(Loading, "swapToWebProcess: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "swapToWebProcess: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > m_process = WTFMove(process); > m_websiteDataStore = m_process->websiteDataStore(); >@@ -874,10 +874,10 @@ void WebPageProxy::didAttachToRunningProcess() > > RefPtr<API::Navigation> WebPageProxy::launchProcessForReload() > { >- RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessForReload: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessForReload: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (m_isClosed) { >- RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessForReload: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessForReload: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return nullptr; > } > >@@ -886,7 +886,7 @@ RefPtr<API::Navigation> WebPageProxy::launchProcessForReload() > launchProcess(registrableDomain); > > if (!m_backForwardList->currentItem()) { >- RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessForReload: no current item to reload: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessForReload: no current item to reload: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return nullptr; > } > >@@ -901,10 +901,10 @@ RefPtr<API::Navigation> WebPageProxy::launchProcessForReload() > > RefPtr<API::Navigation> WebPageProxy::launchProcessWithItem(WebBackForwardListItem& item) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessWithItem: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessWithItem: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (m_isClosed) { >- RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessWithItem: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "launchProcessWithItem: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return nullptr; > } > >@@ -957,7 +957,7 @@ void WebPageProxy::close() > if (m_isClosed) > return; > >- RELEASE_LOG_IF_ALLOWED(Loading, "close: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "close: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > m_isClosed = true; > >@@ -1032,7 +1032,7 @@ bool WebPageProxy::tryClose() > if (!hasRunningProcess()) > return true; > >- RELEASE_LOG_IF_ALLOWED(Loading, "tryClose: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "tryClose: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > // Close without delay if the process allows it. Our goal is to terminate > // the process, so we check a per-process status bit. >@@ -1078,7 +1078,7 @@ RefPtr<API::Navigation> WebPageProxy::loadRequest(ResourceRequest&& request, Sho > if (m_isClosed) > return nullptr; > >- RELEASE_LOG_IF_ALLOWED(Loading, "loadRequest: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadRequest: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (!hasRunningProcess()) > launchProcess(RegistrableDomain { request.url() }); >@@ -1092,7 +1092,7 @@ void WebPageProxy::loadRequestWithNavigationShared(Ref<WebProcessProxy>&& proces > { > ASSERT(!m_isClosed); > >- RELEASE_LOG_IF_ALLOWED(Loading, "loadRequestWithNavigation: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadRequestWithNavigation: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID.toUInt64()); > > auto transaction = m_pageLoadState.transaction(); > >@@ -1121,10 +1121,10 @@ void WebPageProxy::loadRequestWithNavigationShared(Ref<WebProcessProxy>&& proces > > RefPtr<API::Navigation> WebPageProxy::loadFile(const String& fileURLString, const String& resourceDirectoryURLString, API::Object* userData) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadFile: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadFile: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (m_isClosed) { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadFile: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadFile: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return nullptr; > } > >@@ -1133,7 +1133,7 @@ RefPtr<API::Navigation> WebPageProxy::loadFile(const String& fileURLString, cons > > URL fileURL = URL(URL(), fileURLString); > if (!fileURL.isLocalFile()) { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadFile: file is not local: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadFile: file is not local: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return nullptr; > } > >@@ -1143,7 +1143,7 @@ RefPtr<API::Navigation> WebPageProxy::loadFile(const String& fileURLString, cons > else { > resourceDirectoryURL = URL(URL(), resourceDirectoryURLString); > if (!resourceDirectoryURL.isLocalFile()) { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadFile: resource URL is not local: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadFile: resource URL is not local: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return nullptr; > } > } >@@ -1173,10 +1173,10 @@ RefPtr<API::Navigation> WebPageProxy::loadFile(const String& fileURLString, cons > > RefPtr<API::Navigation> WebPageProxy::loadData(const IPC::DataReference& data, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadData: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadData: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (m_isClosed) { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadData: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadData: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return nullptr; > } > >@@ -1190,7 +1190,7 @@ RefPtr<API::Navigation> WebPageProxy::loadData(const IPC::DataReference& data, c > > void WebPageProxy::loadDataWithNavigationShared(Ref<WebProcessProxy>&& process, API::Navigation& navigation, const IPC::DataReference& data, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& websitePolicies) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadDataWithNavigation: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadDataWithNavigation: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID.toUInt64()); > > ASSERT(!m_isClosed); > >@@ -1216,13 +1216,13 @@ void WebPageProxy::loadDataWithNavigationShared(Ref<WebProcessProxy>&& process, > > void WebPageProxy::loadAlternateHTML(const IPC::DataReference& htmlData, const String& encoding, const URL& baseURL, const URL& unreachableURL, API::Object* userData) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadAlternateHTML: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadAlternateHTML: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > // When the UIProcess is in the process of handling a failing provisional load, do not attempt to > // start a second alternative HTML load as this will prevent the page load state from being > // handled properly. > if (m_isClosed || m_isLoadingAlternateHTMLStringForFailingProvisionalLoad) { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadAlternateHTML: page is closed (or other): webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadAlternateHTML: page is closed (or other): webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return; > } > >@@ -1259,10 +1259,10 @@ void WebPageProxy::loadAlternateHTML(const IPC::DataReference& htmlData, const S > > void WebPageProxy::loadWebArchiveData(API::Data* webArchiveData, API::Object* userData) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadWebArchiveData: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadWebArchiveData: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (m_isClosed) { >- RELEASE_LOG_IF_ALLOWED(Loading, "loadWebArchiveData: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "loadWebArchiveData: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return; > } > >@@ -1286,10 +1286,10 @@ void WebPageProxy::loadWebArchiveData(API::Data* webArchiveData, API::Object* us > > void WebPageProxy::navigateToPDFLinkWithSimulatedClick(const String& urlString, IntPoint documentPoint, IntPoint screenPoint) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "navigateToPDFLinkWithSimulatedClick: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "navigateToPDFLinkWithSimulatedClick: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (m_isClosed) { >- RELEASE_LOG_IF_ALLOWED(Loading, "navigateToPDFLinkWithSimulatedClick: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "navigateToPDFLinkWithSimulatedClick: page is closed: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return; > } > >@@ -1305,10 +1305,10 @@ void WebPageProxy::navigateToPDFLinkWithSimulatedClick(const String& urlString, > > void WebPageProxy::stopLoading() > { >- RELEASE_LOG_IF_ALLOWED(Loading, "stopLoading: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "stopLoading: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (!hasRunningProcess()) { >- RELEASE_LOG_IF_ALLOWED(Loading, "navigateToPDFLinkWithSimulatedClick: page is not valid: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "navigateToPDFLinkWithSimulatedClick: page is not valid: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return; > } > >@@ -1322,7 +1322,7 @@ void WebPageProxy::stopLoading() > > RefPtr<API::Navigation> WebPageProxy::reload(OptionSet<WebCore::ReloadOption> options) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "reload: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "reload: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > SandboxExtension::Handle sandboxExtensionHandle; > >@@ -1399,7 +1399,7 @@ RefPtr<API::Navigation> WebPageProxy::goToBackForwardItem(WebBackForwardListItem > > RefPtr<API::Navigation> WebPageProxy::goToBackForwardItem(WebBackForwardListItem& item, FrameLoadType frameLoadType) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "goToBackForwardItem: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "goToBackForwardItem: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > LOG(Loading, "WebPageProxy %p goToBackForwardItem to item URL %s", this, item.url().utf8().data()); > > if (!hasRunningProcess()) >@@ -1421,10 +1421,10 @@ RefPtr<API::Navigation> WebPageProxy::goToBackForwardItem(WebBackForwardListItem > > void WebPageProxy::tryRestoreScrollPosition() > { >- RELEASE_LOG_IF_ALLOWED(Loading, "tryRestoreScrollPosition: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "tryRestoreScrollPosition: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (!hasRunningProcess()) { >- RELEASE_LOG_IF_ALLOWED(Loading, "tryRestoreScrollPosition: page is not valid: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "tryRestoreScrollPosition: page is not valid: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > return; > } > >@@ -1551,7 +1551,7 @@ void WebPageProxy::clearInspectorTargets() > > void WebPageProxy::createInspectorTargets() > { >- String pageTargetId = makeString("page-", m_pageID); >+ String pageTargetId = makeString("page-", m_pageID.toUInt64()); > m_inspectorController->createInspectorTarget(pageTargetId, Inspector::InspectorTargetType::Page); > } > >@@ -2874,7 +2874,7 @@ void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* > void WebPageProxy::commitProvisionalPage(uint64_t frameID, uint64_t navigationID, const String& mimeType, bool frameHasCustomContentProvider, uint32_t frameLoadType, const WebCore::CertificateInfo& certificateInfo, bool containsPluginDocument, Optional<WebCore::HasInsecureContent> forcedHasInsecureContent, const UserData& userData) > { > ASSERT(m_provisionalPage); >- RELEASE_LOG_IF_ALLOWED(Loading, "commitProvisionalPage: previousPID = %i, newPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_provisionalPage->process().processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "commitProvisionalPage: previousPID = %i, newPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_provisionalPage->process().processIdentifier(), m_pageID.toUInt64()); > > Optional<uint64_t> mainFrameIDInPreviousProcess = m_mainFrame ? makeOptional(m_mainFrame->frameID()) : WTF::nullopt; > >@@ -2914,7 +2914,7 @@ void WebPageProxy::commitProvisionalPage(uint64_t frameID, uint64_t navigationID > > void WebPageProxy::continueNavigationInNewProcess(API::Navigation& navigation, std::unique_ptr<SuspendedPageProxy>&& suspendedPageProxy, Ref<WebProcessProxy>&& newProcess, ProcessSwapRequestedByClient processSwapRequestedByClient, Optional<WebsitePoliciesData>&& websitePolicies) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "continueNavigationInNewProcess: webPID = %i, pageID = %" PRIu64 ", newProcessPID = %i, hasSuspendedPage = %i", m_process->processIdentifier(), m_pageID, newProcess->processIdentifier(), !!suspendedPageProxy); >+ RELEASE_LOG_IF_ALLOWED(Loading, "continueNavigationInNewProcess: webPID = %i, pageID = %" PRIu64 ", newProcessPID = %i, hasSuspendedPage = %i", m_process->processIdentifier(), m_pageID.toUInt64(), newProcess->processIdentifier(), !!suspendedPageProxy); > LOG(Loading, "Continuing navigation %" PRIu64 " '%s' in a new web process", navigation.navigationID(), navigation.loggingString()); > > if (m_provisionalPage) { >@@ -3075,7 +3075,7 @@ SessionState WebPageProxy::sessionState(WTF::Function<bool (WebBackForwardListIt > > RefPtr<API::Navigation> WebPageProxy::restoreFromSessionState(SessionState sessionState, bool navigate) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "restoreFromSessionState: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "restoreFromSessionState: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > m_sessionRestorationRenderTreeSize = 0; > m_hitRenderTreeSizeThreshold = false; >@@ -3933,8 +3933,8 @@ void WebPageProxy::didStartProvisionalLoadForFrameShared(Ref<WebProcessProxy>&& > if (frame->isMainFrame() && navigationID) > navigation = navigationState().navigation(navigationID); > >- LOG(Loading, "WebPageProxy %" PRIu64 " in process pid %i didStartProvisionalLoadForFrame to frameID %" PRIu64 ", navigationID %" PRIu64 ", url %s", m_pageID, process->processIdentifier(), frameID, navigationID, url.string().utf8().data()); >- RELEASE_LOG_IF_ALLOWED(Loading, "didStartProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID, frameID); >+ LOG(Loading, "WebPageProxy %" PRIu64 " in process pid %i didStartProvisionalLoadForFrame to frameID %" PRIu64 ", navigationID %" PRIu64 ", url %s", m_pageID.toUInt64(), process->processIdentifier(), frameID, navigationID, url.string().utf8().data()); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didStartProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID.toUInt64(), frameID); > > auto transaction = m_pageLoadState.transaction(); > >@@ -3986,7 +3986,7 @@ void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t f > void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared(Ref<WebProcessProxy>&& process, uint64_t frameID, uint64_t navigationID, ResourceRequest&& request, const UserData& userData) > { > LOG(Loading, "WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame to frameID %" PRIu64 ", navigationID %" PRIu64 ", url %s", frameID, navigationID, request.url().string().utf8().data()); >- RELEASE_LOG_IF_ALLOWED(Loading, "didReceiveServerRedirectForProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID, frameID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didReceiveServerRedirectForProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID.toUInt64(), frameID); > > PageClientProtector protector(pageClient()); > >@@ -4015,7 +4015,7 @@ void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared(Ref< > > void WebPageProxy::willPerformClientRedirectForFrame(uint64_t frameID, const String& url, double delay, WebCore::LockBackForwardList) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "willPerformClientRedirectForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID, frameID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "willPerformClientRedirectForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64(), frameID); > > PageClientProtector protector(pageClient()); > >@@ -4028,7 +4028,7 @@ void WebPageProxy::willPerformClientRedirectForFrame(uint64_t frameID, const Str > > void WebPageProxy::didCancelClientRedirectForFrame(uint64_t frameID) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "didCancelClientRedirectForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID, frameID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didCancelClientRedirectForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64(), frameID); > > PageClientProtector protector(pageClient()); > >@@ -4075,8 +4075,8 @@ void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, const Securi > > void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref<WebProcessProxy>&& process, uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const ResourceError& error, WillContinueLoading willContinueLoading, const UserData& userData) > { >- LOG(Loading, "(Loading) WebPageProxy %" PRIu64 " in web process pid %i didFailProvisionalLoadForFrame to provisionalURL %s", m_pageID, process->processIdentifier(), provisionalURL.utf8().data()); >- RELEASE_LOG_IF_ALLOWED(Process, "didFailProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64 ", domain = %s, code = %d", process->processIdentifier(), m_pageID, frameID, error.domain().utf8().data(), error.errorCode()); >+ LOG(Loading, "(Loading) WebPageProxy %" PRIu64 " in web process pid %i didFailProvisionalLoadForFrame to provisionalURL %s", m_pageID.toUInt64(), process->processIdentifier(), provisionalURL.utf8().data()); >+ RELEASE_LOG_IF_ALLOWED(Process, "didFailProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64 ", domain = %s, code = %d", process->processIdentifier(), m_pageID.toUInt64(), frameID, error.domain().utf8().data(), error.errorCode()); > > PageClientProtector protector(pageClient()); > >@@ -4154,9 +4154,9 @@ static OptionSet<CrossSiteNavigationDataTransfer::Flag> checkIfNavigationContain > > void WebPageProxy::didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& mimeType, bool frameHasCustomContentProvider, uint32_t opaqueFrameLoadType, const WebCore::CertificateInfo& certificateInfo, bool containsPluginDocument, Optional<HasInsecureContent> hasInsecureContent, const UserData& userData) > { >- LOG(Loading, "(Loading) WebPageProxy %" PRIu64 " didCommitLoadForFrame in navigation %" PRIu64, m_pageID, navigationID); >+ LOG(Loading, "(Loading) WebPageProxy %" PRIu64 " didCommitLoadForFrame in navigation %" PRIu64, m_pageID.toUInt64(), navigationID); > LOG(BackForward, "(Back/Forward) After load commit, back/forward list is now:%s", m_backForwardList->loggingString()); >- RELEASE_LOG_IF_ALLOWED(Loading, "didCommitLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID, frameID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didCommitLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64(), frameID); > > PageClientProtector protector(pageClient()); > >@@ -4268,7 +4268,7 @@ void WebPageProxy::didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID > > void WebPageProxy::didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData& userData) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "didFinishDocumentLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID, frameID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didFinishDocumentLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64(), frameID); > > PageClientProtector protector(pageClient()); > >@@ -4292,7 +4292,7 @@ void WebPageProxy::didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navi > void WebPageProxy::didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData& userData) > { > LOG(Loading, "WebPageProxy::didFinishLoadForFrame - WebPageProxy %p with navigationID %" PRIu64 " didFinishLoad", this, navigationID); >- RELEASE_LOG_IF_ALLOWED(Loading, "didFinishLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID, frameID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didFinishLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64(), frameID); > > PageClientProtector protector(pageClient()); > >@@ -4337,7 +4337,7 @@ void WebPageProxy::didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID > > void WebPageProxy::didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, const ResourceError& error, const UserData& userData) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "didFailLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64 ", domain = %s, code = %d", m_process->processIdentifier(), m_pageID, frameID, error.domain().utf8().data(), error.errorCode()); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didFailLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64 ", domain = %s, code = %d", m_process->processIdentifier(), m_pageID.toUInt64(), frameID, error.domain().utf8().data(), error.errorCode()); > > PageClientProtector protector(pageClient()); > >@@ -4379,7 +4379,7 @@ void WebPageProxy::didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, > > void WebPageProxy::didSameDocumentNavigationForFrame(uint64_t frameID, uint64_t navigationID, uint32_t opaqueSameDocumentNavigationType, URL&& url, const UserData& userData) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "didSameDocumentNavigationForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID, frameID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didSameDocumentNavigationForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64(), frameID); > > PageClientProtector protector(pageClient()); > >@@ -4549,7 +4549,7 @@ void WebPageProxy::beginSafeBrowsingCheck(const URL&, bool, WebFramePolicyListen > #endif > > void WebPageProxy::decidePolicyForNavigationActionAsync(uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, PolicyCheckIdentifier identifier, uint64_t navigationID, >- NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, >+ NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, Optional<WebCore::PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, > IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, uint64_t listenerID) > { > decidePolicyForNavigationActionAsyncShared(m_process.copyRef(), frameID, WTFMove(frameSecurityOrigin), identifier, navigationID, WTFMove(navigationActionData), >@@ -4557,7 +4557,7 @@ void WebPageProxy::decidePolicyForNavigationActionAsync(uint64_t frameID, WebCor > } > > void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref<WebProcessProxy>&& process, uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, >- WebCore::PolicyCheckIdentifier identifier, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, >+ WebCore::PolicyCheckIdentifier identifier, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, Optional<WebCore::PageIdentifier> originatingPageID, > const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, > const UserData& userData, uint64_t listenerID) > { >@@ -4573,7 +4573,7 @@ void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref<WebProcessProx > } > > void WebPageProxy::decidePolicyForNavigationAction(Ref<WebProcessProxy>&& process, WebFrameProxy& frame, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, >- NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, >+ NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfoData, Optional<PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, > IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, Ref<PolicyDecisionSender>&& sender) > { > LOG(Loading, "WebPageProxy::decidePolicyForNavigationAction - Original URL %s, current target URL %s", originalRequest.url().string().utf8().data(), request.url().string().utf8().data()); >@@ -4713,7 +4713,7 @@ void WebPageProxy::decidePolicyForNavigationAction(Ref<WebProcessProxy>&& proces > if (!fromAPI && originatingFrame == &frame) > sourceFrameInfo = destinationFrameInfo.copyRef(); > else if (!fromAPI) >- sourceFrameInfo = API::FrameInfo::create(originatingFrameInfoData, originatingPageID ? process->webPage(originatingPageID) : nullptr); >+ sourceFrameInfo = API::FrameInfo::create(originatingFrameInfoData, originatingPageID ? process->webPage(*originatingPageID) : nullptr); > > auto userInitiatedActivity = process->userInitiatedActivity(navigationActionData.userGestureTokenIdentifier); > bool shouldOpenAppLinks = !m_shouldSuppressAppLinksInNextNavigationPolicyDecision >@@ -4786,7 +4786,7 @@ void WebPageProxy::logFrameNavigation(const WebFrameProxy& frame, const URL& pag > #endif > > void WebPageProxy::decidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&& frameSecurityOrigin, PolicyCheckIdentifier identifier, >- uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, >+ uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, Optional<PageIdentifier> originatingPageID, > const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, > const UserData& userData, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&& reply) > { >@@ -4804,7 +4804,7 @@ void WebPageProxy::decidePolicyForNavigationActionSync(uint64_t frameID, bool is > } > > void WebPageProxy::decidePolicyForNavigationActionSyncShared(Ref<WebProcessProxy>&& process, uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&& frameSecurityOrigin, PolicyCheckIdentifier identifier, >- uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, >+ uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, Optional<PageIdentifier> originatingPageID, > const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, > const UserData& userData, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&& reply) > { >@@ -4937,7 +4937,7 @@ void WebPageProxy::didNavigateWithNavigationData(const WebNavigationDataStore& s > > void WebPageProxy::didNavigateWithNavigationDataShared(Ref<WebProcessProxy>&& process, const WebNavigationDataStore& store, uint64_t frameID) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "didNavigateWithNavigationDataShared: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didNavigateWithNavigationDataShared: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID.toUInt64()); > > PageClientProtector protector(pageClient()); > >@@ -4957,7 +4957,7 @@ void WebPageProxy::didPerformClientRedirect(const String& sourceURLString, const > > void WebPageProxy::didPerformClientRedirectShared(Ref<WebProcessProxy>&& process, const String& sourceURLString, const String& destinationURLString, uint64_t frameID) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "didPerformClientRedirectShared: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID, frameID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didPerformClientRedirectShared: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID.toUInt64(), frameID); > > PageClientProtector protector(pageClient()); > >@@ -4984,7 +4984,7 @@ void WebPageProxy::didPerformServerRedirect(const String& sourceURLString, const > > void WebPageProxy::didPerformServerRedirectShared(Ref<WebProcessProxy>&& process, const String& sourceURLString, const String& destinationURLString, uint64_t frameID) > { >- RELEASE_LOG_IF_ALLOWED(Loading, "didPerformServerRedirect: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Loading, "didPerformServerRedirect: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID.toUInt64()); > > PageClientProtector protector(pageClient()); > >@@ -5032,14 +5032,14 @@ WEBPAGEPROXY_LOADOPTIMIZER_ADDITIONS_6 > #endif > } > >-void WebPageProxy::createNewPage(const FrameInfoData& originatingFrameInfoData, uint64_t originatingPageID, ResourceRequest&& request, WindowFeatures&& windowFeatures, NavigationActionData&& navigationActionData, Messages::WebPageProxy::CreateNewPage::DelayedReply&& reply) >+void WebPageProxy::createNewPage(const FrameInfoData& originatingFrameInfoData, Optional<PageIdentifier> originatingPageID, ResourceRequest&& request, WindowFeatures&& windowFeatures, NavigationActionData&& navigationActionData, Messages::WebPageProxy::CreateNewPage::DelayedReply&& reply) > { > MESSAGE_CHECK(m_process, m_process->webFrame(originatingFrameInfoData.frameID)); >- auto originatingFrameInfo = API::FrameInfo::create(originatingFrameInfoData, m_process->webPage(originatingPageID)); >+ auto originatingFrameInfo = API::FrameInfo::create(originatingFrameInfoData, originatingPageID ? m_process->webPage(*originatingPageID) : nullptr); > auto mainFrameURL = m_mainFrame ? m_mainFrame->url() : URL(); > auto completionHandler = [this, protectedThis = makeRef(*this), mainFrameURL, request, reply = WTFMove(reply)] (RefPtr<WebPageProxy> newPage) mutable { > if (!newPage) { >- reply(0, WTF::nullopt); >+ reply(WTF::nullopt, WTF::nullopt); > return; > } > >@@ -5848,7 +5848,7 @@ IPC::Connection* WebPageProxy::messageSenderConnection() const > > uint64_t WebPageProxy::messageSenderDestinationID() const > { >- return m_pageID; >+ return m_pageID.toUInt64(); > } > > void WebPageProxy::valueChangedForPopupMenu(WebPopupMenuProxy*, int32_t newSelectedIndex) >@@ -6729,7 +6729,7 @@ void WebPageProxy::frameSetLargestFrameChanged(uint64_t frameID) > > void WebPageProxy::processDidBecomeUnresponsive() > { >- RELEASE_LOG_IF_ALLOWED(Process, "processDidBecomeUnresponsive: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Process, "processDidBecomeUnresponsive: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (!hasRunningProcess()) > return; >@@ -6741,7 +6741,7 @@ void WebPageProxy::processDidBecomeUnresponsive() > > void WebPageProxy::processDidBecomeResponsive() > { >- RELEASE_LOG_IF_ALLOWED(Process, "processDidBecomeResponsive: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID); >+ RELEASE_LOG_IF_ALLOWED(Process, "processDidBecomeResponsive: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID.toUInt64()); > > if (!hasRunningProcess()) > return; >diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h >index 07c5525a9bbf4573f74f6828d9130011783898d0..4b003d689d882ff2dca5662df517a5b62aa7b011 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.h >+++ b/Source/WebKit/UIProcess/WebPageProxy.h >@@ -82,6 +82,7 @@ > #include <WebCore/LayoutSize.h> > #include <WebCore/MediaPlaybackTargetContext.h> > #include <WebCore/MediaProducer.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/PlatformEvent.h> > #include <WebCore/PlatformScreen.h> > #include <WebCore/PlatformSpeechSynthesisUtterance.h> >@@ -382,14 +383,14 @@ class WebPageProxy : public API::ObjectImpl<API::Object::Type::Page> > #endif > , public CanMakeWeakPtr<WebPageProxy> { > public: >- static Ref<WebPageProxy> create(PageClient&, WebProcessProxy&, uint64_t pageID, Ref<API::PageConfiguration>&&); >+ static Ref<WebPageProxy> create(PageClient&, WebProcessProxy&, WebCore::PageIdentifier, Ref<API::PageConfiguration>&&); > virtual ~WebPageProxy(); > > static void forMostVisibleWebPageIfAny(PAL::SessionID, const WebCore::SecurityOriginData&, CompletionHandler<void(WebPageProxy*)>&&); > > const API::PageConfiguration& configuration() const; > >- uint64_t pageID() const { return m_pageID; } >+ WebCore::PageIdentifier pageID() const { return m_pageID; } > > PAL::SessionID sessionID() const; > >@@ -1505,7 +1506,7 @@ public: > void didNavigateWithNavigationDataShared(Ref<WebProcessProxy>&&, const WebNavigationDataStore&, uint64_t frameID); > void didChangeProvisionalURLForFrameShared(Ref<WebProcessProxy>&&, uint64_t frameID, uint64_t navigationID, URL&&); > void decidePolicyForNavigationActionAsyncShared(Ref<WebProcessProxy>&&, uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, WebCore::PolicyCheckIdentifier, >- uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, >+ uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, Optional<WebCore::PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, > IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData&, uint64_t listenerID); > void decidePolicyForResponseShared(Ref<WebProcessProxy>&&, uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, WebCore::PolicyCheckIdentifier, > uint64_t navigationID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, const String& downloadAttribute, uint64_t listenerID, const UserData&); >@@ -1514,7 +1515,7 @@ public: > void loadRequestWithNavigationShared(Ref<WebProcessProxy>&&, API::Navigation&, WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& = WTF::nullopt); > void backForwardGoToItemShared(Ref<WebProcessProxy>&&, const WebCore::BackForwardItemIdentifier&, CompletionHandler<void(SandboxExtension::Handle&&)>&&); > void decidePolicyForNavigationActionSyncShared(Ref<WebProcessProxy>&&, uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&&, WebCore::PolicyCheckIdentifier, uint64_t navigationID, NavigationActionData&&, >- FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, >+ FrameInfoData&&, Optional<WebCore::PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, > WebCore::ResourceResponse&& redirectResponse, const UserData&, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&&); > #if USE(QUICK_LOOK) > void didRequestPasswordForQuickLookDocumentInMainFrameShared(Ref<WebProcessProxy>&&, const String& fileName); >@@ -1554,7 +1555,7 @@ WEBPAGEPROXY_LOADOPTIMIZER_ADDITIONS_1 > void requestStorageSpace(uint64_t frameID, const String& originIdentifier, const String& databaseName, const String& displayName, uint64_t currentQuota, uint64_t currentOriginUsage, uint64_t currentDatabaseUsage, uint64_t expectedUsage, WTF::CompletionHandler<void(uint64_t)>&&); > > private: >- WebPageProxy(PageClient&, WebProcessProxy&, uint64_t pageID, Ref<API::PageConfiguration>&&); >+ WebPageProxy(PageClient&, WebProcessProxy&, WebCore::PageIdentifier, Ref<API::PageConfiguration>&&); > void platformInitialize(); > > void notifyProcessPoolToPrewarm(); >@@ -1630,13 +1631,13 @@ private: > void didDestroyNavigation(uint64_t navigationID); > > void decidePolicyForNavigationAction(Ref<WebProcessProxy>&&, WebFrameProxy&, WebCore::SecurityOriginData&&, uint64_t navigationID, NavigationActionData&&, >- FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, >+ FrameInfoData&&, Optional<WebCore::PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, > WebCore::ResourceResponse&& redirectResponse, const UserData&, Ref<PolicyDecisionSender>&&); > void decidePolicyForNavigationActionAsync(uint64_t frameID, WebCore::SecurityOriginData&&, WebCore::PolicyCheckIdentifier, uint64_t navigationID, NavigationActionData&&, >- FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, >+ FrameInfoData&&, Optional<WebCore::PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, > WebCore::ResourceResponse&& redirectResponse, const UserData&, uint64_t listenerID); > void decidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&&, WebCore::PolicyCheckIdentifier, uint64_t navigationID, NavigationActionData&&, >- FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, >+ FrameInfoData&&, Optional<WebCore::PageIdentifier> originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, > WebCore::ResourceResponse&& redirectResponse, const UserData&, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&&); > void decidePolicyForNewWindowAction(uint64_t frameID, const WebCore::SecurityOriginData&, WebCore::PolicyCheckIdentifier, NavigationActionData&&, > WebCore::ResourceRequest&&, const String& frameName, uint64_t listenerID, const UserData&); >@@ -1658,7 +1659,7 @@ private: > void didUpdateHistoryTitle(const String& title, const String& url, uint64_t frameID); > > // UI client >- void createNewPage(const FrameInfoData&, uint64_t originatingPageID, WebCore::ResourceRequest&&, WebCore::WindowFeatures&&, NavigationActionData&&, Messages::WebPageProxy::CreateNewPage::DelayedReply&&); >+ void createNewPage(const FrameInfoData&, Optional<WebCore::PageIdentifier> originatingPageID, WebCore::ResourceRequest&&, WebCore::WindowFeatures&&, NavigationActionData&&, Messages::WebPageProxy::CreateNewPage::DelayedReply&&); > void showPage(); > void runJavaScriptAlert(uint64_t frameID, const WebCore::SecurityOriginData&, const String&, Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply&&); > void runJavaScriptConfirm(uint64_t frameID, const WebCore::SecurityOriginData&, const String&, Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply&&); >@@ -2330,7 +2331,7 @@ WEBPAGEPROXY_LOADOPTIMIZER_ADDITIONS_2 > RefPtr<WebCore::ValidationBubble> m_validationBubble; > #endif > >- const uint64_t m_pageID; >+ const WebCore::PageIdentifier m_pageID; > > bool m_isPageSuspended { false }; > bool m_addsVisitedLinks { true }; >diff --git a/Source/WebKit/UIProcess/WebPageProxy.messages.in b/Source/WebKit/UIProcess/WebPageProxy.messages.in >index 4046e2e2b2462293e29fa4580f0714a90c399833..a849847b535d26e14cbd28020b379a7f1757d715 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.messages.in >+++ b/Source/WebKit/UIProcess/WebPageProxy.messages.in >@@ -22,7 +22,7 @@ > > messages -> WebPageProxy { > # UI messages >- CreateNewPage(struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest request, struct WebCore::WindowFeatures windowFeatures, struct WebKit::NavigationActionData navigationActionData) -> (uint64_t newPageID, Optional<WebKit::WebPageCreationParameters> newPageParameters) Synchronous >+ CreateNewPage(struct WebKit::FrameInfoData originatingFrameInfoData, Optional<WebCore::PageIdentifier> originatingPageID, WebCore::ResourceRequest request, struct WebCore::WindowFeatures windowFeatures, struct WebKit::NavigationActionData navigationActionData) -> (Optional<WebCore::PageIdentifier> newPageID, Optional<WebKit::WebPageCreationParameters> newPageParameters) Synchronous > ShowPage() > ClosePage(bool stopResponsivenessTimer) > RunJavaScriptAlert(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, String message) -> () Synchronous >@@ -104,8 +104,8 @@ messages -> WebPageProxy { > > # Policy messages > DecidePolicyForResponse(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, WebCore::PolicyCheckIdentifier policyCheckIdentifier, uint64_t navigationID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, bool canShowMIMEType, String downloadAttribute, uint64_t listenerID, WebKit::UserData userData) >- DecidePolicyForNavigationActionAsync(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, WebCore::PolicyCheckIdentifier policyCheckIdentifier, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, IPC::FormDataReference requestBody, WebCore::ResourceResponse redirectResponse, WebKit::UserData userData, uint64_t listenerID) >- DecidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, struct WebCore::SecurityOriginData frameSecurityOrigin, WebCore::PolicyCheckIdentifier policyCheckIdentifier, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, IPC::FormDataReference requestBody, WebCore::ResourceResponse redirectResponse, WebKit::UserData userData) -> (WebCore::PolicyCheckIdentifier policyCheckIdentifier, enum:uint8_t WebCore::PolicyAction policyAction, uint64_t newNavigationID, WebKit::DownloadID downloadID, Optional<WebKit::WebsitePoliciesData> websitePolicies) Synchronous >+ DecidePolicyForNavigationActionAsync(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, WebCore::PolicyCheckIdentifier policyCheckIdentifier, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, Optional<WebCore::PageIdentifier> originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, IPC::FormDataReference requestBody, WebCore::ResourceResponse redirectResponse, WebKit::UserData userData, uint64_t listenerID) >+ DecidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, struct WebCore::SecurityOriginData frameSecurityOrigin, WebCore::PolicyCheckIdentifier policyCheckIdentifier, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, Optional<WebCore::PageIdentifier> originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, IPC::FormDataReference requestBody, WebCore::ResourceResponse redirectResponse, WebKit::UserData userData) -> (WebCore::PolicyCheckIdentifier policyCheckIdentifier, enum:uint8_t WebCore::PolicyAction policyAction, uint64_t newNavigationID, WebKit::DownloadID downloadID, Optional<WebKit::WebsitePoliciesData> websitePolicies) Synchronous > DecidePolicyForNewWindowAction(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, WebCore::PolicyCheckIdentifier policyCheckIdentifier, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::UserData userData) > UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::UserData userData) > >diff --git a/Source/WebKit/UIProcess/WebProcessLifetimeObserver.cpp b/Source/WebKit/UIProcess/WebProcessLifetimeObserver.cpp >index c8023de41616475010f428239a7bed07b17f85d7..f497151d75c5e6f1f286aaa79e8a647c6a9f36c0 100644 >--- a/Source/WebKit/UIProcess/WebProcessLifetimeObserver.cpp >+++ b/Source/WebKit/UIProcess/WebProcessLifetimeObserver.cpp >@@ -47,7 +47,7 @@ void WebProcessLifetimeObserver::addWebPage(WebPageProxy& webPageProxy, WebProce > RELEASE_ASSERT(!process.isPrewarmed()); > > if (m_processes.add(&process).isNewEntry) { >- RELEASE_LOG(Loading, "%p - WebProcessLifetimeObserver::addWebPage: webPID = %i, pageID = %" PRIu64, this, process.processIdentifier(), webPageProxy.pageID()); >+ RELEASE_LOG(Loading, "%p - WebProcessLifetimeObserver::addWebPage: webPID = %i, pageID = %" PRIu64, this, process.processIdentifier(), webPageProxy.pageID().toUInt64()); > webProcessWillOpenConnection(process, *process.connection()); > } > >@@ -63,7 +63,7 @@ void WebProcessLifetimeObserver::removeWebPage(WebPageProxy& webPageProxy, WebPr > webPageDidCloseConnection(webPageProxy, *process.connection()); > > if (m_processes.remove(&process)) { >- RELEASE_LOG(Loading, "%p - WebProcessLifetimeObserver::removeWebPage: webPID = %i, pageID = %" PRIu64, this, process.processIdentifier(), webPageProxy.pageID()); >+ RELEASE_LOG(Loading, "%p - WebProcessLifetimeObserver::removeWebPage: webPID = %i, pageID = %" PRIu64, this, process.processIdentifier(), webPageProxy.pageID().toUInt64()); > webProcessDidCloseConnection(process, *process.connection()); > } > } >diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp >index 9bfbfde307e64b3e6ccec6bccb2c4dfd7b4b9a6a..ecd8d905e015cf2505d599af8cbaed913501629c 100644 >--- a/Source/WebKit/UIProcess/WebProcessPool.cpp >+++ b/Source/WebKit/UIProcess/WebProcessPool.cpp >@@ -1296,9 +1296,9 @@ bool WebProcessPool::mayHaveRegisteredServiceWorkers(const WebsiteDataStore& sto > } > #endif > >-void WebProcessPool::pageBeginUsingWebsiteDataStore(uint64_t pageID, WebsiteDataStore& dataStore) >+void WebProcessPool::pageBeginUsingWebsiteDataStore(PageIdentifier pageID, WebsiteDataStore& dataStore) > { >- auto result = m_sessionToPageIDsMap.add(dataStore.sessionID(), HashSet<uint64_t>()).iterator->value.add(pageID); >+ auto result = m_sessionToPageIDsMap.add(dataStore.sessionID(), HashSet<PageIdentifier>()).iterator->value.add(pageID); > ASSERT_UNUSED(result, result.isNewEntry); > > auto sessionID = dataStore.sessionID(); >@@ -1316,7 +1316,7 @@ void WebProcessPool::pageBeginUsingWebsiteDataStore(uint64_t pageID, WebsiteData > } > } > >-void WebProcessPool::pageEndUsingWebsiteDataStore(uint64_t pageID, WebsiteDataStore& dataStore) >+void WebProcessPool::pageEndUsingWebsiteDataStore(PageIdentifier pageID, WebsiteDataStore& dataStore) > { > auto sessionID = dataStore.sessionID(); > auto iterator = m_sessionToPageIDsMap.find(sessionID); >@@ -2211,7 +2211,7 @@ void WebProcessPool::reinstateNetworkProcessAssertionState(NetworkProcessProxy& > } > > #if ENABLE(SERVICE_WORKER) >-ServiceWorkerProcessProxy* WebProcessPool::serviceWorkerProcessProxyFromPageID(uint64_t pageID) const >+ServiceWorkerProcessProxy* WebProcessPool::serviceWorkerProcessProxyFromPageID(PageIdentifier pageID) const > { > // FIXME: This is inefficient. > for (auto* serviceWorkerProcess : m_serviceWorkerProcesses.values()) { >@@ -2520,7 +2520,7 @@ void WebProcessPool::clearCurrentModifierStateForTesting() > } > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >-void WebProcessPool::didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID sessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, OptionSet<CrossSiteNavigationDataTransfer::Flag> navigationDataTransfer, uint64_t pageID) >+void WebProcessPool::didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID sessionID, const RegistrableDomain& fromDomain, const RegistrableDomain& toDomain, OptionSet<CrossSiteNavigationDataTransfer::Flag> navigationDataTransfer, PageIdentifier pageID) > { > if (!m_networkProcess) > return; >diff --git a/Source/WebKit/UIProcess/WebProcessPool.h b/Source/WebKit/UIProcess/WebProcessPool.h >index d0a923672bbd27da894db6add48bc0881ce3c5c1..1d29825c834f104ed1979a4001a250aea6b6e614 100644 >--- a/Source/WebKit/UIProcess/WebProcessPool.h >+++ b/Source/WebKit/UIProcess/WebProcessPool.h >@@ -150,6 +150,18 @@ public: > void addMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID, IPC::MessageReceiver&); > void removeMessageReceiver(IPC::StringReference messageReceiverName); > void removeMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID); >+ >+ template <typename T> >+ void addMessageReceiver(IPC::StringReference messageReceiverName, ObjectIdentifier<T> destinationID, IPC::MessageReceiver& receiver) >+ { >+ addMessageReceiver(messageReceiverName, destinationID.toUInt64(), receiver); >+ } >+ >+ template <typename T> >+ void removeMessageReceiver(IPC::StringReference messageReceiverName, ObjectIdentifier<T> destinationID) >+ { >+ removeMessageReceiver(messageReceiverName, destinationID.toUInt64()); >+ } > > bool dispatchMessage(IPC::Connection&, IPC::Decoder&); > bool dispatchSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&); >@@ -195,8 +207,8 @@ public: > > Ref<WebPageProxy> createWebPage(PageClient&, Ref<API::PageConfiguration>&&); > >- void pageBeginUsingWebsiteDataStore(uint64_t pageID, WebsiteDataStore&); >- void pageEndUsingWebsiteDataStore(uint64_t pageID, WebsiteDataStore&); >+ void pageBeginUsingWebsiteDataStore(WebCore::PageIdentifier, WebsiteDataStore&); >+ void pageEndUsingWebsiteDataStore(WebCore::PageIdentifier, WebsiteDataStore&); > bool hasPagesUsingWebsiteDataStore(WebsiteDataStore&) const; > > const String& injectedBundlePath() const { return m_configuration->injectedBundlePath(); } >@@ -367,7 +379,7 @@ public: > > #if ENABLE(SERVICE_WORKER) > void establishWorkerContextConnectionToNetworkProcess(NetworkProcessProxy&, WebCore::RegistrableDomain&&, Optional<PAL::SessionID>); >- ServiceWorkerProcessProxy* serviceWorkerProcessProxyFromPageID(uint64_t pageID) const; >+ ServiceWorkerProcessProxy* serviceWorkerProcessProxyFromPageID(WebCore::PageIdentifier) const; > const HashMap<WebCore::RegistrableDomain, ServiceWorkerProcessProxy*>& serviceWorkerProxies() const { return m_serviceWorkerProcesses; } > void setAllowsAnySSLCertificateForServiceWorker(bool allows) { m_allowsAnySSLCertificateForServiceWorker = allows; } > bool allowsAnySSLCertificateForServiceWorker() const { return m_allowsAnySSLCertificateForServiceWorker; } >@@ -496,7 +508,7 @@ public: > void clearCurrentModifierStateForTesting(); > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >- void didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID, const WebCore::RegistrableDomain& fromDomain, const WebCore::RegistrableDomain& toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag>, uint64_t pageID); >+ void didCommitCrossSiteLoadWithDataTransfer(PAL::SessionID, const WebCore::RegistrableDomain& fromDomain, const WebCore::RegistrableDomain& toDomain, OptionSet<WebCore::CrossSiteNavigationDataTransfer::Flag>, WebCore::PageIdentifier); > #endif > > #if PLATFORM(GTK) || PLATFORM(WPE) >@@ -762,7 +774,7 @@ private: > }; > Paths m_resolvedPaths; > >- HashMap<PAL::SessionID, HashSet<uint64_t>> m_sessionToPageIDsMap; >+ HashMap<PAL::SessionID, HashSet<WebCore::PageIdentifier>> m_sessionToPageIDsMap; > RunLoop::Timer<WebProcessPool> m_serviceWorkerProcessesTerminationTimer; > > #if PLATFORM(IOS_FAMILY) >diff --git a/Source/WebKit/UIProcess/WebProcessProxy.cpp b/Source/WebKit/UIProcess/WebProcessProxy.cpp >index 8203465cb2814d2cfc328fa794662a20e02b432c..67831e207809c0ec5b628aec0d39111835f310f6 100644 >--- a/Source/WebKit/UIProcess/WebProcessProxy.cpp >+++ b/Source/WebKit/UIProcess/WebProcessProxy.cpp >@@ -110,10 +110,9 @@ WebProcessProxy* WebProcessProxy::processForIdentifier(ProcessIdentifier identif > return allProcesses().get(identifier); > } > >-uint64_t WebProcessProxy::generatePageID() >+PageIdentifier WebProcessProxy::generatePageID() > { >- static uint64_t uniquePageID; >- return ++uniquePageID; >+ return PageIdentifier::generate(); > } > > static WebProcessProxy::WebPageProxyMap& globalPageMap() >@@ -330,7 +329,7 @@ void WebProcessProxy::shutDown() > m_processPool->disconnectProcess(this); > } > >-WebPageProxy* WebProcessProxy::webPage(uint64_t pageID) >+WebPageProxy* WebProcessProxy::webPage(PageIdentifier pageID) > { > return globalPageMap().get(pageID); > } >@@ -363,7 +362,7 @@ void WebProcessProxy::notifyPageStatisticsTelemetryFinished(API::Object* message > > Ref<WebPageProxy> WebProcessProxy::createWebPage(PageClient& pageClient, Ref<API::PageConfiguration>&& pageConfiguration) > { >- uint64_t pageID = generatePageID(); >+ auto pageID = generatePageID(); > Ref<WebPageProxy> webPage = WebPageProxy::create(pageClient, *this, pageID, WTFMove(pageConfiguration)); > > addExistingWebPage(webPage.get(), BeginsUsingDataStore::Yes); >@@ -415,10 +414,10 @@ void WebProcessProxy::removeWebPage(WebPageProxy& webPage, EndsUsingDataStore en > maybeShutDown(); > } > >-void WebProcessProxy::addVisitedLinkStoreUser(VisitedLinkStore& visitedLinkStore, uint64_t pageID) >+void WebProcessProxy::addVisitedLinkStoreUser(VisitedLinkStore& visitedLinkStore, PageIdentifier pageID) > { > auto& users = m_visitedLinkStoresWithUsers.ensure(&visitedLinkStore, [] { >- return HashSet<uint64_t> { }; >+ return HashSet<PageIdentifier> { }; > }).iterator->value; > > ASSERT(!users.contains(pageID)); >@@ -428,7 +427,7 @@ void WebProcessProxy::addVisitedLinkStoreUser(VisitedLinkStore& visitedLinkStore > visitedLinkStore.addProcess(*this); > } > >-void WebProcessProxy::removeVisitedLinkStoreUser(VisitedLinkStore& visitedLinkStore, uint64_t pageID) >+void WebProcessProxy::removeVisitedLinkStoreUser(VisitedLinkStore& visitedLinkStore, PageIdentifier pageID) > { > auto it = m_visitedLinkStoresWithUsers.find(&visitedLinkStore); > if (it == m_visitedLinkStoresWithUsers.end()) >@@ -541,7 +540,7 @@ bool WebProcessProxy::fullKeyboardAccessEnabled() > } > #endif > >-bool WebProcessProxy::hasProvisionalPageWithID(uint64_t pageID) const >+bool WebProcessProxy::hasProvisionalPageWithID(PageIdentifier pageID) const > { > for (auto* provisionalPage : m_provisionalPages) { > if (provisionalPage->page().pageID() == pageID) >diff --git a/Source/WebKit/UIProcess/WebProcessProxy.h b/Source/WebKit/UIProcess/WebProcessProxy.h >index 9a6cbf1f46099a5f6f9fa2f0ee8a6fa2c81816a8..ad3f038dd65465c0489979b67e585c856f92dc4a 100644 >--- a/Source/WebKit/UIProcess/WebProcessProxy.h >+++ b/Source/WebKit/UIProcess/WebProcessProxy.h >@@ -40,6 +40,7 @@ > #include "WebProcessProxyMessages.h" > #include <WebCore/MessagePortChannelProvider.h> > #include <WebCore/MessagePortIdentifier.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/ProcessIdentifier.h> > #include <WebCore/RegistrableDomain.h> > #include <WebCore/SharedStringHash.h> >@@ -97,7 +98,7 @@ enum class AllowProcessCaching { No, Yes }; > class WebProcessProxy : public AuxiliaryProcessProxy, public ResponsivenessTimer::Client, public ThreadSafeRefCounted<WebProcessProxy>, public CanMakeWeakPtr<WebProcessProxy>, private ProcessThrottlerClient { > public: > typedef HashMap<uint64_t, RefPtr<WebFrameProxy>> WebFrameProxyMap; >- typedef HashMap<uint64_t, WebPageProxy*> WebPageProxyMap; >+ typedef HashMap<WebCore::PageIdentifier, WebPageProxy*> WebPageProxyMap; > typedef HashMap<uint64_t, RefPtr<API::UserInitiatedAction>> UserInitiatedActionMap; > > enum class IsPrewarmed { >@@ -128,7 +129,7 @@ public: > void setWebsiteDataStore(WebsiteDataStore&); > > static WebProcessProxy* processForIdentifier(WebCore::ProcessIdentifier); >- static WebPageProxy* webPage(uint64_t pageID); >+ static WebPageProxy* webPage(WebCore::PageIdentifier); > Ref<WebPageProxy> createWebPage(PageClient&, Ref<API::PageConfiguration>&&); > > enum class BeginsUsingDataStore : bool { No, Yes }; >@@ -149,10 +150,10 @@ public: > > virtual bool isServiceWorkerProcess() const { return false; } > >- void didCreateWebPageInProcess(uint64_t pageID); >+ void didCreateWebPageInProcess(WebCore::PageIdentifier); > >- void addVisitedLinkStoreUser(VisitedLinkStore&, uint64_t pageID); >- void removeVisitedLinkStoreUser(VisitedLinkStore&, uint64_t pageID); >+ void addVisitedLinkStoreUser(VisitedLinkStore&, WebCore::PageIdentifier); >+ void removeVisitedLinkStoreUser(VisitedLinkStore&, WebCore::PageIdentifier); > > void addWebUserContentControllerProxy(WebUserContentControllerProxy&, WebPageCreationParameters&); > void didDestroyWebUserContentControllerProxy(WebUserContentControllerProxy&); >@@ -311,7 +312,7 @@ public: > void webPageMediaStateDidChange(WebPageProxy&); > > protected: >- static uint64_t generatePageID(); >+ static WebCore::PageIdentifier generatePageID(); > WebProcessProxy(WebProcessPool&, WebsiteDataStore*, IsPrewarmed); > > // AuxiliaryProcessProxy >@@ -354,7 +355,7 @@ private: > void didCreateContextForVisibilityPropagation(LayerHostingContextID); > #endif > >- bool hasProvisionalPageWithID(uint64_t pageID) const; >+ bool hasProvisionalPageWithID(WebCore::PageIdentifier) const; > bool isAllowedToUpdateBackForwardItem(WebBackForwardListItem&) const; > > // Plugins >@@ -447,7 +448,7 @@ private: > HashSet<ProvisionalPageProxy*> m_provisionalPages; > UserInitiatedActionMap m_userInitiatedActionMap; > >- HashMap<VisitedLinkStore*, HashSet<uint64_t/* pageID */>> m_visitedLinkStoresWithUsers; >+ HashMap<VisitedLinkStore*, HashSet<WebCore::PageIdentifier>> m_visitedLinkStoresWithUsers; > HashSet<WebUserContentControllerProxy*> m_webUserContentControllerProxies; > > int m_numberOfTimesSuddenTerminationWasDisabled; >diff --git a/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp b/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp >index e355319ea4c4ee651c6bedf7c86fbdd21f29dc23..7d575a404b045b91ad7ac8e66760d08be38b91de 100644 >--- a/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp >+++ b/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp >@@ -109,7 +109,7 @@ void WebURLSchemeHandler::taskCompleted(WebURLSchemeTask& task) > platformTaskCompleted(task); > } > >-void WebURLSchemeHandler::removeTaskFromPageMap(uint64_t pageID, uint64_t taskID) >+void WebURLSchemeHandler::removeTaskFromPageMap(PageIdentifier pageID, uint64_t taskID) > { > auto iterator = m_tasksByPageIdentifier.find(pageID); > ASSERT(iterator != m_tasksByPageIdentifier.end()); >diff --git a/Source/WebKit/UIProcess/WebURLSchemeHandler.h b/Source/WebKit/UIProcess/WebURLSchemeHandler.h >index 89976c61f83d52b81f2c4407c2c5bbd73bf2ae49..b7af075975f32b8ab85e88d1baffb05a1705a7ba 100644 >--- a/Source/WebKit/UIProcess/WebURLSchemeHandler.h >+++ b/Source/WebKit/UIProcess/WebURLSchemeHandler.h >@@ -66,13 +66,13 @@ private: > virtual void platformStopTask(WebPageProxy&, WebURLSchemeTask&) = 0; > virtual void platformTaskCompleted(WebURLSchemeTask&) = 0; > >- void removeTaskFromPageMap(uint64_t pageID, uint64_t taskID); >+ void removeTaskFromPageMap(WebCore::PageIdentifier, uint64_t taskID); > WebProcessProxy* processForTaskIdentifier(uint64_t) const; > > uint64_t m_identifier; > > HashMap<uint64_t, Ref<WebURLSchemeTask>> m_tasks; >- HashMap<uint64_t, HashSet<uint64_t>> m_tasksByPageIdentifier; >+ HashMap<WebCore::PageIdentifier, HashSet<uint64_t>> m_tasksByPageIdentifier; > > SyncLoadCompletionHandler m_syncLoadCompletionHandler; > >diff --git a/Source/WebKit/UIProcess/WebURLSchemeTask.h b/Source/WebKit/UIProcess/WebURLSchemeTask.h >index b872073bd2781ff09b9bf2533162c05aa69c03eb..a97f160cf2556fa138f52bd815f23e8ea6c7ea6f 100644 >--- a/Source/WebKit/UIProcess/WebURLSchemeTask.h >+++ b/Source/WebKit/UIProcess/WebURLSchemeTask.h >@@ -57,7 +57,7 @@ public: > static Ref<WebURLSchemeTask> create(WebURLSchemeHandler&, WebPageProxy&, WebProcessProxy&, uint64_t identifier, WebCore::ResourceRequest&&, SyncLoadCompletionHandler&&); > > uint64_t identifier() const { return m_identifier; } >- uint64_t pageID() const { return m_pageIdentifier; } >+ WebCore::PageIdentifier pageID() const { return m_pageIdentifier; } > WebProcessProxy* process() const { return m_process.get(); } > > const WebCore::ResourceRequest& request() const { return m_request; } >@@ -87,7 +87,7 @@ private: > WebPageProxy* m_page; > RefPtr<WebProcessProxy> m_process; > uint64_t m_identifier; >- uint64_t m_pageIdentifier; >+ WebCore::PageIdentifier m_pageIdentifier; > WebCore::ResourceRequest m_request; > bool m_stopped { false }; > bool m_responseSent { false }; >diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >index 4fd0212681705acf4f9c80be08d3bc04a4f8e57c..9a05ea8bf661ab43649d5190753aac8e906fd560 100644 >--- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >+++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >@@ -1565,7 +1565,7 @@ void WebsiteDataStore::setNotifyPagesWhenTelemetryWasCaptured(bool value, Comple > processPool->ensureNetworkProcess().setNotifyPagesWhenTelemetryWasCaptured(m_sessionID, value, [processPool, callbackAggregator = callbackAggregator.copyRef()] { }); > } > >-void WebsiteDataStore::getAllStorageAccessEntries(uint64_t pageID, CompletionHandler<void(Vector<String>&& domains)>&& completionHandler) >+void WebsiteDataStore::getAllStorageAccessEntries(PageIdentifier pageID, CompletionHandler<void(Vector<String>&& domains)>&& completionHandler) > { > auto* webPage = WebProcessProxy::webPage(pageID); > if (!webPage) { >diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h >index 642e3309d076243e37d8e1d27465b11f712db0c8..822c3fc7637d7c5eb003c69ce94745bd382593f2 100644 >--- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h >+++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h >@@ -33,6 +33,7 @@ > #include "WebsiteDataStoreConfiguration.h" > #include <WebCore/Cookie.h> > #include <WebCore/DeviceOrientationOrMotionPermissionState.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/SecurityOriginData.h> > #include <WebCore/SecurityOriginHash.h> > #include <pal/SessionID.h> >@@ -135,7 +136,7 @@ public: > void dumpResourceLoadStatistics(CompletionHandler<void(const String&)>&&); > void logTestingEvent(const String&); > void logUserInteraction(const URL&, CompletionHandler<void()>&&); >- void getAllStorageAccessEntries(uint64_t pageID, CompletionHandler<void(Vector<String>&& domains)>&&); >+ void getAllStorageAccessEntries(WebCore::PageIdentifier, CompletionHandler<void(Vector<String>&& domains)>&&); > void hasHadUserInteraction(const URL&, CompletionHandler<void(bool)>&&); > void isPrevalentResource(const URL&, CompletionHandler<void(bool)>&&); > void isRegisteredAsRedirectingTo(const URL& hostRedirectedFrom, const URL& hostRedirectedTo, CompletionHandler<void(bool)>&&); >diff --git a/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp b/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp >index dc8d53cafbb63b16a78ca685dd74fab7c41d2acf..acd60a44c1f01225e6172806f197d565b5fdd57c 100644 >--- a/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp >+++ b/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp >@@ -380,7 +380,7 @@ static const struct wl_webkitgtk_interface webkitgtkInterface = { > return; > > auto* compositor = static_cast<WaylandCompositor*>(wl_resource_get_user_data(resource)); >- compositor->bindSurfaceToWebPage(surface, pageID); >+ compositor->bindSurfaceToWebPage(surface, makeObjectIdentifier<PageIdentifierType>(pageID)); > } > }; > >@@ -547,7 +547,7 @@ bool WaylandCompositor::getTexture(WebPageProxy& webPage, unsigned& texture, Int > return false; > } > >-void WaylandCompositor::bindSurfaceToWebPage(WaylandCompositor::Surface* surface, uint64_t pageID) >+void WaylandCompositor::bindSurfaceToWebPage(WaylandCompositor::Surface* surface, WebCore::PageIdentifier pageID) > { > WebPageProxy* webPage = nullptr; > for (auto* page : m_pageMap.keys()) { >diff --git a/Source/WebKit/UIProcess/gtk/WaylandCompositor.h b/Source/WebKit/UIProcess/gtk/WaylandCompositor.h >index 14819f8fac4ec80230ba2cbbb18e6d0959b9f84a..2d780ffb1257d49f08dea9a1868a8a432c61be96 100644 >--- a/Source/WebKit/UIProcess/gtk/WaylandCompositor.h >+++ b/Source/WebKit/UIProcess/gtk/WaylandCompositor.h >@@ -103,7 +103,7 @@ public: > bool isRunning() const { return !!m_display; } > String displayName() const { return m_displayName; } > >- void bindSurfaceToWebPage(Surface*, uint64_t pageID); >+ void bindSurfaceToWebPage(Surface*, WebCore::PageIdentifier); > void registerWebPage(WebPageProxy&); > void unregisterWebPage(WebPageProxy&); > >diff --git a/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm b/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >index 083d6faf15201f8cec4d028ba30988b7aca750d4..cefde61c49b52acd6f089088206b8d66c7550251 100644 >--- a/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >+++ b/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >@@ -251,7 +251,7 @@ void ViewGestureController::beginSwipeGesture(_UINavigationInteractiveTransition > if (finish) > m_webPageProxyForBackForwardListForCurrentSwipe->navigationGestureWillEnd(transitionCompleted, *targetItem); > }]; >- uint64_t pageID = m_webPageProxy.pageID(); >+ auto pageID = m_webPageProxy.pageID(); > GestureID gestureID = m_currentGestureID; > [m_swipeTransitionContext _setCompletionHandler:[pageID, gestureID, targetItem] (_UIViewControllerTransitionContext *context, BOOL didComplete) { > if (auto gestureController = controllerForGesture(pageID, gestureID)) >@@ -321,7 +321,7 @@ void ViewGestureController::endSwipeGesture(WebBackForwardListItem* targetItem, > m_webPageProxy.didChangeBackgroundColor(); > } > >- uint64_t pageID = m_webPageProxy.pageID(); >+ auto pageID = m_webPageProxy.pageID(); > GestureID gestureID = m_currentGestureID; > m_loadCallback = [this, pageID, gestureID] { > auto drawingArea = m_webPageProxy.provisionalDrawingArea(); >diff --git a/Source/WebKit/WebProcess/ApplePay/WebPaymentCoordinator.cpp b/Source/WebKit/WebProcess/ApplePay/WebPaymentCoordinator.cpp >index ff449341d9e442fc162e41544b385b17c053a038..57f3fe173ccd95173642a195e7cfd101886988cc 100644 >--- a/Source/WebKit/WebProcess/ApplePay/WebPaymentCoordinator.cpp >+++ b/Source/WebKit/WebProcess/ApplePay/WebPaymentCoordinator.cpp >@@ -168,7 +168,7 @@ IPC::Connection* WebPaymentCoordinator::messageSenderConnection() const > > uint64_t WebPaymentCoordinator::messageSenderDestinationID() const > { >- return m_webPage.pageID(); >+ return m_webPage.pageID().toUInt64(); > } > > void WebPaymentCoordinator::validateMerchant(const String& validationURLString) >diff --git a/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp b/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp >index b1cbc963b0efcc852492d968d9eaac31828e152b..454ca6bc844983f5998ffee4da374ccfcc6225da 100644 >--- a/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp >+++ b/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp >@@ -231,7 +231,7 @@ void WebAutomationSessionProxy::didClearWindowObjectForFrame(WebFrame& frame) > WebProcess::singleton().parentProcessConnection()->send(Messages::WebAutomationSession::DidEvaluateJavaScriptFunction(callbackID, errorMessage, errorType), 0); > } > >-void WebAutomationSessionProxy::evaluateJavaScriptFunction(uint64_t pageID, uint64_t frameID, const String& function, Vector<String> arguments, bool expectsImplicitCallbackArgument, int callbackTimeout, uint64_t callbackID) >+void WebAutomationSessionProxy::evaluateJavaScriptFunction(PageIdentifier pageID, uint64_t frameID, const String& function, Vector<String> arguments, bool expectsImplicitCallbackArgument, int callbackTimeout, uint64_t callbackID) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >@@ -312,7 +312,7 @@ void WebAutomationSessionProxy::didEvaluateJavaScriptFunction(uint64_t frameID, > WebProcess::singleton().parentProcessConnection()->send(Messages::WebAutomationSession::DidEvaluateJavaScriptFunction(callbackID, result, errorType), 0); > } > >-void WebAutomationSessionProxy::resolveChildFrameWithOrdinal(uint64_t pageID, uint64_t frameID, uint32_t ordinal, CompletionHandler<void(Optional<String>, uint64_t)>&& completionHandler) >+void WebAutomationSessionProxy::resolveChildFrameWithOrdinal(PageIdentifier pageID, uint64_t frameID, uint32_t ordinal, CompletionHandler<void(Optional<String>, uint64_t)>&& completionHandler) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >@@ -350,7 +350,7 @@ void WebAutomationSessionProxy::resolveChildFrameWithOrdinal(uint64_t pageID, ui > completionHandler(WTF::nullopt, childFrame->frameID()); > } > >-void WebAutomationSessionProxy::resolveChildFrameWithNodeHandle(uint64_t pageID, uint64_t frameID, const String& nodeHandle, CompletionHandler<void(Optional<String>, uint64_t)>&& completionHandler) >+void WebAutomationSessionProxy::resolveChildFrameWithNodeHandle(PageIdentifier pageID, uint64_t frameID, const String& nodeHandle, CompletionHandler<void(Optional<String>, uint64_t)>&& completionHandler) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >@@ -388,7 +388,7 @@ void WebAutomationSessionProxy::resolveChildFrameWithNodeHandle(uint64_t pageID, > completionHandler(WTF::nullopt, frameFromElement->frameID()); > } > >-void WebAutomationSessionProxy::resolveChildFrameWithName(uint64_t pageID, uint64_t frameID, const String& name, CompletionHandler<void(Optional<String>, uint64_t)>&& completionHandler) >+void WebAutomationSessionProxy::resolveChildFrameWithName(PageIdentifier pageID, uint64_t frameID, const String& name, CompletionHandler<void(Optional<String>, uint64_t)>&& completionHandler) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >@@ -426,7 +426,7 @@ void WebAutomationSessionProxy::resolveChildFrameWithName(uint64_t pageID, uint6 > completionHandler(WTF::nullopt, childFrame->frameID()); > } > >-void WebAutomationSessionProxy::resolveParentFrame(uint64_t pageID, uint64_t frameID, CompletionHandler<void(Optional<String>, uint64_t)>&& completionHandler) >+void WebAutomationSessionProxy::resolveParentFrame(PageIdentifier pageID, uint64_t frameID, CompletionHandler<void(Optional<String>, uint64_t)>&& completionHandler) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >@@ -452,7 +452,7 @@ void WebAutomationSessionProxy::resolveParentFrame(uint64_t pageID, uint64_t fra > completionHandler(WTF::nullopt, parentFrame->frameID()); > } > >-void WebAutomationSessionProxy::focusFrame(uint64_t pageID, uint64_t frameID) >+void WebAutomationSessionProxy::focusFrame(PageIdentifier pageID, uint64_t frameID) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) >@@ -527,7 +527,7 @@ static WebCore::FloatPoint convertPointFromFrameClientToRootView(WebCore::FrameV > return clientPoint; > } > >-void WebAutomationSessionProxy::computeElementLayout(uint64_t pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, CoordinateSystem coordinateSystem, CompletionHandler<void(Optional<String>, WebCore::IntRect, Optional<WebCore::IntPoint>, bool)>&& completionHandler) >+void WebAutomationSessionProxy::computeElementLayout(PageIdentifier pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, CoordinateSystem coordinateSystem, CompletionHandler<void(Optional<String>, WebCore::IntRect, Optional<WebCore::IntPoint>, bool)>&& completionHandler) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >@@ -635,7 +635,7 @@ void WebAutomationSessionProxy::computeElementLayout(uint64_t pageID, uint64_t f > completionHandler(WTF::nullopt, resultElementBounds, resultInViewCenterPoint, isObscured); > } > >-void WebAutomationSessionProxy::selectOptionElement(uint64_t pageID, uint64_t frameID, String nodeHandle, CompletionHandler<void(Optional<String>)>&& completionHandler) >+void WebAutomationSessionProxy::selectOptionElement(PageIdentifier pageID, uint64_t frameID, String nodeHandle, CompletionHandler<void(Optional<String>)>&& completionHandler) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >@@ -703,7 +703,7 @@ static WebCore::IntRect snapshotRectForScreenshot(WebPage& page, WebCore::Elemen > return { }; > } > >-void WebAutomationSessionProxy::takeScreenshot(uint64_t pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, bool clipToViewport, uint64_t callbackID) >+void WebAutomationSessionProxy::takeScreenshot(PageIdentifier pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, bool clipToViewport, uint64_t callbackID) > { > ShareableBitmap::Handle handle; > >@@ -751,7 +751,7 @@ void WebAutomationSessionProxy::takeScreenshot(uint64_t pageID, uint64_t frameID > WebProcess::singleton().parentProcessConnection()->send(Messages::WebAutomationSession::DidTakeScreenshot(callbackID, handle, { }), 0); > } > >-void WebAutomationSessionProxy::getCookiesForFrame(uint64_t pageID, uint64_t frameID, CompletionHandler<void(Optional<String>, Vector<WebCore::Cookie>)>&& completionHandler) >+void WebAutomationSessionProxy::getCookiesForFrame(PageIdentifier pageID, uint64_t frameID, CompletionHandler<void(Optional<String>, Vector<WebCore::Cookie>)>&& completionHandler) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >@@ -776,7 +776,7 @@ void WebAutomationSessionProxy::getCookiesForFrame(uint64_t pageID, uint64_t fra > completionHandler(WTF::nullopt, foundCookies); > } > >-void WebAutomationSessionProxy::deleteCookie(uint64_t pageID, uint64_t frameID, String cookieName, CompletionHandler<void(Optional<String>)>&& completionHandler) >+void WebAutomationSessionProxy::deleteCookie(PageIdentifier pageID, uint64_t frameID, String cookieName, CompletionHandler<void(Optional<String>)>&& completionHandler) > { > WebPage* page = WebProcess::singleton().webPage(pageID); > if (!page) { >diff --git a/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h b/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h >index 629541d20ba10df62da1e2609164eac892ba0d13..1167645277dbc1930a5a7a597dcbc2df3ecf55c9 100644 >--- a/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h >+++ b/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h >@@ -28,6 +28,7 @@ > #include "Connection.h" > #include "CoordinateSystem.h" > #include <JavaScriptCore/JSBase.h> >+#include <WebCore/PageIdentifier.h> > #include <wtf/text/WTFString.h> > > namespace WebCore { >@@ -60,17 +61,17 @@ private: > void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override; > > // Called by WebAutomationSessionProxy messages >- void evaluateJavaScriptFunction(uint64_t pageID, uint64_t frameID, const String& function, Vector<String> arguments, bool expectsImplicitCallbackArgument, int callbackTimeout, uint64_t callbackID); >- void resolveChildFrameWithOrdinal(uint64_t pageID, uint64_t frameID, uint32_t ordinal, CompletionHandler<void(Optional<String>, uint64_t)>&&); >- void resolveChildFrameWithNodeHandle(uint64_t pageID, uint64_t frameID, const String& nodeHandle, CompletionHandler<void(Optional<String>, uint64_t)>&&); >- void resolveChildFrameWithName(uint64_t pageID, uint64_t frameID, const String& name, CompletionHandler<void(Optional<String>, uint64_t)>&&); >- void resolveParentFrame(uint64_t pageID, uint64_t frameID, CompletionHandler<void(Optional<String>, uint64_t)>&&); >- void focusFrame(uint64_t pageID, uint64_t frameID); >- void computeElementLayout(uint64_t pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, CoordinateSystem, CompletionHandler<void(Optional<String>, WebCore::IntRect, Optional<WebCore::IntPoint>, bool)>&&); >- void selectOptionElement(uint64_t pageID, uint64_t frameID, String nodeHandle, CompletionHandler<void(Optional<String>)>&&); >- void takeScreenshot(uint64_t pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, bool clipToViewport, uint64_t callbackID); >- void getCookiesForFrame(uint64_t pageID, uint64_t frameID, CompletionHandler<void(Optional<String>, Vector<WebCore::Cookie>)>&&); >- void deleteCookie(uint64_t pageID, uint64_t frameID, String cookieName, CompletionHandler<void(Optional<String>)>&&); >+ void evaluateJavaScriptFunction(WebCore::PageIdentifier, uint64_t frameID, const String& function, Vector<String> arguments, bool expectsImplicitCallbackArgument, int callbackTimeout, uint64_t callbackID); >+ void resolveChildFrameWithOrdinal(WebCore::PageIdentifier, uint64_t frameID, uint32_t ordinal, CompletionHandler<void(Optional<String>, uint64_t)>&&); >+ void resolveChildFrameWithNodeHandle(WebCore::PageIdentifier, uint64_t frameID, const String& nodeHandle, CompletionHandler<void(Optional<String>, uint64_t)>&&); >+ void resolveChildFrameWithName(WebCore::PageIdentifier, uint64_t frameID, const String& name, CompletionHandler<void(Optional<String>, uint64_t)>&&); >+ void resolveParentFrame(WebCore::PageIdentifier, uint64_t frameID, CompletionHandler<void(Optional<String>, uint64_t)>&&); >+ void focusFrame(WebCore::PageIdentifier, uint64_t frameID); >+ void computeElementLayout(WebCore::PageIdentifier, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, CoordinateSystem, CompletionHandler<void(Optional<String>, WebCore::IntRect, Optional<WebCore::IntPoint>, bool)>&&); >+ void selectOptionElement(WebCore::PageIdentifier, uint64_t frameID, String nodeHandle, CompletionHandler<void(Optional<String>)>&&); >+ void takeScreenshot(WebCore::PageIdentifier, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, bool clipToViewport, uint64_t callbackID); >+ void getCookiesForFrame(WebCore::PageIdentifier, uint64_t frameID, CompletionHandler<void(Optional<String>, Vector<WebCore::Cookie>)>&&); >+ void deleteCookie(WebCore::PageIdentifier, uint64_t frameID, String cookieName, CompletionHandler<void(Optional<String>)>&&); > > String m_sessionIdentifier; > >diff --git a/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.messages.in b/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.messages.in >index aa1219e2ef1fc07004596d24a1b5716d306f78be..d72f89d26359cf01ccfd531e96e01f44409aaf58 100644 >--- a/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.messages.in >+++ b/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.messages.in >@@ -21,21 +21,21 @@ > # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > messages -> WebAutomationSessionProxy { >- EvaluateJavaScriptFunction(uint64_t pageID, uint64_t frameID, String function, Vector<String> arguments, bool expectsImplicitCallbackArgument, int callbackTimeout, uint64_t callbackID) >+ EvaluateJavaScriptFunction(WebCore::PageIdentifier pageID, uint64_t frameID, String function, Vector<String> arguments, bool expectsImplicitCallbackArgument, int callbackTimeout, uint64_t callbackID) > >- ResolveChildFrameWithOrdinal(uint64_t pageID, uint64_t frameID, uint32_t ordinal) -> (Optional<String> errorType, uint64_t frameID) Async >- ResolveChildFrameWithNodeHandle(uint64_t pageID, uint64_t frameID, String nodeHandle) -> (Optional<String> errorType, uint64_t frameID) Async >- ResolveChildFrameWithName(uint64_t pageID, uint64_t frameID, String name) -> (Optional<String> errorType, uint64_t frameID) Async >- ResolveParentFrame(uint64_t pageID, uint64_t frameID) -> (Optional<String> errorType, uint64_t frameID) Async >+ ResolveChildFrameWithOrdinal(WebCore::PageIdentifier pageID, uint64_t frameID, uint32_t ordinal) -> (Optional<String> errorType, uint64_t frameID) Async >+ ResolveChildFrameWithNodeHandle(WebCore::PageIdentifier pageID, uint64_t frameID, String nodeHandle) -> (Optional<String> errorType, uint64_t frameID) Async >+ ResolveChildFrameWithName(WebCore::PageIdentifier pageID, uint64_t frameID, String name) -> (Optional<String> errorType, uint64_t frameID) Async >+ ResolveParentFrame(WebCore::PageIdentifier pageID, uint64_t frameID) -> (Optional<String> errorType, uint64_t frameID) Async > >- FocusFrame(uint64_t pageID, uint64_t frameID) >+ FocusFrame(WebCore::PageIdentifier pageID, uint64_t frameID) > >- ComputeElementLayout(uint64_t pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, enum:uint8_t WebKit::CoordinateSystem coordinateSystem) -> (Optional<String> errorType, WebCore::IntRect rect, Optional<WebCore::IntPoint> inViewCenterPoint, bool isObscured) Async >+ ComputeElementLayout(WebCore::PageIdentifier pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, enum:uint8_t WebKit::CoordinateSystem coordinateSystem) -> (Optional<String> errorType, WebCore::IntRect rect, Optional<WebCore::IntPoint> inViewCenterPoint, bool isObscured) Async > >- SelectOptionElement(uint64_t pageID, uint64_t frameID, String nodeHandle) -> (Optional<String> errorType) Async >+ SelectOptionElement(WebCore::PageIdentifier pageID, uint64_t frameID, String nodeHandle) -> (Optional<String> errorType) Async > >- TakeScreenshot(uint64_t pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, bool clipToViewport, uint64_t callbackID) >+ TakeScreenshot(WebCore::PageIdentifier pageID, uint64_t frameID, String nodeHandle, bool scrollIntoViewIfNeeded, bool clipToViewport, uint64_t callbackID) > >- GetCookiesForFrame(uint64_t pageID, uint64_t frameID) -> (Optional<String> errorType, Vector<WebCore::Cookie> cookies) Async >- DeleteCookie(uint64_t pageID, uint64_t frameID, String cookieName) -> (Optional<String> errorType) Async >+ GetCookiesForFrame(WebCore::PageIdentifier pageID, uint64_t frameID) -> (Optional<String> errorType, Vector<WebCore::Cookie> cookies) Async >+ DeleteCookie(WebCore::PageIdentifier pageID, uint64_t frameID, String cookieName) -> (Optional<String> errorType) Async > } >diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp >index 082d609a87bf37c7ef2f4b4de8e24cdda251366d..4a23bf560107c31f1a4de2c961299a7010817501 100644 >--- a/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp >+++ b/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp >@@ -224,7 +224,7 @@ WebKitWebPage* webkit_web_extension_get_page(WebKitWebExtension* extension, guin > WebKitWebExtensionPrivate* priv = extension->priv; > WebPageMap::const_iterator end = priv->pages.end(); > for (WebPageMap::const_iterator it = priv->pages.begin(); it != end; ++it) >- if (it->key->pageID() == pageID) >+ if (it->key->pageID().toUInt64() == pageID) > return it->value.get(); > > return 0; >diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp >index e57e2e77e55848e8ba725f9d3227709fff178aff..cfc5031ed6e4a2954fe02a03da87a161cd2d3082 100644 >--- a/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp >+++ b/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp >@@ -763,7 +763,7 @@ guint64 webkit_web_page_get_id(WebKitWebPage* webPage) > { > g_return_val_if_fail(WEBKIT_IS_WEB_PAGE(webPage), 0); > >- return webPage->priv->webPage->pageID(); >+ return webPage->priv->webPage->pageID().toUInt64(); > } > > /** >diff --git a/Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp b/Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp >index ae3883d86b689e666f16acef90167294e5d2787c..8b1ad5edf0e6b90d58c24e615fadc9c7107a5f68 100644 >--- a/Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp >+++ b/Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp >@@ -89,7 +89,7 @@ void NetworkProcessConnection::didReceiveMessage(IPC::Connection& connection, IP > return; > } > if (decoder.messageReceiverName() == Messages::WebPage::messageReceiverName()) { >- if (auto* webPage = WebProcess::singleton().webPage(decoder.destinationID())) >+ if (auto* webPage = WebProcess::singleton().webPage(makeObjectIdentifier<PageIdentifierType>(decoder.destinationID()))) > webPage->didReceiveWebPageMessage(connection, decoder); > return; > } >@@ -149,7 +149,7 @@ void NetworkProcessConnection::didReceiveMessage(IPC::Connection& connection, IP > > #if ENABLE(APPLE_PAY_REMOTE_UI) > if (decoder.messageReceiverName() == Messages::WebPaymentCoordinator::messageReceiverName()) { >- if (auto webPage = WebProcess::singleton().webPage(decoder.destinationID())) >+ if (auto webPage = WebProcess::singleton().webPage(makeObjectIdentifier<PageIdentifierType>(decoder.destinationID()))) > webPage->paymentCoordinator()->didReceiveMessage(connection, decoder); > return; > } >@@ -171,7 +171,7 @@ void NetworkProcessConnection::didReceiveSyncMessage(IPC::Connection& connection > > #if ENABLE(APPLE_PAY_REMOTE_UI) > if (decoder.messageReceiverName() == Messages::WebPaymentCoordinator::messageReceiverName()) { >- if (auto webPage = WebProcess::singleton().webPage(decoder.destinationID())) >+ if (auto webPage = WebProcess::singleton().webPage(makeObjectIdentifier<PageIdentifierType>(decoder.destinationID()))) > webPage->paymentCoordinator()->didReceiveSyncMessage(connection, decoder, replyEncoder); > return; > } >diff --git a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp >index 04ae0e45d5e9d29ca0f270a06418a6ab2d501fcb..278b6018479f36590348c8951855acf43dcb59f8 100644 >--- a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp >+++ b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp >@@ -157,7 +157,7 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou > auto& frameLoaderClient = resourceLoader.frameLoader()->client(); > > WebResourceLoader::TrackingParameters trackingParameters; >- trackingParameters.pageID = frameLoaderClient.pageID().valueOr(0); >+ trackingParameters.pageID = frameLoaderClient.pageID().valueOr(PageIdentifier { }); > trackingParameters.frameID = frameLoaderClient.frameID().valueOr(0); > trackingParameters.resourceID = identifier; > auto sessionID = frameLoaderClient.sessionID(); >@@ -167,7 +167,7 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou > // then we should remember the ResourceLoader in our records but not schedule it in the NetworkProcess. > if (resourceLoader.documentLoader()->scheduleArchiveLoad(resourceLoader, resourceLoader.request())) { > LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as an archive resource.", resourceLoader.url().string().utf8().data()); >- RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be handled as an archive resource (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be handled as an archive resource (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader, trackingParameters)); > return; > } >@@ -175,14 +175,14 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou > > if (resourceLoader.documentLoader()->applicationCacheHost().maybeLoadResource(resourceLoader, resourceLoader.request(), resourceLoader.request().url())) { > LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded from application cache.", resourceLoader.url().string().utf8().data()); >- RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be loaded from application cache (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be loaded from application cache (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader, trackingParameters)); > return; > } > > if (resourceLoader.request().url().protocolIsData()) { > LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded as data.", resourceLoader.url().string().utf8().data()); >- RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be loaded as data (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be loaded as data (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > startLocalLoad(resourceLoader); > return; > } >@@ -190,7 +190,7 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou > #if USE(QUICK_LOOK) > if (isQuickLookPreviewURL(resourceLoader.request().url())) { > LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as a QuickLook resource.", resourceLoader.url().string().utf8().data()); >- RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be handled as a QuickLook resource (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be handled as a QuickLook resource (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > startLocalLoad(resourceLoader); > return; > } >@@ -201,7 +201,7 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou > // https://blogs.gnome.org/alexl/2012/01/26/resources-in-glib/ > if (resourceLoader.request().url().protocolIs("resource")) { > LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as a GResource.", resourceLoader.url().string().utf8().data()); >- RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be handled as a GResource (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL will be handled as a GResource (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > startLocalLoad(resourceLoader); > return; > } >@@ -211,11 +211,11 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou > WebServiceWorkerProvider::singleton().handleFetch(resourceLoader, sessionID, shouldClearReferrerOnHTTPSToHTTPRedirect, [this, trackingParameters, identifier, sessionID, shouldClearReferrerOnHTTPSToHTTPRedirect, maximumBufferingTime = maximumBufferingTime(resource), resourceLoader = makeRef(resourceLoader)] (ServiceWorkerClientFetch::Result result) mutable { > if (result != ServiceWorkerClientFetch::Result::Unhandled) { > LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be scheduled through ServiceWorker handle fetch algorithm", resourceLoader->url().string().latin1().data()); >- RELEASE_LOG_IF_ALLOWED(resourceLoader.get(), "scheduleLoad: URL will be scheduled through ServiceWorker handle fetch algorithm (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader->frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader.get(), "scheduleLoad: URL will be scheduled through ServiceWorker handle fetch algorithm (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader->frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > return; > } > if (resourceLoader->options().serviceWorkersMode == ServiceWorkersMode::Only) { >- RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader.get(), "scheduleLoad: unable to schedule URL through ServiceWorker handle fetch algorithm (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader->frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader.get(), "scheduleLoad: unable to schedule URL through ServiceWorker handle fetch algorithm (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader->frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > callOnMainThread([resourceLoader = WTFMove(resourceLoader)] { > auto error = internalError(resourceLoader->request().url()); > error.setType(ResourceError::Type::Cancellation); >@@ -227,13 +227,13 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou > if (!WebProcess::singleton().webLoaderStrategy().tryLoadingUsingURLSchemeHandler(resourceLoader)) > WebProcess::singleton().webLoaderStrategy().scheduleLoadFromNetworkProcess(resourceLoader.get(), resourceLoader->request(), trackingParameters, sessionID, shouldClearReferrerOnHTTPSToHTTPRedirect, maximumBufferingTime); > else >- RELEASE_LOG_IF_ALLOWED(resourceLoader.get(), "scheduleLoad: URL not handled by any handlers (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader->frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader.get(), "scheduleLoad: URL not handled by any handlers (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader->frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > }); > #else > if (!tryLoadingUsingURLSchemeHandler(resourceLoader)) > scheduleLoadFromNetworkProcess(resourceLoader, resourceLoader.request(), trackingParameters, sessionID, shouldClearReferrerOnHTTPSToHTTPRedirect, maximumBufferingTime(resource)); > else >- RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL not handled by any handlers (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID, trackingParameters.frameID, identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: URL not handled by any handlers (frame = %p, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID, identifier); > #endif > } > >@@ -325,7 +325,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL > if (loadParameters.options.mode != FetchOptions::Mode::Navigate) { > ASSERT(loadParameters.sourceOrigin); > if (!loadParameters.sourceOrigin) { >- RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader, "scheduleLoad: no sourceOrigin (frame = %p, priority = %d, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID, loadParameters.webFrameID, loadParameters.identifier); >+ RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader, "scheduleLoad: no sourceOrigin (frame = %p, priority = %d, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID.toUInt64(), loadParameters.webFrameID, loadParameters.identifier); > scheduleInternallyFailedLoad(resourceLoader); > return; > } >@@ -346,9 +346,9 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL > > ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == ClientCredentialPolicy::CannotAskClientForCredentials); > >- RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: Resource is being scheduled with the NetworkProcess (frame = %p, priority = %d, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID, loadParameters.webFrameID, loadParameters.identifier); >+ RELEASE_LOG_IF_ALLOWED(resourceLoader, "scheduleLoad: Resource is being scheduled with the NetworkProcess (frame = %p, priority = %d, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID.toUInt64(), loadParameters.webFrameID, loadParameters.identifier); > if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::ScheduleResourceLoad(loadParameters), 0)) { >- RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader, "scheduleLoad: Unable to schedule resource with the NetworkProcess (frame = %p, priority = %d, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID, loadParameters.webFrameID, loadParameters.identifier); >+ RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader, "scheduleLoad: Unable to schedule resource with the NetworkProcess (frame = %p, priority = %d, pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID.toUInt64(), loadParameters.webFrameID, loadParameters.identifier); > // We probably failed to schedule this load with the NetworkProcess because it had crashed. > // This load will never succeed so we will schedule it to fail asynchronously. > scheduleInternallyFailedLoad(resourceLoader); >@@ -507,19 +507,19 @@ void WebLoaderStrategy::loadResourceSynchronously(FrameLoader& frameLoader, unsi > WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient->webFrame() : nullptr; > WebPage* webPage = webFrame ? webFrame->page() : nullptr; > >- auto pageID = webPage ? webPage->pageID() : 0; >+ auto pageID = webPage ? webPage->pageID() : PageIdentifier { }; > auto frameID = webFrame ? webFrame->frameID() : 0; > auto sessionID = webPage ? webPage->sessionID() : PAL::SessionID::defaultSessionID(); > > auto* document = frameLoader.frame().document(); > if (!document) { >- RELEASE_LOG_ERROR_IF_ALLOWED(sessionID, "loadResourceSynchronously: no document (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %lu)", pageID, frameID, resourceLoadIdentifier); >+ RELEASE_LOG_ERROR_IF_ALLOWED(sessionID, "loadResourceSynchronously: no document (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %lu)", pageID.toUInt64(), frameID, resourceLoadIdentifier); > error = internalError(request.url()); > return; > } > > if (auto syncLoadResult = tryLoadingSynchronouslyUsingURLSchemeHandler(frameLoader, resourceLoadIdentifier, request)) { >- RELEASE_LOG_ERROR_IF_ALLOWED(sessionID, "loadResourceSynchronously: failed calling tryLoadingSynchronouslyUsingURLSchemeHandler (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %lu, error = %d)", pageID, frameID, resourceLoadIdentifier, syncLoadResult->error.errorCode()); >+ RELEASE_LOG_ERROR_IF_ALLOWED(sessionID, "loadResourceSynchronously: failed calling tryLoadingSynchronouslyUsingURLSchemeHandler (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %lu, error = %d)", pageID.toUInt64(), frameID, resourceLoadIdentifier, syncLoadResult->error.errorCode()); > error = WTFMove(syncLoadResult->error); > response = WTFMove(syncLoadResult->response); > data = WTFMove(syncLoadResult->data); >@@ -553,7 +553,7 @@ void WebLoaderStrategy::loadResourceSynchronously(FrameLoader& frameLoader, unsi > HangDetectionDisabler hangDetectionDisabler; > > if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad(loadParameters), Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::Reply(error, response, data), 0)) { >- RELEASE_LOG_ERROR_IF_ALLOWED(sessionID, "loadResourceSynchronously: failed sending synchronous network process message (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %lu)", pageID, frameID, resourceLoadIdentifier); >+ RELEASE_LOG_ERROR_IF_ALLOWED(sessionID, "loadResourceSynchronously: failed sending synchronous network process message (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %lu)", pageID.toUInt64(), frameID, resourceLoadIdentifier); > if (auto* page = webPage ? webPage->corePage() : nullptr) > page->diagnosticLoggingClient().logDiagnosticMessage(WebCore::DiagnosticLoggingKeys::internalErrorKey(), WebCore::DiagnosticLoggingKeys::synchronousMessageFailedKey(), WebCore::ShouldSample::No); > response = ResourceResponse(); >@@ -561,7 +561,7 @@ void WebLoaderStrategy::loadResourceSynchronously(FrameLoader& frameLoader, unsi > } > } > >-void WebLoaderStrategy::pageLoadCompleted(uint64_t webPageID) >+void WebLoaderStrategy::pageLoadCompleted(PageIdentifier webPageID) > { > WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::PageLoadCompleted(webPageID), 0); > } >@@ -648,10 +648,10 @@ void WebLoaderStrategy::preconnectTo(FrameLoader& frameLoader, const URL& url, S > > NetworkResourceLoadParameters parameters; > parameters.request = ResourceRequest { url }; >- parameters.webPageID = webPage ? webPage->pageID() : 0; >- parameters.webFrameID = webFrame ? webFrame->frameID() : 0; >+ parameters.webPageID = webPage->pageID(); >+ parameters.webFrameID = webFrame->frameID(); > parameters.parentPID = presentingApplicationPID(); >- parameters.sessionID = webPage ? webPage->sessionID() : PAL::SessionID::defaultSessionID(); >+ parameters.sessionID = webPage->sessionID(); > parameters.storedCredentialsPolicy = storedCredentialsPolicy; > parameters.shouldPreconnectOnly = PreconnectOnly::Yes; > parameters.shouldRestrictHTTPResponseAccess = shouldPerformSecurityChecks(); >diff --git a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h >index 4af59941e34f72ad26e81efb560606751811f8c6..ac524966a8521e0e3d65eb62b9f70e82f78cc217 100644 >--- a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h >+++ b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h >@@ -51,7 +51,7 @@ public: > > void loadResource(WebCore::Frame&, WebCore::CachedResource&, WebCore::ResourceRequest&&, const WebCore::ResourceLoaderOptions&, CompletionHandler<void(RefPtr<WebCore::SubresourceLoader>&&)>&&) final; > void loadResourceSynchronously(WebCore::FrameLoader&, unsigned long resourceLoadIdentifier, const WebCore::ResourceRequest&, WebCore::ClientCredentialPolicy, const WebCore::FetchOptions&, const WebCore::HTTPHeaderMap&, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>& data) final; >- void pageLoadCompleted(uint64_t webPageID) final; >+ void pageLoadCompleted(WebCore::PageIdentifier) final; > > void remove(WebCore::ResourceLoader*) final; > void setDefersLoading(WebCore::ResourceLoader&, bool) final; >diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp >index bf88fda3007e164ff38a9522abb81fefd7e9f852..88bd53bf1f8fb736eb173ef64f1e303d1bb100c1 100644 >--- a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp >+++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp >@@ -88,16 +88,16 @@ void WebResourceLoader::willSendRequest(ResourceRequest&& proposedRequest, Resou > Ref<WebResourceLoader> protectedThis(*this); > > LOG(Network, "(WebProcess) WebResourceLoader::willSendRequest to '%s'", proposedRequest.url().string().latin1().data()); >- RELEASE_LOG_IF_ALLOWED("willSendRequest: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("willSendRequest: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > > if (m_coreLoader->documentLoader()->applicationCacheHost().maybeLoadFallbackForRedirect(m_coreLoader.get(), proposedRequest, redirectResponse)) { >- RELEASE_LOG_IF_ALLOWED("willSendRequest: exiting early because maybeLoadFallbackForRedirect returned false (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("willSendRequest: exiting early because maybeLoadFallbackForRedirect returned false (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > return; > } > > m_coreLoader->willSendRequest(WTFMove(proposedRequest), redirectResponse, [this, protectedThis = WTFMove(protectedThis)](ResourceRequest&& request) { > if (!m_coreLoader || !m_coreLoader->identifier()) { >- RELEASE_LOG_IF_ALLOWED("willSendRequest: exiting early because no coreloader or identifier (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("willSendRequest: exiting early because no coreloader or identifier (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > return; > } > >@@ -113,12 +113,12 @@ void WebResourceLoader::didSendData(uint64_t bytesSent, uint64_t totalBytesToBeS > void WebResourceLoader::didReceiveResponse(const ResourceResponse& response, bool needsContinueDidReceiveResponseMessage) > { > LOG(Network, "(WebProcess) WebResourceLoader::didReceiveResponse for '%s'. Status %d.", m_coreLoader->url().string().latin1().data(), response.httpStatusCode()); >- RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", status = %d)", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID, response.httpStatusCode()); >+ RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", status = %d)", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID, response.httpStatusCode()); > > Ref<WebResourceLoader> protectedThis(*this); > > if (m_coreLoader->documentLoader()->applicationCacheHost().maybeLoadFallbackForResponse(m_coreLoader.get(), response)) { >- RELEASE_LOG_IF_ALLOWED("didReceiveResponse: not continuing load because the content is already cached (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("didReceiveResponse: not continuing load because the content is already cached (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > return; > } > >@@ -135,7 +135,7 @@ void WebResourceLoader::didReceiveResponse(const ResourceResponse& response, boo > if (m_coreLoader && m_coreLoader->identifier()) > send(Messages::NetworkResourceLoader::ContinueDidReceiveResponse()); > else >- RELEASE_LOG_IF_ALLOWED("didReceiveResponse: not continuing load because no coreLoader or no ID (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("didReceiveResponse: not continuing load because no coreLoader or no ID (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > }; > } > >@@ -148,7 +148,7 @@ void WebResourceLoader::didReceiveData(const IPC::DataReference& data, int64_t e > ASSERT_WITH_MESSAGE(!m_isProcessingNetworkResponse, "Network process should not send data until we've validated the response"); > > if (!m_numBytesReceived) { >- RELEASE_LOG_IF_ALLOWED("didReceiveData: Started receiving data (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("didReceiveData: Started receiving data (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > } > m_numBytesReceived += data.size(); > >@@ -158,7 +158,7 @@ void WebResourceLoader::didReceiveData(const IPC::DataReference& data, int64_t e > void WebResourceLoader::didFinishResourceLoad(const NetworkLoadMetrics& networkLoadMetrics) > { > LOG(Network, "(WebProcess) WebResourceLoader::didFinishResourceLoad for '%s'", m_coreLoader->url().string().latin1().data()); >- RELEASE_LOG_IF_ALLOWED("didFinishResourceLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", length = %zd)", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID, m_numBytesReceived); >+ RELEASE_LOG_IF_ALLOWED("didFinishResourceLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", length = %zd)", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID, m_numBytesReceived); > > ASSERT_WITH_MESSAGE(!m_isProcessingNetworkResponse, "Load should not be able to finish before we've validated the response"); > m_coreLoader->didFinishLoading(networkLoadMetrics); >@@ -167,7 +167,7 @@ void WebResourceLoader::didFinishResourceLoad(const NetworkLoadMetrics& networkL > void WebResourceLoader::didFailResourceLoad(const ResourceError& error) > { > LOG(Network, "(WebProcess) WebResourceLoader::didFailResourceLoad for '%s'", m_coreLoader->url().string().latin1().data()); >- RELEASE_LOG_IF_ALLOWED("didFailResourceLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("didFailResourceLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > > ASSERT_WITH_MESSAGE(!m_isProcessingNetworkResponse, "Load should not be able to finish before we've validated the response"); > >@@ -179,7 +179,7 @@ void WebResourceLoader::didFailResourceLoad(const ResourceError& error) > void WebResourceLoader::didBlockAuthenticationChallenge() > { > LOG(Network, "(WebProcess) WebResourceLoader::didBlockAuthenticationChallenge for '%s'", m_coreLoader->url().string().latin1().data()); >- RELEASE_LOG_IF_ALLOWED("didBlockAuthenticationChallenge: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("didBlockAuthenticationChallenge: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > > m_coreLoader->didBlockAuthenticationChallenge(); > } >@@ -187,7 +187,7 @@ void WebResourceLoader::didBlockAuthenticationChallenge() > void WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied(const ResourceResponse& response) > { > LOG(Network, "(WebProcess) WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied for '%s'", m_coreLoader->url().string().latin1().data()); >- RELEASE_LOG_IF_ALLOWED("stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > > m_coreLoader->documentLoader()->stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied(m_coreLoader->identifier(), response); > } >@@ -196,13 +196,13 @@ void WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDeni > void WebResourceLoader::didReceiveResource(const ShareableResource::Handle& handle) > { > LOG(Network, "(WebProcess) WebResourceLoader::didReceiveResource for '%s'", m_coreLoader->url().string().latin1().data()); >- RELEASE_LOG_IF_ALLOWED("didReceiveResource: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("didReceiveResource: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > > RefPtr<SharedBuffer> buffer = handle.tryWrapInSharedBuffer(); > > if (!buffer) { > LOG_ERROR("Unable to create buffer from ShareableResource sent from the network process."); >- RELEASE_LOG_IF_ALLOWED("didReceiveResource: Unable to create SharedBuffer (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); >+ RELEASE_LOG_IF_ALLOWED("didReceiveResource: Unable to create SharedBuffer (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID.toUInt64(), m_trackingParameters.frameID, m_trackingParameters.resourceID); > if (auto* frame = m_coreLoader->frame()) { > if (auto* page = frame->page()) > page->diagnosticLoggingClient().logDiagnosticMessage(WebCore::DiagnosticLoggingKeys::internalErrorKey(), WebCore::DiagnosticLoggingKeys::createSharedBufferFailedKey(), WebCore::ShouldSample::No); >diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.h b/Source/WebKit/WebProcess/Network/WebResourceLoader.h >index 7fd7832233a362c23a904fc15ef34ca64a967eae..586543718e5e8388b8b41ab02037ac76e786937c 100644 >--- a/Source/WebKit/WebProcess/Network/WebResourceLoader.h >+++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.h >@@ -28,6 +28,7 @@ > #include "Connection.h" > #include "MessageSender.h" > #include "ShareableResource.h" >+#include <WebCore/PageIdentifier.h> > #include <wtf/RefCounted.h> > #include <wtf/RefPtr.h> > >@@ -50,7 +51,7 @@ typedef uint64_t ResourceLoadIdentifier; > class WebResourceLoader : public RefCounted<WebResourceLoader>, public IPC::MessageSender { > public: > struct TrackingParameters { >- uint64_t pageID { 0 }; >+ WebCore::PageIdentifier pageID; > uint64_t frameID { 0 }; > ResourceLoadIdentifier resourceID { 0 }; > }; >diff --git a/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp b/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp >index 34b5a643f03bda61fda4b33d887b5d1db89dc607..adc476652e807b236acc11654a5fc1715735c915 100644 >--- a/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp >+++ b/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp >@@ -73,7 +73,7 @@ static const Seconds syncWorkerTerminationTimeout { 100_ms }; // Only used by la > > class ServiceWorkerFrameLoaderClient final : public EmptyFrameLoaderClient { > public: >- ServiceWorkerFrameLoaderClient(WebSWContextManagerConnection& connection, PAL::SessionID sessionID, uint64_t pageID, uint64_t frameID, const String& userAgent) >+ ServiceWorkerFrameLoaderClient(WebSWContextManagerConnection& connection, PAL::SessionID sessionID, WebCore::PageIdentifier pageID, uint64_t frameID, const String& userAgent) > : m_connection(connection) > , m_sessionID(sessionID) > , m_pageID(pageID) >@@ -95,18 +95,18 @@ private: > bool shouldUseCredentialStorage(DocumentLoader*, unsigned long) final { return true; } > > PAL::SessionID sessionID() const final { return m_sessionID; } >- Optional<uint64_t> pageID() const final { return m_pageID; } >+ Optional<WebCore::PageIdentifier> pageID() const final { return m_pageID; } > Optional<uint64_t> frameID() const final { return m_frameID; } > String userAgent(const URL&) final { return m_userAgent; } > > WebSWContextManagerConnection& m_connection; > PAL::SessionID m_sessionID; >- uint64_t m_pageID { 0 }; >+ WebCore::PageIdentifier m_pageID; > uint64_t m_frameID { 0 }; > String m_userAgent; > }; > >-WebSWContextManagerConnection::WebSWContextManagerConnection(Ref<IPC::Connection>&& connection, uint64_t pageGroupID, uint64_t pageID, const WebPreferencesStore& store) >+WebSWContextManagerConnection::WebSWContextManagerConnection(Ref<IPC::Connection>&& connection, uint64_t pageGroupID, PageIdentifier pageID, const WebPreferencesStore& store) > : m_connectionToNetworkProcess(WTFMove(connection)) > , m_pageGroupID(pageGroupID) > , m_pageID(pageID) >@@ -226,12 +226,12 @@ void WebSWContextManagerConnection::startFetch(SWServerConnectionIdentifier serv > { > auto* serviceWorkerThreadProxy = SWContextManager::singleton().serviceWorkerThreadProxy(serviceWorkerIdentifier); > if (!serviceWorkerThreadProxy) { >- m_connectionToNetworkProcess->send(Messages::ServiceWorkerFetchTask::DidNotHandle { }, fetchIdentifier.toUInt64()); >+ m_connectionToNetworkProcess->send(Messages::ServiceWorkerFetchTask::DidNotHandle { }, fetchIdentifier); > return; > } > > if (!isValidFetch(request, options, serviceWorkerThreadProxy->scriptURL(), referrer)) { >- m_connectionToNetworkProcess->send(Messages::ServiceWorkerFetchTask::DidNotHandle { }, fetchIdentifier.toUInt64()); >+ m_connectionToNetworkProcess->send(Messages::ServiceWorkerFetchTask::DidNotHandle { }, fetchIdentifier); > return; > } > >diff --git a/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h b/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h >index 6ce83d1d09eaedcae4fe873f18ec52b59e4fa172..fbb630e4e19b359dc170ccea018a49832166dafe 100644 >--- a/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h >+++ b/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h >@@ -51,7 +51,7 @@ struct WebPreferencesStore; > > class WebSWContextManagerConnection final : public WebCore::SWContextManager::Connection, public IPC::MessageReceiver { > public: >- WebSWContextManagerConnection(Ref<IPC::Connection>&&, uint64_t pageGroupID, uint64_t pageID, const WebPreferencesStore&); >+ WebSWContextManagerConnection(Ref<IPC::Connection>&&, uint64_t pageGroupID, WebCore::PageIdentifier, const WebPreferencesStore&); > ~WebSWContextManagerConnection(); > > void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final; >@@ -96,7 +96,7 @@ private: > > Ref<IPC::Connection> m_connectionToNetworkProcess; > uint64_t m_pageGroupID; >- uint64_t m_pageID { 0 }; >+ WebCore::PageIdentifier m_pageID; > uint64_t m_previousServiceWorkerID { 0 }; > > WebCore::SecurityOrigin::StorageBlockingPolicy m_storageBlockingPolicy { WebCore::SecurityOrigin::StorageBlockingPolicy::AllowAllStorage }; >diff --git a/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp b/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp >index 8aebaff96221e986337c3d23e040f05b4755a756..2644c9c1d12b6cd01d56699d132bc2ef4c636a19 100644 >--- a/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp >+++ b/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp >@@ -55,7 +55,7 @@ void WebServiceWorkerFetchTaskClient::didReceiveRedirection(const WebCore::Resou > { > if (!m_connection) > return; >- m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveRedirectResponse { response }, m_fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveRedirectResponse { response }, m_fetchIdentifier); > > cleanup(); > } >@@ -68,7 +68,7 @@ void WebServiceWorkerFetchTaskClient::didReceiveResponse(const ResourceResponse& > if (m_needsContinueDidReceiveResponseMessage) > m_waitingForContinueDidReceiveResponseMessage = true; > >- m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveResponse { response, m_needsContinueDidReceiveResponseMessage }, m_fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveResponse { response, m_needsContinueDidReceiveResponseMessage }, m_fetchIdentifier); > } > > void WebServiceWorkerFetchTaskClient::didReceiveData(Ref<SharedBuffer>&& buffer) >@@ -84,7 +84,7 @@ void WebServiceWorkerFetchTaskClient::didReceiveData(Ref<SharedBuffer>&& buffer) > return; > } > >- m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveData { { buffer }, static_cast<int64_t>(buffer->size()) }, m_fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveData { { buffer }, static_cast<int64_t>(buffer->size()) }, m_fetchIdentifier); > } > > void WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish(Ref<FormData>&& formData) >@@ -101,7 +101,7 @@ void WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish(Ref<FormData>& > // For now and for the case of blobs, we read it there and send the data through IPC. > URL blobURL = formData->asBlobURL(); > if (blobURL.isNull()) { >- m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveFormData { IPC::FormDataReference { WTFMove(formData) } }, m_fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveFormData { IPC::FormDataReference { WTFMove(formData) } }, m_fetchIdentifier); > return; > } > >@@ -129,7 +129,7 @@ void WebServiceWorkerFetchTaskClient::didReceiveBlobChunk(const char* data, size > if (!m_connection) > return; > >- m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveData { { reinterpret_cast<const uint8_t*>(data), size }, static_cast<int64_t>(size) }, m_fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerFetchTask::DidReceiveData { { reinterpret_cast<const uint8_t*>(data), size }, static_cast<int64_t>(size) }, m_fetchIdentifier); > } > > void WebServiceWorkerFetchTaskClient::didFinishBlobLoading() >@@ -149,7 +149,7 @@ void WebServiceWorkerFetchTaskClient::didFail(const ResourceError& error) > return; > } > >- m_connection->send(Messages::ServiceWorkerFetchTask::DidFail { error }, m_fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerFetchTask::DidFail { error }, m_fetchIdentifier); > > cleanup(); > } >@@ -164,7 +164,7 @@ void WebServiceWorkerFetchTaskClient::didFinish() > return; > } > >- m_connection->send(Messages::ServiceWorkerFetchTask::DidFinish { }, m_fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerFetchTask::DidFinish { }, m_fetchIdentifier); > > cleanup(); > } >@@ -174,7 +174,7 @@ void WebServiceWorkerFetchTaskClient::didNotHandle() > if (!m_connection) > return; > >- m_connection->send(Messages::ServiceWorkerFetchTask::DidNotHandle { }, m_fetchIdentifier.toUInt64()); >+ m_connection->send(Messages::ServiceWorkerFetchTask::DidNotHandle { }, m_fetchIdentifier); > > cleanup(); > } >diff --git a/Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp b/Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp >index 4933ca4c3a0672cac30f7795190d258521c0cf02..2b28864a9aa098442d61532c640f5b93a859980a 100644 >--- a/Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp >+++ b/Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp >@@ -82,14 +82,14 @@ Ref<WebUserContentController> WebUserContentController::getOrCreate(UserContentC > WebUserContentController::WebUserContentController(UserContentControllerIdentifier identifier) > : m_identifier(identifier) > { >- WebProcess::singleton().addMessageReceiver(Messages::WebUserContentController::messageReceiverName(), m_identifier.toUInt64(), *this); >+ WebProcess::singleton().addMessageReceiver(Messages::WebUserContentController::messageReceiverName(), m_identifier, *this); > } > > WebUserContentController::~WebUserContentController() > { > ASSERT(userContentControllers().contains(m_identifier)); > >- WebProcess::singleton().removeMessageReceiver(Messages::WebUserContentController::messageReceiverName(), m_identifier.toUInt64()); >+ WebProcess::singleton().removeMessageReceiver(Messages::WebUserContentController::messageReceiverName(), m_identifier); > > userContentControllers().remove(m_identifier); > } >@@ -252,7 +252,7 @@ private: > if (!webPage) > return; > >- WebProcess::singleton().parentProcessConnection()->send(Messages::WebUserContentControllerProxy::DidPostMessage(webPage->pageID(), webFrame->info(), m_identifier, IPC::DataReference(value->data())), m_controller->identifier().toUInt64()); >+ WebProcess::singleton().parentProcessConnection()->send(Messages::WebUserContentControllerProxy::DidPostMessage(webPage->pageID(), webFrame->info(), m_identifier, IPC::DataReference(value->data())), m_controller->identifier()); > } > > RefPtr<WebUserContentController> m_controller; >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp >index 2726c23d2a4f484510ab018322e7d90279b14f67..81410192a7166bfc250cc9a207a7af04af71029a 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp >+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp >@@ -288,7 +288,7 @@ Page* WebChromeClient::createWindow(Frame& frame, const FrameLoadRequest& reques > > WebFrame* webFrame = WebFrame::fromCoreFrame(frame); > >- uint64_t newPageID = 0; >+ Optional<PageIdentifier> newPageID; > Optional<WebPageCreationParameters> parameters; > if (!webProcess.parentProcessConnection()->sendSync(Messages::WebPageProxy::CreateNewPage(webFrame->info(), webFrame->page()->pageID(), request.resourceRequest(), windowFeatures, navigationActionData), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page.pageID())) > return nullptr; >@@ -299,8 +299,8 @@ Page* WebChromeClient::createWindow(Frame& frame, const FrameLoadRequest& reques > if (parameters->sessionID == m_page.sessionID()) > parameters->oldPageID = m_page.pageID(); > >- webProcess.createWebPage(newPageID, WTFMove(*parameters)); >- return webProcess.webPage(newPageID)->corePage(); >+ webProcess.createWebPage(*newPageID, WTFMove(*parameters)); >+ return webProcess.webPage(*newPageID)->corePage(); > } > > void WebChromeClient::show() >@@ -1322,12 +1322,12 @@ void WebChromeClient::didInvalidateDocumentMarkerRects() > } > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >-void WebChromeClient::hasStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, uint64_t frameID, uint64_t, CompletionHandler<void(bool)>&& completionHandler) >+void WebChromeClient::hasStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, uint64_t frameID, PageIdentifier, CompletionHandler<void(bool)>&& completionHandler) > { > m_page.hasStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID, WTFMove(completionHandler)); > } > >-void WebChromeClient::requestStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, uint64_t frameID, uint64_t, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) >+void WebChromeClient::requestStorageAccess(RegistrableDomain&& subFrameDomain, RegistrableDomain&& topFrameDomain, uint64_t frameID, PageIdentifier, CompletionHandler<void(StorageAccessWasGranted, StorageAccessPromptWasShown)>&& completionHandler) > { > m_page.requestStorageAccess(WTFMove(subFrameDomain), WTFMove(topFrameDomain), frameID, WTFMove(completionHandler)); > } >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h >index b289fb23fe41abbbca1ce172ce8a4f25accd5ec0..314451b4029d8a9289fca875f185ee58886b0bbd 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h >+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h >@@ -372,8 +372,8 @@ private: > void didInvalidateDocumentMarkerRects() final; > > #if ENABLE(RESOURCE_LOAD_STATISTICS) >- void hasStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, uint64_t frameID, uint64_t pageID, WTF::CompletionHandler<void(bool)>&&) final; >- void requestStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, uint64_t frameID, uint64_t pageID, WTF::CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&&) final; >+ void hasStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, uint64_t frameID, WebCore::PageIdentifier, WTF::CompletionHandler<void(bool)>&&) final; >+ void requestStorageAccess(WebCore::RegistrableDomain&& subFrameDomain, WebCore::RegistrableDomain&& topFrameDomain, uint64_t frameID, WebCore::PageIdentifier, WTF::CompletionHandler<void(WebCore::StorageAccessWasGranted, WebCore::StorageAccessPromptWasShown)>&&) final; > #endif > > #if ENABLE(DEVICE_ORIENTATION) >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp >index f428fd2397eddd4d2411770323eb3fa27902d85f..7052025b9dcf92414cb6e4842dafa748c0e1f749 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp >+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp >@@ -309,7 +309,7 @@ void WebEditorClient::registerUndoStep(UndoStep& step) > auto stepID = webStep->stepID(); > > m_page->addWebUndoStep(stepID, WTFMove(webStep)); >- m_page->send(Messages::WebPageProxy::RegisterEditCommandForUndo(stepID, step.label()), m_page->pageID(), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply); >+ m_page->send(Messages::WebPageProxy::RegisterEditCommandForUndo(stepID, step.label()), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply); > } > > void WebEditorClient::registerRedoStep(UndoStep&) >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp >index 529c04670301b350b132518354a9e5a855b9c48d..3dcd7e2ec199817d7495ed0a836253643661cdf7 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp >+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp >@@ -112,7 +112,7 @@ WebFrameLoaderClient::~WebFrameLoaderClient() > { > } > >-Optional<uint64_t> WebFrameLoaderClient::pageID() const >+Optional<PageIdentifier> WebFrameLoaderClient::pageID() const > { > if (m_frame && m_frame->page()) > return m_frame->page()->pageID(); >@@ -541,7 +541,7 @@ void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& e > if (!webPage) > return; > >- RELEASE_LOG(Network, "%p - WebFrameLoaderClient::dispatchDidFailProvisionalLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ")", this, webPage->pageID(), m_frame->frameID()); >+ RELEASE_LOG(Network, "%p - WebFrameLoaderClient::dispatchDidFailProvisionalLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ")", this, webPage->pageID().toUInt64(), m_frame->frameID()); > > RefPtr<API::Object> userData; > >@@ -577,7 +577,7 @@ void WebFrameLoaderClient::dispatchDidFailLoad(const ResourceError& error) > if (!webPage) > return; > >- RELEASE_LOG(Network, "%p - WebFrameLoaderClient::dispatchDidFailLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ")", this, webPage->pageID(), m_frame->frameID()); >+ RELEASE_LOG(Network, "%p - WebFrameLoaderClient::dispatchDidFailLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ")", this, webPage->pageID().toUInt64(), m_frame->frameID()); > > RefPtr<API::Object> userData; > >@@ -901,7 +901,9 @@ void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(const Navigat > if (requester.frameID() && WebProcess::singleton().webFrame(requester.frameID())) > originatingFrameInfoData.frameID = requester.frameID(); > >- uint64_t originatingPageID = requester.pageID() && WebProcess::singleton().webPage(requester.pageID()) ? requester.pageID() : 0; >+ Optional<PageIdentifier> originatingPageID; >+ if (requester.pageID() && WebProcess::singleton().webPage(requester.pageID())) >+ originatingPageID = requester.pageID(); > > NavigationActionData navigationActionData; > navigationActionData.navigationType = action->navigationType(); >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h >index f73ab8ca73f178bf268ff2b841c451cdd498faa3..c8fb2af212566c64686077a0c89af8105390a680 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h >+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h >@@ -51,7 +51,7 @@ public: > > void applyToDocumentLoader(WebsitePoliciesData&&); > >- Optional<uint64_t> pageID() const final; >+ Optional<WebCore::PageIdentifier> pageID() const final; > Optional<uint64_t> frameID() const final; > PAL::SessionID sessionID() const final; > >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp >index e1e93a6de3467ef140945346d8db4fdd27386703..9e46d8073b380e42554bec5f444813f4e6f936c9 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp >+++ b/Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp >@@ -37,14 +37,14 @@ > > namespace WebKit { > >-using PasswordCallbackMap = HashMap<uint64_t, Function<void(const String&)>>; >+using PasswordCallbackMap = HashMap<WebCore::PageIdentifier, Function<void(const String&)>>; > static PasswordCallbackMap& passwordCallbacks() > { > static NeverDestroyed<PasswordCallbackMap> callbackMap; > return callbackMap.get(); > } > >-WebPreviewLoaderClient::WebPreviewLoaderClient(const String& fileName, const String& uti, uint64_t pageID) >+WebPreviewLoaderClient::WebPreviewLoaderClient(const String& fileName, const String& uti, WebCore::PageIdentifier pageID) > : m_fileName { fileName } > , m_uti { uti } > , m_pageID { pageID } >@@ -85,7 +85,7 @@ void WebPreviewLoaderClient::didRequestPassword(Function<void(const String&)>&& > WebProcess::singleton().send(Messages::WebPageProxy::DidRequestPasswordForQuickLookDocumentInMainFrame(m_fileName), m_pageID); > } > >-void WebPreviewLoaderClient::didReceivePassword(const String& password, uint64_t pageID) >+void WebPreviewLoaderClient::didReceivePassword(const String& password, WebCore::PageIdentifier pageID) > { > ASSERT(passwordCallbacks().contains(pageID)); > auto completionHandler = passwordCallbacks().take(pageID); >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h b/Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h >index f9986e41ca2f251db2c3e5d88e08df50685404e8..be887ad8a7f0b657d1fa451d1833cf1cd44b5375 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h >+++ b/Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h >@@ -35,16 +35,16 @@ class WebFrame; > > class WebPreviewLoaderClient final : public WebCore::PreviewLoaderClient { > public: >- static Ref<WebPreviewLoaderClient> create(const String& fileName, const String& uti, uint64_t pageID) >+ static Ref<WebPreviewLoaderClient> create(const String& fileName, const String& uti, WebCore::PageIdentifier pageID) > { > return adoptRef(*new WebPreviewLoaderClient(fileName, uti, pageID)); > } > ~WebPreviewLoaderClient(); > >- static void didReceivePassword(const String&, uint64_t pageID); >+ static void didReceivePassword(const String&, WebCore::PageIdentifier); > > private: >- WebPreviewLoaderClient(const String& fileName, const String& uti, uint64_t pageID); >+ WebPreviewLoaderClient(const String& fileName, const String& uti, WebCore::PageIdentifier); > void didReceiveDataArray(CFArrayRef) override; > void didFinishLoading() override; > void didFail() override; >@@ -53,7 +53,7 @@ private: > > const String m_fileName; > const String m_uti; >- const uint64_t m_pageID; >+ const WebCore::PageIdentifier m_pageID; > QuickLookDocumentData m_data; > }; > >diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp >index 276b80bf28f1f5fd49a6f0fb499d33512adc1010..c07396f02f1fa65f45acee72f134f4fb2d9e8909 100644 >--- a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp >+++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp >@@ -68,7 +68,7 @@ DrawingArea::DrawingArea(DrawingAreaType type, DrawingAreaIdentifier identifier, > , m_identifier(identifier) > , m_webPage(webPage) > { >- WebProcess::singleton().addMessageReceiver(Messages::DrawingArea::messageReceiverName(), m_identifier.toUInt64(), *this); >+ WebProcess::singleton().addMessageReceiver(Messages::DrawingArea::messageReceiverName(), m_identifier, *this); > } > > DrawingArea::~DrawingArea() >@@ -94,7 +94,7 @@ void DrawingArea::removeMessageReceiverIfNeeded() > if (m_hasRemovedMessageReceiver) > return; > m_hasRemovedMessageReceiver = true; >- WebProcess::singleton().removeMessageReceiver(Messages::DrawingArea::messageReceiverName(), m_identifier.toUInt64()); >+ WebProcess::singleton().removeMessageReceiver(Messages::DrawingArea::messageReceiverName(), m_identifier); > } > > } // namespace WebKit >diff --git a/Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp b/Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp >index 691830b593c67ad33d77a0e68c547a631c5ab6d7..cac188b34a2b7540242907c05c39f8233771e0a8 100644 >--- a/Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp >+++ b/Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp >@@ -87,7 +87,7 @@ void EventDispatcher::initializeConnection(IPC::Connection* connection) > connection->addWorkQueueMessageReceiver(Messages::EventDispatcher::messageReceiverName(), m_queue.get(), this); > } > >-void EventDispatcher::wheelEvent(uint64_t pageID, const WebWheelEvent& wheelEvent, bool canRubberBandAtLeft, bool canRubberBandAtRight, bool canRubberBandAtTop, bool canRubberBandAtBottom) >+void EventDispatcher::wheelEvent(PageIdentifier pageID, const WebWheelEvent& wheelEvent, bool canRubberBandAtLeft, bool canRubberBandAtRight, bool canRubberBandAtTop, bool canRubberBandAtBottom) > { > #if PLATFORM(COCOA) || ENABLE(ASYNC_SCROLLING) > PlatformWheelEvent platformWheelEvent = platform(wheelEvent); >@@ -142,7 +142,7 @@ void EventDispatcher::wheelEvent(uint64_t pageID, const WebWheelEvent& wheelEven > } > > #if ENABLE(MAC_GESTURE_EVENTS) >-void EventDispatcher::gestureEvent(uint64_t pageID, const WebKit::WebGestureEvent& gestureEvent) >+void EventDispatcher::gestureEvent(PageIdentifier pageID, const WebKit::WebGestureEvent& gestureEvent) > { > RunLoop::main().dispatch([protectedThis = makeRef(*this), pageID, gestureEvent]() mutable { > protectedThis->dispatchGestureEvent(pageID, gestureEvent); >@@ -163,7 +163,7 @@ void EventDispatcher::getQueuedTouchEventsForPage(const WebPage& webPage, TouchE > destinationQueue = m_touchEvents.take(webPage.pageID()); > } > >-void EventDispatcher::touchEvent(uint64_t pageID, const WebKit::WebTouchEvent& touchEvent) >+void EventDispatcher::touchEvent(PageIdentifier pageID, const WebKit::WebTouchEvent& touchEvent) > { > bool updateListWasEmpty; > { >@@ -194,7 +194,7 @@ void EventDispatcher::touchEvent(uint64_t pageID, const WebKit::WebTouchEvent& t > > void EventDispatcher::dispatchTouchEvents() > { >- HashMap<uint64_t, TouchEventQueue> localCopy; >+ HashMap<PageIdentifier, TouchEventQueue> localCopy; > { > LockHolder locker(&m_touchEventsLock); > localCopy.swap(m_touchEvents); >@@ -207,7 +207,7 @@ void EventDispatcher::dispatchTouchEvents() > } > #endif > >-void EventDispatcher::dispatchWheelEvent(uint64_t pageID, const WebWheelEvent& wheelEvent) >+void EventDispatcher::dispatchWheelEvent(PageIdentifier pageID, const WebWheelEvent& wheelEvent) > { > ASSERT(RunLoop::isMain()); > >@@ -219,7 +219,7 @@ void EventDispatcher::dispatchWheelEvent(uint64_t pageID, const WebWheelEvent& w > } > > #if ENABLE(MAC_GESTURE_EVENTS) >-void EventDispatcher::dispatchGestureEvent(uint64_t pageID, const WebGestureEvent& gestureEvent) >+void EventDispatcher::dispatchGestureEvent(PageIdentifier pageID, const WebGestureEvent& gestureEvent) > { > ASSERT(RunLoop::isMain()); > >@@ -232,7 +232,7 @@ void EventDispatcher::dispatchGestureEvent(uint64_t pageID, const WebGestureEven > #endif > > #if ENABLE(ASYNC_SCROLLING) >-void EventDispatcher::sendDidReceiveEvent(uint64_t pageID, const WebEvent& event, bool didHandleEvent) >+void EventDispatcher::sendDidReceiveEvent(PageIdentifier pageID, const WebEvent& event, bool didHandleEvent) > { > WebProcess::singleton().parentProcessConnection()->send(Messages::WebPageProxy::DidReceiveEvent(static_cast<uint32_t>(event.type()), didHandleEvent), pageID); > } >diff --git a/Source/WebKit/WebProcess/WebPage/EventDispatcher.h b/Source/WebKit/WebProcess/WebPage/EventDispatcher.h >index 1d477877eaae404526a07451c07186997a550e54..e1bbbd47969bfbb752c61d21c61a29eefad962f2 100644 >--- a/Source/WebKit/WebProcess/WebPage/EventDispatcher.h >+++ b/Source/WebKit/WebProcess/WebPage/EventDispatcher.h >@@ -29,6 +29,7 @@ > #include "Connection.h" > > #include "WebEvent.h" >+#include <WebCore/PageIdentifier.h> > #include <WebCore/WheelEventDeltaFilter.h> > #include <memory> > #include <wtf/HashMap.h> >@@ -77,38 +78,38 @@ private: > void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override; > > // Message handlers >- void wheelEvent(uint64_t pageID, const WebWheelEvent&, bool canRubberBandAtLeft, bool canRubberBandAtRight, bool canRubberBandAtTop, bool canRubberBandAtBottom); >+ void wheelEvent(WebCore::PageIdentifier, const WebWheelEvent&, bool canRubberBandAtLeft, bool canRubberBandAtRight, bool canRubberBandAtTop, bool canRubberBandAtBottom); > #if ENABLE(IOS_TOUCH_EVENTS) >- void touchEvent(uint64_t pageID, const WebTouchEvent&); >+ void touchEvent(WebCore::PageIdentifier, const WebTouchEvent&); > #endif > #if ENABLE(MAC_GESTURE_EVENTS) >- void gestureEvent(uint64_t pageID, const WebGestureEvent&); >+ void gestureEvent(WebCore::PageIdentifier, const WebGestureEvent&); > #endif > > > // This is called on the main thread. >- void dispatchWheelEvent(uint64_t pageID, const WebWheelEvent&); >+ void dispatchWheelEvent(WebCore::PageIdentifier, const WebWheelEvent&); > #if ENABLE(IOS_TOUCH_EVENTS) > void dispatchTouchEvents(); > #endif > #if ENABLE(MAC_GESTURE_EVENTS) >- void dispatchGestureEvent(uint64_t pageID, const WebGestureEvent&); >+ void dispatchGestureEvent(WebCore::PageIdentifier, const WebGestureEvent&); > #endif > > #if ENABLE(ASYNC_SCROLLING) >- void sendDidReceiveEvent(uint64_t pageID, const WebEvent&, bool didHandleEvent); >+ void sendDidReceiveEvent(WebCore::PageIdentifier, const WebEvent&, bool didHandleEvent); > #endif > > Ref<WorkQueue> m_queue; > > #if ENABLE(ASYNC_SCROLLING) > Lock m_scrollingTreesMutex; >- HashMap<uint64_t, RefPtr<WebCore::ThreadedScrollingTree>> m_scrollingTrees; >+ HashMap<WebCore::PageIdentifier, RefPtr<WebCore::ThreadedScrollingTree>> m_scrollingTrees; > #endif > std::unique_ptr<WebCore::WheelEventDeltaFilter> m_recentWheelEventDeltaFilter; > #if ENABLE(IOS_TOUCH_EVENTS) > Lock m_touchEventsLock; >- HashMap<uint64_t, TouchEventQueue> m_touchEvents; >+ HashMap<WebCore::PageIdentifier, TouchEventQueue> m_touchEvents; > #endif > }; > >diff --git a/Source/WebKit/WebProcess/WebPage/EventDispatcher.messages.in b/Source/WebKit/WebProcess/WebPage/EventDispatcher.messages.in >index 5e1543c98ccfa41401c27538c6299f9a580f367b..af904b4516a10980854c1a344e6122cfd7164b84 100644 >--- a/Source/WebKit/WebProcess/WebPage/EventDispatcher.messages.in >+++ b/Source/WebKit/WebProcess/WebPage/EventDispatcher.messages.in >@@ -21,11 +21,11 @@ > # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > messages -> EventDispatcher { >- WheelEvent(uint64_t pageID, WebKit::WebWheelEvent event, bool canRubberBandAtLeft, bool canRubberBandAtRight, bool canRubberBandAtTop, bool canRubberBandAtBottom) >+ WheelEvent(WebCore::PageIdentifier pageID, WebKit::WebWheelEvent event, bool canRubberBandAtLeft, bool canRubberBandAtRight, bool canRubberBandAtTop, bool canRubberBandAtBottom) > #if ENABLE(IOS_TOUCH_EVENTS) >- TouchEvent(uint64_t pageID, WebKit::WebTouchEvent event) >+ TouchEvent(WebCore::PageIdentifier pageID, WebKit::WebTouchEvent event) > #endif > #if ENABLE(MAC_GESTURE_EVENTS) >- GestureEvent(uint64_t pageID, WebKit::WebGestureEvent event) >+ GestureEvent(WebCore::PageIdentifier pageID, WebKit::WebGestureEvent event) > #endif > } >diff --git a/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm b/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm >index b752c1c54d46f08dda665b5f3564d542a665ecf6..b291df0b7dfdf7939e7daae723420265db19c363 100644 >--- a/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm >+++ b/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm >@@ -75,7 +75,7 @@ RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea(WebPage& webPage, const W > // FIXME: While using the high end of the range of DisplayIDs makes a collision with real, non-RemoteLayerTreeDrawingArea > // DisplayIDs less likely, it is not entirely safe to have a RemoteLayerTreeDrawingArea and TiledCoreAnimationDrawingArea > // coeexist in the same process. >- webPage.windowScreenDidChange(std::numeric_limits<uint32_t>::max() - webPage.pageID()); >+ webPage.windowScreenDidChange(std::numeric_limits<uint32_t>::max() - webPage.pageID().toUInt64()); > } > > RemoteLayerTreeDrawingArea::~RemoteLayerTreeDrawingArea() >@@ -434,7 +434,7 @@ void RemoteLayerTreeDrawingArea::flushLayers() > RefPtr<BackingStoreFlusher> backingStoreFlusher = BackingStoreFlusher::create(WebProcess::singleton().parentProcessConnection(), WTFMove(commitEncoder), WTFMove(contextsToFlush)); > m_pendingBackingStoreFlusher = backingStoreFlusher; > >- uint64_t pageID = m_webPage.pageID(); >+ auto pageID = m_webPage.pageID(); > dispatch_async(m_commitQueue, [backingStoreFlusher = WTFMove(backingStoreFlusher), pageID] { > backingStoreFlusher->flush(); > >diff --git a/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.cpp b/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.cpp >index c3a952565326e749e5261132b044aa588802c04f..5cf44407e3fb3f67a0347003d0478d741993243f 100644 >--- a/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.cpp >+++ b/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.cpp >@@ -54,7 +54,7 @@ void ViewUpdateDispatcher::initializeConnection(IPC::Connection* connection) > connection->addWorkQueueMessageReceiver(Messages::ViewUpdateDispatcher::messageReceiverName(), m_queue.get(), this); > } > >-void ViewUpdateDispatcher::visibleContentRectUpdate(uint64_t pageID, const VisibleContentRectUpdateInfo& visibleContentRectUpdateInfo) >+void ViewUpdateDispatcher::visibleContentRectUpdate(WebCore::PageIdentifier pageID, const VisibleContentRectUpdateInfo& visibleContentRectUpdateInfo) > { > bool updateListWasEmpty; > { >@@ -75,7 +75,7 @@ void ViewUpdateDispatcher::visibleContentRectUpdate(uint64_t pageID, const Visib > > void ViewUpdateDispatcher::dispatchVisibleContentRectUpdate() > { >- HashMap<uint64_t, UpdateData> update; >+ HashMap<PageIdentifier, UpdateData> update; > { > LockHolder locker(&m_dataMutex); > update = WTFMove(m_latestUpdate); >diff --git a/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.h b/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.h >index e47dc4e1d416822340afadea2a3c80620f4b2088..ca7d200c2bcf65e77b80a29dfac1943ec2dd414f 100644 >--- a/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.h >+++ b/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.h >@@ -29,6 +29,7 @@ > #include "Connection.h" > > #include "VisibleContentRectUpdateInfo.h" >+#include <WebCore/PageIdentifier.h> > #include <wtf/HashMap.h> > #include <wtf/Lock.h> > #include <wtf/Ref.h> >@@ -47,7 +48,7 @@ private: > // IPC::Connection::WorkQueueMessageReceiver. > void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override; > >- void visibleContentRectUpdate(uint64_t pageID, const VisibleContentRectUpdateInfo&); >+ void visibleContentRectUpdate(WebCore::PageIdentifier, const VisibleContentRectUpdateInfo&); > > void dispatchVisibleContentRectUpdate(); > >@@ -58,7 +59,7 @@ private: > > Ref<WorkQueue> m_queue; > Lock m_dataMutex; >- HashMap<uint64_t, UpdateData> m_latestUpdate; >+ HashMap<WebCore::PageIdentifier, UpdateData> m_latestUpdate; > }; > > } // namespace WebKit >diff --git a/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.messages.in b/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.messages.in >index 17e2c8dd186ad276e558acc880c2688d50358fe6..d92eeb889d09572a1d226e83c7ce13f5961026c7 100644 >--- a/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.messages.in >+++ b/Source/WebKit/WebProcess/WebPage/ViewUpdateDispatcher.messages.in >@@ -21,5 +21,5 @@ > # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > messages -> ViewUpdateDispatcher { >- VisibleContentRectUpdate(uint64_t pageID, WebKit::VisibleContentRectUpdateInfo visibleContentRectUpdateInfo) >+ VisibleContentRectUpdate(WebCore::PageIdentifier pageID, WebKit::VisibleContentRectUpdateInfo visibleContentRectUpdateInfo) > } >diff --git a/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp b/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp >index 211d601ef0b44f52aa2de963e8453f86c52f8fd4..7a0c0c80fe8cc6011693d7b4527abec7e9e5e748 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp >@@ -55,7 +55,7 @@ static IDToHistoryItemMap& idToHistoryItemMap() > return map; > } > >-void WebBackForwardListProxy::addItemFromUIProcess(const BackForwardItemIdentifier& itemID, Ref<HistoryItem>&& item, uint64_t pageID, OverwriteExistingItem overwriteExistingItem) >+void WebBackForwardListProxy::addItemFromUIProcess(const BackForwardItemIdentifier& itemID, Ref<HistoryItem>&& item, PageIdentifier pageID, OverwriteExistingItem overwriteExistingItem) > { > // This item/itemID pair should not already exist in our map. > ASSERT_UNUSED(overwriteExistingItem, overwriteExistingItem == OverwriteExistingItem::Yes || !idToHistoryItemMap().contains(itemID)); >diff --git a/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.h b/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.h >index f3b1c8af54823c3e8268d6ae58e40a6f6154d081..d1baadb91c55861b1543b971764862b5d2239775 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.h >+++ b/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.h >@@ -26,6 +26,7 @@ > #pragma once > > #include <WebCore/BackForwardClient.h> >+#include <WebCore/PageIdentifier.h> > #include <wtf/HashSet.h> > > namespace WebCore { >@@ -47,7 +48,7 @@ public: > Yes, > No > }; >- void addItemFromUIProcess(const WebCore::BackForwardItemIdentifier&, Ref<WebCore::HistoryItem>&&, uint64_t pageID, OverwriteExistingItem); >+ void addItemFromUIProcess(const WebCore::BackForwardItemIdentifier&, Ref<WebCore::HistoryItem>&&, WebCore::PageIdentifier, OverwriteExistingItem); > > void clear(); > >diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp >index 160edefd59d10a023e4af251be2b1a9b2a98b2d5..738be92b92dc73d2df677ee34ec13081a60f1a1c 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp >@@ -38,6 +38,8 @@ > > namespace WebKit { > >+using namespace WebCore; >+ > class WebStorageSessionProvider : public WebCore::StorageSessionProvider { > // NetworkStorageSessions are accessed only in the NetworkProcess. > WebCore::NetworkStorageSession* storageSession() const final { return nullptr; } >@@ -49,7 +51,7 @@ WebCookieJar::WebCookieJar() > String WebCookieJar::cookies(WebCore::Document& document, const URL& url) const > { > Optional<uint64_t> frameID; >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > if (auto* frame = document.frame()) { > frameID = frame->loader().client().frameID(); > pageID = frame->loader().client().pageID(); >@@ -66,7 +68,7 @@ String WebCookieJar::cookies(WebCore::Document& document, const URL& url) const > void WebCookieJar::setCookies(WebCore::Document& document, const URL& url, const String& cookieString) > { > Optional<uint64_t> frameID; >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > if (auto* frame = document.frame()) { > frameID = frame->loader().client().frameID(); > pageID = frame->loader().client().pageID(); >@@ -83,7 +85,7 @@ bool WebCookieJar::cookiesEnabled(const WebCore::Document& document) const > return result; > } > >-std::pair<String, WebCore::SecureCookiesAccessed> WebCookieJar::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const WebCore::SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies includeSecureCookies) const >+std::pair<String, WebCore::SecureCookiesAccessed> WebCookieJar::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const WebCore::SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<PageIdentifier> pageID, WebCore::IncludeSecureCookies includeSecureCookies) const > { > String cookieString; > bool secureCookiesAccessed = false; >@@ -95,7 +97,7 @@ std::pair<String, WebCore::SecureCookiesAccessed> WebCookieJar::cookieRequestHea > bool WebCookieJar::getRawCookies(const WebCore::Document& document, const URL& url, Vector<WebCore::Cookie>& rawCookies) const > { > Optional<uint64_t> frameID; >- Optional<uint64_t> pageID; >+ Optional<PageIdentifier> pageID; > if (auto* frame = document.frame()) { > frameID = frame->loader().client().frameID(); > pageID = frame->loader().client().pageID(); >diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.h b/Source/WebKit/WebProcess/WebPage/WebCookieJar.h >index 97dd76f664c3f553adfc8e76bb85ea3f111e511e..559bd0e50bbec35ffb256b912b7b46da994b2d48 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.h >+++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.h >@@ -36,7 +36,7 @@ public: > String cookies(WebCore::Document&, const URL&) const final; > void setCookies(WebCore::Document&, const URL&, const String& cookieString) final; > bool cookiesEnabled(const WebCore::Document&) const final; >- std::pair<String, WebCore::SecureCookiesAccessed> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) const final; >+ std::pair<String, WebCore::SecureCookiesAccessed> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<WebCore::PageIdentifier>, WebCore::IncludeSecureCookies) const final; > bool getRawCookies(const WebCore::Document&, const URL&, Vector<WebCore::Cookie>&) const final; > void deleteCookie(const WebCore::Document&, const URL&, const String& cookieName) final; > private: >diff --git a/Source/WebKit/WebProcess/WebPage/WebFrame.cpp b/Source/WebKit/WebProcess/WebPage/WebFrame.cpp >index 890c5e56ac04ce73f45ee07d978351fd31caa521..4af495a51b903726f3bb64c3a4de3151d99fbb62 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebFrame.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebFrame.cpp >@@ -110,7 +110,7 @@ static uint64_t generateListenerID() > Ref<WebFrame> WebFrame::createWithCoreMainFrame(WebPage* page, WebCore::Frame* coreFrame) > { > auto frame = create(std::unique_ptr<WebFrameLoaderClient>(static_cast<WebFrameLoaderClient*>(&coreFrame->loader().client()))); >- page->send(Messages::WebPageProxy::DidCreateMainFrame(frame->frameID()), page->pageID()); >+ page->send(Messages::WebPageProxy::DidCreateMainFrame(frame->frameID())); > > frame->m_coreFrame = coreFrame; > frame->m_coreFrame->tree().setName(String()); >@@ -121,7 +121,7 @@ Ref<WebFrame> WebFrame::createWithCoreMainFrame(WebPage* page, WebCore::Frame* c > Ref<WebFrame> WebFrame::createSubframe(WebPage* page, const String& frameName, HTMLFrameOwnerElement* ownerElement) > { > auto frame = create(std::make_unique<WebFrameLoaderClient>()); >- page->send(Messages::WebPageProxy::DidCreateSubframe(frame->frameID()), page->pageID()); >+ page->send(Messages::WebPageProxy::DidCreateSubframe(frame->frameID())); > > auto coreFrame = Frame::create(page->corePage(), ownerElement, frame->m_frameLoaderClient.get()); > frame->m_coreFrame = coreFrame.ptr(); >diff --git a/Source/WebKit/WebProcess/WebPage/WebInspectorUI.cpp b/Source/WebKit/WebProcess/WebPage/WebInspectorUI.cpp >index c9652e94af86b60e7fde73625d11b5abcea4c9da..bcff8e2a896ff02e825165278119bd1feb4621e2 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebInspectorUI.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebInspectorUI.cpp >@@ -58,7 +58,7 @@ WebInspectorUI::WebInspectorUI(WebPage& page) > #endif > } > >-void WebInspectorUI::establishConnection(uint64_t inspectedPageIdentifier, bool underTest, unsigned inspectionLevel) >+void WebInspectorUI::establishConnection(PageIdentifier inspectedPageIdentifier, bool underTest, unsigned inspectionLevel) > { > m_inspectedPageIdentifier = inspectedPageIdentifier; > m_frontendAPIDispatcher.reset(); >@@ -167,7 +167,7 @@ void WebInspectorUI::closeWindow() > if (m_frontendHost) > m_frontendHost->disconnectClient(); > >- m_inspectedPageIdentifier = 0; >+ m_inspectedPageIdentifier = { }; > m_underTest = false; > } > >diff --git a/Source/WebKit/WebProcess/WebPage/WebInspectorUI.h b/Source/WebKit/WebProcess/WebPage/WebInspectorUI.h >index 8381bf1cedecb65c5d47475c22b7d3db62fbfd8e..9424bfe1f26cfdc16907c781fef4d6d05c5ece29 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebInspectorUI.h >+++ b/Source/WebKit/WebProcess/WebPage/WebInspectorUI.h >@@ -29,6 +29,7 @@ > #include "WebInspectorFrontendAPIDispatcher.h" > #include <WebCore/InspectorFrontendClient.h> > #include <WebCore/InspectorFrontendHost.h> >+#include <WebCore/PageIdentifier.h> > > namespace WebCore { > class InspectorController; >@@ -52,7 +53,7 @@ public: > void didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference) override { closeWindow(); } > > // Called by WebInspectorUI messages >- void establishConnection(uint64_t inspectedPageIdentifier, bool underTest, unsigned inspectionLevel); >+ void establishConnection(WebCore::PageIdentifier inspectedPageIdentifier, bool underTest, unsigned inspectionLevel); > void updateConnection(); > > void showConsole(); >@@ -133,7 +134,7 @@ private: > // corePage(), since we may need it after the frontend's page has started destruction. > WebCore::InspectorController* m_frontendController { nullptr }; > >- uint64_t m_inspectedPageIdentifier { 0 }; >+ WebCore::PageIdentifier m_inspectedPageIdentifier; > bool m_underTest { false }; > bool m_dockingUnavailable { false }; > bool m_isVisible { false }; >diff --git a/Source/WebKit/WebProcess/WebPage/WebInspectorUI.messages.in b/Source/WebKit/WebProcess/WebPage/WebInspectorUI.messages.in >index dea0fe584d4ef0f86fa971662bb47b41a7f613bf..43190aa834dcaa66964bbba95500821fb7d6102d 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebInspectorUI.messages.in >+++ b/Source/WebKit/WebProcess/WebPage/WebInspectorUI.messages.in >@@ -21,7 +21,7 @@ > # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > messages -> WebInspectorUI { >- EstablishConnection(uint64_t inspectedPageIdentifier, bool underTest, unsigned inspectionLevel) >+ EstablishConnection(WebCore::PageIdentifier inspectedPageIdentifier, bool underTest, unsigned inspectionLevel) > UpdateConnection() > > AttachedBottom() >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >index 76f7c5cbf90c55d36739794c4ee2c96c16723b08..8b0b3381ba9d1cb00af1cd5e4d4fe0c0279e4439 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >@@ -360,7 +360,7 @@ private: > > DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, webPageCounter, ("WebPage")); > >-Ref<WebPage> WebPage::create(uint64_t pageID, WebPageCreationParameters&& parameters) >+Ref<WebPage> WebPage::create(PageIdentifier pageID, WebPageCreationParameters&& parameters) > { > Ref<WebPage> page = adoptRef(*new WebPage(pageID, WTFMove(parameters))); > >@@ -370,7 +370,7 @@ Ref<WebPage> WebPage::create(uint64_t pageID, WebPageCreationParameters&& parame > return page; > } > >-WebPage::WebPage(uint64_t pageID, WebPageCreationParameters&& parameters) >+WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) > : m_pageID(pageID) > , m_viewSize(parameters.viewSize) > , m_alwaysShowsHorizontalScroller { parameters.alwaysShowsHorizontalScroller } >@@ -831,7 +831,7 @@ IPC::Connection* WebPage::messageSenderConnection() const > > uint64_t WebPage::messageSenderDestinationID() const > { >- return pageID(); >+ return pageID().toUInt64(); > } > > #if ENABLE(CONTEXT_MENUS) >@@ -1648,7 +1648,7 @@ void WebPage::goToBackForwardItem(uint64_t navigationID, const BackForwardItemId > if (!item) > return; > >- LOG(Loading, "In WebProcess pid %i, WebPage %" PRIu64 " is navigating to back/forward URL %s", getCurrentProcessID(), m_pageID, item->url().string().utf8().data()); >+ LOG(Loading, "In WebProcess pid %i, WebPage %" PRIu64 " is navigating to back/forward URL %s", getCurrentProcessID(), m_pageID.toUInt64(), item->url().string().utf8().data()); > > ASSERT(!m_pendingNavigationID); > m_pendingNavigationID = navigationID; >@@ -2076,7 +2076,7 @@ bool WebPage::setFixedLayoutSize(const IntSize& size) > if (!view || view->fixedLayoutSize() == size) > return false; > >- LOG_WITH_STREAM(VisibleRects, stream << "WebPage " << m_pageID << " setFixedLayoutSize " << size); >+ LOG_WITH_STREAM(VisibleRects, stream << "WebPage " << m_pageID.toUInt64() << " setFixedLayoutSize " << size); > view->setFixedLayoutSize(size); > > send(Messages::WebPageProxy::FixedLayoutSizeDidChange(size)); >@@ -2504,7 +2504,7 @@ const WebEvent* WebPage::currentEvent() > void WebPage::freezeLayerTree(LayerTreeFreezeReason reason) > { > RELEASE_LOG(ProcessSuspension, "%p - WebPage (PageID=%llu) - Adding a reason %d to freeze layer tree; current reasons are %d", >- this, m_pageID, static_cast<unsigned>(reason), m_layerTreeFreezeReasons.toRaw()); >+ this, m_pageID.toUInt64(), static_cast<unsigned>(reason), m_layerTreeFreezeReasons.toRaw()); > m_layerTreeFreezeReasons.add(reason); > updateDrawingAreaLayerTreeFreezeState(); > } >@@ -2512,7 +2512,7 @@ void WebPage::freezeLayerTree(LayerTreeFreezeReason reason) > void WebPage::unfreezeLayerTree(LayerTreeFreezeReason reason) > { > RELEASE_LOG(ProcessSuspension, "%p - WebPage (PageID=%llu) - Removing a reason %d to freeze layer tree; current reasons are %d", >- this, m_pageID, static_cast<unsigned>(reason), m_layerTreeFreezeReasons.toRaw()); >+ this, m_pageID.toUInt64(), static_cast<unsigned>(reason), m_layerTreeFreezeReasons.toRaw()); > m_layerTreeFreezeReasons.remove(reason); > updateDrawingAreaLayerTreeFreezeState(); > } >@@ -3168,7 +3168,7 @@ void WebPage::visibilityDidChange() > > void WebPage::setActivityState(OptionSet<ActivityState::Flag> activityState, ActivityStateChangeID activityStateChangeID, const Vector<CallbackID>& callbackIDs) > { >- LOG_WITH_STREAM(ActivityState, stream << "WebPage " << pageID() << " setActivityState to " << activityState); >+ LOG_WITH_STREAM(ActivityState, stream << "WebPage " << pageID().toUInt64() << " setActivityState to " << activityState); > > auto changed = m_activityState ^ activityState; > m_activityState = activityState; >@@ -3176,7 +3176,7 @@ void WebPage::setActivityState(OptionSet<ActivityState::Flag> activityState, Act > if (changed) > updateThrottleState(); > >- ASSERT_WITH_MESSAGE(m_page, "setActivityState called on %" PRIu64 " but WebCore page was null", pageID()); >+ ASSERT_WITH_MESSAGE(m_page, "setActivityState called on %" PRIu64 " but WebCore page was null", pageID().toUInt64()); > if (m_page) { > SetForScope<OptionSet<ActivityState::Flag>> currentlyChangingActivityState { m_lastActivityStateChanges, changed }; > m_page->setActivityState(activityState); >@@ -4339,7 +4339,7 @@ void WebPage::mainFrameDidLayout() > #if PLATFORM(IOS_FAMILY) > if (FrameView* frameView = mainFrameView()) { > IntSize newContentSize = frameView->contentsSize(); >- LOG_WITH_STREAM(VisibleRects, stream << "WebPage " << m_pageID << " mainFrameDidLayout setting content size to " << newContentSize); >+ LOG_WITH_STREAM(VisibleRects, stream << "WebPage " << m_pageID.toUInt64() << " mainFrameDidLayout setting content size to " << newContentSize); > if (m_viewportConfiguration.setContentsSize(newContentSize)) > viewportConfigurationChanged(); > } >@@ -5742,7 +5742,7 @@ void WebPage::didCommitLoad(WebFrame* frame) > > bool viewportChanged = false; > >- LOG_WITH_STREAM(VisibleRects, stream << "WebPage " << m_pageID << " didCommitLoad setting content size to " << coreFrame->view()->contentsSize()); >+ LOG_WITH_STREAM(VisibleRects, stream << "WebPage " << m_pageID.toUInt64() << " didCommitLoad setting content size to " << coreFrame->view()->contentsSize()); > if (m_viewportConfiguration.setContentsSize(coreFrame->view()->contentsSize())) > viewportChanged = true; > >@@ -6056,7 +6056,7 @@ void WebPage::sendEditorStateUpdate() > // If that is the case, just send what we have (i.e. don't include post-layout data) and wait until the > // next layer tree commit to compute and send the complete EditorState over. > auto state = editorState(); >- send(Messages::WebPageProxy::EditorStateChanged(state), pageID()); >+ send(Messages::WebPageProxy::EditorStateChanged(state)); > > if (state.isMissingPostLayoutData) > scheduleFullEditorStateUpdate(); >@@ -6237,7 +6237,7 @@ void WebPage::postMessage(const String& messageName, API::Object* messageBody) > > void WebPage::postMessageIgnoringFullySynchronousMode(const String& messageName, API::Object* messageBody) > { >- send(Messages::WebPageProxy::HandleMessage(messageName, UserData(WebProcess::singleton().transformObjectsToHandles(messageBody))), pageID(), IPC::SendOption::IgnoreFullySynchronousMode); >+ send(Messages::WebPageProxy::HandleMessage(messageName, UserData(WebProcess::singleton().transformObjectsToHandles(messageBody))), IPC::SendOption::IgnoreFullySynchronousMode); > } > > void WebPage::postSynchronousMessageForTesting(const String& messageName, API::Object* messageBody, RefPtr<API::Object>& returnData) >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.h b/Source/WebKit/WebProcess/WebPage/WebPage.h >index ad7cd8d31dedb745e884278181f36e736cc8028d..fba06c49dbbb4f43df927db5685eeb5e3092d808 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.h >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.h >@@ -64,6 +64,7 @@ > #include <WebCore/IntRect.h> > #include <WebCore/IntSizeHash.h> > #include <WebCore/Page.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/PageOverlay.h> > #include <WebCore/PluginData.h> > #include <WebCore/PointerID.h> >@@ -274,7 +275,8 @@ using WKEventModifiers = uint32_t; > > class WebPage : public API::ObjectImpl<API::Object::Type::BundlePage>, public IPC::MessageReceiver, public IPC::MessageSender, public CanMakeWeakPtr<WebPage> { > public: >- static Ref<WebPage> create(uint64_t pageID, WebPageCreationParameters&&); >+ static Ref<WebPage> create(WebCore::PageIdentifier, WebPageCreationParameters&&); >+ > virtual ~WebPage(); > > void reinitializeWebPage(WebPageCreationParameters&&); >@@ -284,7 +286,7 @@ public: > static WebPage* fromCorePage(WebCore::Page*); > > WebCore::Page* corePage() const { return m_page.get(); } >- uint64_t pageID() const { return m_pageID; } >+ WebCore::PageIdentifier pageID() const { return m_pageID; } > PAL::SessionID sessionID() const { return m_page->sessionID(); } > bool usesEphemeralSession() const { return m_page->usesEphemeralSession(); } > >@@ -1171,7 +1173,7 @@ public: > bool sendSyncWithDelayedReply(T&& message, typename T::Reply&& reply) > { > cancelGesturesBlockedOnSynchronousReplies(); >- return sendSync(WTFMove(message), WTFMove(reply), m_pageID, Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend); >+ return sendSync(WTFMove(message), WTFMove(reply), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend); > } > > WebCore::DOMPasteAccessResponse requestDOMPasteAccess(const String& originIdentifier); >@@ -1204,7 +1206,7 @@ public: > void setUserIsInteracting(bool userIsInteracting) { m_userIsInteracting = userIsInteracting; } > > private: >- WebPage(uint64_t pageID, WebPageCreationParameters&&); >+ WebPage(WebCore::PageIdentifier, WebPageCreationParameters&&); > > void updateThrottleState(); > >@@ -1591,7 +1593,7 @@ private: > > void updateMockAccessibilityElementAfterCommittingLoad(); > >- uint64_t m_pageID; >+ WebCore::PageIdentifier m_pageID; > > std::unique_ptr<WebCore::Page> m_page; > RefPtr<WebFrame> m_mainFrame; >diff --git a/Source/WebKit/WebProcess/WebPage/WebPageInspectorTarget.cpp b/Source/WebKit/WebProcess/WebPage/WebPageInspectorTarget.cpp >index d96a7d7dda9f26d1c656a15cb83d03cf204a7a38..b7799b4fbb8b55cb66b62227a6a65f3ab12ca00f 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPageInspectorTarget.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPageInspectorTarget.cpp >@@ -41,7 +41,7 @@ WebPageInspectorTarget::WebPageInspectorTarget(WebPage& page) > > String WebPageInspectorTarget::identifier() const > { >- return makeString("page-", m_page.pageID()); >+ return makeString("page-", m_page.pageID().toUInt64()); > } > > void WebPageInspectorTarget::connect(Inspector::FrontendChannel& channel) >diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h >index 3b73e48a77e6d577001542bd6d28cc1f508833ec..fffb46483fc552f2e7948589d1e7d9a6eebd7c57 100644 >--- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h >+++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h >@@ -41,7 +41,7 @@ public: > ~AcceleratedSurfaceWayland() = default; > > uint64_t window() const override { return reinterpret_cast<uint64_t>(m_window); } >- uint64_t surfaceID() const override { return m_webPage.pageID(); } >+ uint64_t surfaceID() const override { return m_webPage.pageID()toUInt64(); } > void clientResize(const WebCore::IntSize&) override; > bool shouldPaintMirrored() const override { return true; } > >diff --git a/Source/WebKit/WebProcess/WebPage/libwpe/AcceleratedSurfaceLibWPE.cpp b/Source/WebKit/WebProcess/WebPage/libwpe/AcceleratedSurfaceLibWPE.cpp >index 983b9319b2849676688ca6705e27485492ffabed..b89dfa8041fb26d6fcbef7de8b44d6e8a043aff7 100644 >--- a/Source/WebKit/WebProcess/WebPage/libwpe/AcceleratedSurfaceLibWPE.cpp >+++ b/Source/WebKit/WebProcess/WebPage/libwpe/AcceleratedSurfaceLibWPE.cpp >@@ -88,7 +88,7 @@ uint64_t AcceleratedSurfaceLibWPE::window() const > > uint64_t AcceleratedSurfaceLibWPE::surfaceID() const > { >- return m_webPage.pageID(); >+ return m_webPage.pageID().toUInt64(); > } > > void AcceleratedSurfaceLibWPE::clientResize(const IntSize& size) >diff --git a/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h b/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h >index 301b139e1d2c16d89a2ab893cf85571073d8f51a..6b7ec5b16f2ca6a0626138f1ff097d0b52915285 100644 >--- a/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h >+++ b/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h >@@ -26,13 +26,15 @@ > #ifndef WKAccessibilityWebPageObjectBase_h > #define WKAccessibilityWebPageObjectBase_h > >+#include <WebCore/PageIdentifier.h> >+ > namespace WebKit { > class WebPage; > } > > @interface WKAccessibilityWebPageObjectBase : NSObject { > WebKit::WebPage* m_page; >- uint64_t m_pageID; >+ WebCore::PageIdentifier m_pageID; > id m_parent; > bool m_hasMainFramePlugin; > } >diff --git a/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm b/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm >index 3d3f35553e6d4fbea55653478088806910f05009..6165a01fe608248fde3b960f789451392371df8f 100644 >--- a/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm >+++ b/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm >@@ -148,7 +148,7 @@ - (void)setWebPage:(WebKit::WebPage*)page > auto* frame = page->mainFrame(); > m_hasMainFramePlugin = frame && frame->document() ? frame->document()->isPluginDocument() : false; > } else { >- m_pageID = 0; >+ m_pageID = { }; > m_hasMainFramePlugin = false; > } > } >diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp >index 5ce69ccf8334c9d8d088c2128e4f34c6cfaeadd8..6174b0a3bb0b374ae984d3ab1bd8bf2373bd57af 100644 >--- a/Source/WebKit/WebProcess/WebProcess.cpp >+++ b/Source/WebKit/WebProcess/WebProcess.cpp >@@ -221,7 +221,7 @@ WebProcess::WebProcess() > ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::ResourceLoadStatisticsUpdated(WTFMove(statistics)), 0); > }); > >- ResourceLoadObserver::shared().setRequestStorageAccessUnderOpenerCallback([this] (PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, const RegistrableDomain& openerDomain) { >+ ResourceLoadObserver::shared().setRequestStorageAccessUnderOpenerCallback([this] (PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, PageIdentifier openerPageID, const RegistrableDomain& openerDomain) { > ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::RequestStorageAccessUnderOpener(sessionID, domainInNeedOfStorageAccess, openerPageID, openerDomain), 0); > }); > #endif >@@ -667,16 +667,16 @@ WebPage* WebProcess::focusedWebPage() const > return 0; > } > >-WebPage* WebProcess::webPage(uint64_t pageID) const >+WebPage* WebProcess::webPage(PageIdentifier pageID) const > { > return m_pageMap.get(pageID); > } > >-void WebProcess::createWebPage(uint64_t pageID, WebPageCreationParameters&& parameters) >+void WebProcess::createWebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) > { > // It is necessary to check for page existence here since during a window.open() (or targeted > // link) the WebPage gets created both in the synchronous handler and through the normal way. >- HashMap<uint64_t, RefPtr<WebPage>>::AddResult result = m_pageMap.add(pageID, nullptr); >+ auto result = m_pageMap.add(pageID, nullptr); > auto oldPageID = parameters.oldPageID ? parameters.oldPageID.value() : pageID; > if (result.isNewEntry) { > ASSERT(!result.iterator->value); >@@ -693,7 +693,7 @@ void WebProcess::createWebPage(uint64_t pageID, WebPageCreationParameters&& para > ASSERT(result.iterator->value); > } > >-void WebProcess::removeWebPage(PAL::SessionID sessionID, uint64_t pageID) >+void WebProcess::removeWebPage(PAL::SessionID sessionID, PageIdentifier pageID) > { > ASSERT(m_pageMap.contains(pageID)); > >@@ -1450,7 +1450,7 @@ void WebProcess::updateCPUMonitorState(CPUMonitorUpdateReason) > > #endif > >-void WebProcess::pageActivityStateDidChange(uint64_t, OptionSet<WebCore::ActivityState::Flag> changed) >+void WebProcess::pageActivityStateDidChange(PageIdentifier, OptionSet<WebCore::ActivityState::Flag> changed) > { > if (changed & WebCore::ActivityState::IsVisible) > updateCPUMonitorState(CPUMonitorUpdateReason::VisibilityHasChanged); >@@ -1624,13 +1624,13 @@ void WebProcess::sendPrewarmInformation(const URL& url) > parentProcessConnection()->send(Messages::WebProcessProxy::DidCollectPrewarmInformation(registrableDomain, WebCore::ProcessWarming::collectPrewarmInformation()), 0); > } > >-void WebProcess::pageDidEnterWindow(uint64_t pageID) >+void WebProcess::pageDidEnterWindow(PageIdentifier pageID) > { > m_pagesInWindows.add(pageID); > m_nonVisibleProcessCleanupTimer.stop(); > } > >-void WebProcess::pageWillLeaveWindow(uint64_t pageID) >+void WebProcess::pageWillLeaveWindow(PageIdentifier pageID) > { > m_pagesInWindows.remove(pageID); > >@@ -1673,7 +1673,7 @@ void WebProcess::enablePrivateBrowsingForTesting(bool enable) > if (enable) > ensureLegacyPrivateBrowsingSessionInNetworkProcess(); > >- Vector<uint64_t> pageIDs; >+ Vector<PageIdentifier> pageIDs; > for (auto& page : m_pageMap) { > if (page.value) > pageIDs.append(page.key); >@@ -1853,7 +1853,7 @@ LibWebRTCNetwork& WebProcess::libWebRTCNetwork() > } > > #if ENABLE(SERVICE_WORKER) >-void WebProcess::establishWorkerContextConnectionToNetworkProcess(uint64_t pageGroupID, uint64_t pageID, const WebPreferencesStore& store, PAL::SessionID initialSessionID) >+void WebProcess::establishWorkerContextConnectionToNetworkProcess(uint64_t pageGroupID, PageIdentifier pageID, const WebPreferencesStore& store, PAL::SessionID initialSessionID) > { > // We are in the Service Worker context process and the call below establishes our connection to the Network Process > // by calling ensureNetworkProcessConnection. SWContextManager needs to use the same underlying IPC::Connection as the >diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h >index 525df183f22615e4d8e899f4e89ef485a7ba781c..1857cea0ed9d9fa8c210696f0987678bba429fdf 100644 >--- a/Source/WebKit/WebProcess/WebProcess.h >+++ b/Source/WebKit/WebProcess/WebProcess.h >@@ -39,6 +39,7 @@ > #include "WebProcessCreationParameters.h" > #include "WebSQLiteDatabaseTracker.h" > #include <WebCore/ActivityState.h> >+#include <WebCore/PageIdentifier.h> > #include <WebCore/RegistrableDomain.h> > #if PLATFORM(MAC) > #include <WebCore/ScreenProperties.h> >@@ -145,9 +146,9 @@ public: > > WebConnectionToUIProcess* webConnectionToUIProcess() const { return m_webConnection.get(); } > >- WebPage* webPage(uint64_t pageID) const; >- void createWebPage(uint64_t pageID, WebPageCreationParameters&&); >- void removeWebPage(PAL::SessionID, uint64_t pageID); >+ WebPage* webPage(WebCore::PageIdentifier) const; >+ void createWebPage(WebCore::PageIdentifier, WebPageCreationParameters&&); >+ void removeWebPage(PAL::SessionID, WebCore::PageIdentifier); > WebPage* focusedWebPage() const; > > InjectedBundle* injectedBundle() const { return m_injectedBundle.get(); } >@@ -199,8 +200,8 @@ public: > > void ensureLegacyPrivateBrowsingSessionInNetworkProcess(); > >- void pageDidEnterWindow(uint64_t pageID); >- void pageWillLeaveWindow(uint64_t pageID); >+ void pageDidEnterWindow(WebCore::PageIdentifier); >+ void pageWillLeaveWindow(WebCore::PageIdentifier); > > void nonVisibleProcessCleanupTimerFired(); > >@@ -219,7 +220,7 @@ public: > > void updateActivePages(); > void getActivePagesOriginsForTesting(CompletionHandler<void(Vector<String>&&)>&&); >- void pageActivityStateDidChange(uint64_t pageID, OptionSet<WebCore::ActivityState::Flag> changed); >+ void pageActivityStateDidChange(WebCore::PageIdentifier, OptionSet<WebCore::ActivityState::Flag> changed); > > void setHiddenPageDOMTimerThrottlingIncreaseLimit(int milliseconds); > >@@ -359,7 +360,7 @@ private: > #endif > > #if ENABLE(SERVICE_WORKER) >- void establishWorkerContextConnectionToNetworkProcess(uint64_t pageGroupID, uint64_t pageID, const WebPreferencesStore&, PAL::SessionID); >+ void establishWorkerContextConnectionToNetworkProcess(uint64_t pageGroupID, WebCore::PageIdentifier, const WebPreferencesStore&, PAL::SessionID); > void registerServiceWorkerClients(); > #endif > >@@ -460,7 +461,7 @@ private: > > RefPtr<WebConnectionToUIProcess> m_webConnection; > >- HashMap<uint64_t, RefPtr<WebPage>> m_pageMap; >+ HashMap<WebCore::PageIdentifier, RefPtr<WebPage>> m_pageMap; > HashMap<uint64_t, RefPtr<WebPageGroupProxy>> m_pageGroupMap; > RefPtr<InjectedBundle> m_injectedBundle; > >@@ -514,7 +515,7 @@ private: > > bool m_processIsSuspended { false }; > >- HashSet<uint64_t> m_pagesInWindows; >+ HashSet<WebCore::PageIdentifier> m_pagesInWindows; > WebCore::Timer m_nonVisibleProcessCleanupTimer; > > RefPtr<WebCore::ApplicationCacheStorage> m_applicationCacheStorage; >diff --git a/Source/WebKit/WebProcess/WebProcess.messages.in b/Source/WebKit/WebProcess/WebProcess.messages.in >index b39b38c183c66327d42e6edff176bba1c9cabb12..57a2656345fbe9d330df655e352c39bea52b45d9 100644 >--- a/Source/WebKit/WebProcess/WebProcess.messages.in >+++ b/Source/WebKit/WebProcess/WebProcess.messages.in >@@ -25,7 +25,7 @@ messages -> WebProcess LegacyReceiver { > SetWebsiteDataStoreParameters(struct WebKit::WebProcessDataStoreParameters parameters) > > # Create a new page. >- CreateWebPage(uint64_t newPageID, struct WebKit::WebPageCreationParameters pageCreationParameters) >+ CreateWebPage(WebCore::PageIdentifier newPageID, struct WebKit::WebPageCreationParameters pageCreationParameters) > > PrewarmGlobally(); > PrewarmWithDomainInformation(struct WebCore::PrewarmInformation prewarmInformation) >@@ -111,7 +111,7 @@ messages -> WebProcess LegacyReceiver { > #endif > > #if ENABLE(SERVICE_WORKER) >- EstablishWorkerContextConnectionToNetworkProcess(uint64_t pageGroupID, uint64_t pageID, struct WebKit::WebPreferencesStore store, PAL::SessionID initialSessionID) >+ EstablishWorkerContextConnectionToNetworkProcess(uint64_t pageGroupID, WebCore::PageIdentifier pageID, struct WebKit::WebPreferencesStore store, PAL::SessionID initialSessionID) > RegisterServiceWorkerClients() > #endif > >diff --git a/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp b/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp >index 0bd90af9187864410453ea1baf1ecf60233cb096..0e94296049e6c087ab6e8f0c5ebfe4c1a2e2c078 100644 >--- a/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp >+++ b/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp >@@ -311,7 +311,7 @@ void StorageAreaMap::dispatchSessionStorageEvent(uint64_t sourceStorageAreaID, c > > // Namespace IDs for session storage namespaces are equivalent to web page IDs > // so we can get the right page here. >- WebPage* webPage = WebProcess::singleton().webPage(m_storageNamespaceID); >+ WebPage* webPage = WebProcess::singleton().webPage(makeObjectIdentifier<PageIdentifierType>(m_storageNamespaceID)); > if (!webPage) > return; > >diff --git a/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm b/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm >index fc659863252bfe4fa8c1e129b9ae8e830faf788a..765eff404b09ed00cce1dd9ea7b5605629cb5d9d 100644 >--- a/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm >+++ b/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm >@@ -279,7 +279,7 @@ void PlaybackSessionManager::setUpPlaybackControlsManager(WebCore::HTMLMediaElem > addClientForContext(m_controlsManagerContextId); > > m_page->videoControlsManagerDidChange(); >- m_page->send(Messages::PlaybackSessionManagerProxy::SetUpPlaybackControlsManagerWithID(m_controlsManagerContextId), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::SetUpPlaybackControlsManagerWithID(m_controlsManagerContextId)); > } > > void PlaybackSessionManager::clearPlaybackControlsManager() >@@ -291,7 +291,7 @@ void PlaybackSessionManager::clearPlaybackControlsManager() > m_controlsManagerContextId = 0; > > m_page->videoControlsManagerDidChange(); >- m_page->send(Messages::PlaybackSessionManagerProxy::ClearPlaybackControlsManager(), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::ClearPlaybackControlsManager()); > } > > uint64_t PlaybackSessionManager::contextIdForMediaElement(WebCore::HTMLMediaElement& mediaElement) >@@ -318,27 +318,27 @@ WebCore::HTMLMediaElement* PlaybackSessionManager::currentPlaybackControlsElemen > > void PlaybackSessionManager::durationChanged(uint64_t contextId, double duration) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::DurationChanged(contextId, duration), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::DurationChanged(contextId, duration)); > } > > void PlaybackSessionManager::currentTimeChanged(uint64_t contextId, double currentTime, double anchorTime) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::CurrentTimeChanged(contextId, currentTime, anchorTime), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::CurrentTimeChanged(contextId, currentTime, anchorTime)); > } > > void PlaybackSessionManager::bufferedTimeChanged(uint64_t contextId, double bufferedTime) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::BufferedTimeChanged(contextId, bufferedTime), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::BufferedTimeChanged(contextId, bufferedTime)); > } > > void PlaybackSessionManager::playbackStartedTimeChanged(uint64_t contextId, double playbackStartedTime) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::PlaybackStartedTimeChanged(contextId, playbackStartedTime), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::PlaybackStartedTimeChanged(contextId, playbackStartedTime)); > } > > void PlaybackSessionManager::rateChanged(uint64_t contextId, bool isPlaying, float playbackRate) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::RateChanged(contextId, isPlaying, playbackRate), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::RateChanged(contextId, isPlaying, playbackRate)); > } > > void PlaybackSessionManager::seekableRangesChanged(uint64_t contextId, const WebCore::TimeRanges& timeRanges, double lastModifiedTime, double liveUpdateInterval) >@@ -349,37 +349,37 @@ void PlaybackSessionManager::seekableRangesChanged(uint64_t contextId, const Web > double end = timeRanges.ranges().end(i).toDouble(); > rangesVector.append({ start, end }); > } >- m_page->send(Messages::PlaybackSessionManagerProxy::SeekableRangesVectorChanged(contextId, WTFMove(rangesVector), lastModifiedTime, liveUpdateInterval), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::SeekableRangesVectorChanged(contextId, WTFMove(rangesVector), lastModifiedTime, liveUpdateInterval)); > } > > void PlaybackSessionManager::canPlayFastReverseChanged(uint64_t contextId, bool value) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::CanPlayFastReverseChanged(contextId, value), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::CanPlayFastReverseChanged(contextId, value)); > } > > void PlaybackSessionManager::audioMediaSelectionOptionsChanged(uint64_t contextId, const Vector<MediaSelectionOption>& options, uint64_t selectedIndex) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::AudioMediaSelectionOptionsChanged(contextId, options, selectedIndex), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::AudioMediaSelectionOptionsChanged(contextId, options, selectedIndex)); > } > > void PlaybackSessionManager::legibleMediaSelectionOptionsChanged(uint64_t contextId, const Vector<MediaSelectionOption>& options, uint64_t selectedIndex) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::LegibleMediaSelectionOptionsChanged(contextId, options, selectedIndex), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::LegibleMediaSelectionOptionsChanged(contextId, options, selectedIndex)); > } > > void PlaybackSessionManager::externalPlaybackChanged(uint64_t contextId, bool enabled, PlaybackSessionModel::ExternalPlaybackTargetType targetType, String localizedDeviceName) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::ExternalPlaybackPropertiesChanged(contextId, enabled, static_cast<uint32_t>(targetType), localizedDeviceName), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::ExternalPlaybackPropertiesChanged(contextId, enabled, static_cast<uint32_t>(targetType), localizedDeviceName)); > } > > void PlaybackSessionManager::audioMediaSelectionIndexChanged(uint64_t contextId, uint64_t selectedIndex) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::AudioMediaSelectionIndexChanged(contextId, selectedIndex), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::AudioMediaSelectionIndexChanged(contextId, selectedIndex)); > } > > void PlaybackSessionManager::legibleMediaSelectionIndexChanged(uint64_t contextId, uint64_t selectedIndex) > { >- m_page->send(Messages::PlaybackSessionManagerProxy::LegibleMediaSelectionIndexChanged(contextId, selectedIndex), m_page->pageID()); >+ m_page->send(Messages::PlaybackSessionManagerProxy::LegibleMediaSelectionIndexChanged(contextId, selectedIndex)); > } > > void PlaybackSessionManager::wirelessVideoPlaybackDisabledChanged(uint64_t contextId, bool disabled) >diff --git a/Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm b/Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm >index 5d6110b7909f34cce3e762bfd38d2b2f721d5216..70663977379b5b1bf597c5d8deb2ad46c3f6b5d8 100644 >--- a/Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm >+++ b/Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm >@@ -290,7 +290,7 @@ void VideoFullscreenManager::enterVideoFullscreenForVideoElement(HTMLVideoElemen > interface->layerHostingContext()->setRootLayer(videoLayer); > } > >- m_page->send(Messages::VideoFullscreenManagerProxy::SetupFullscreenWithID(contextId, interface->layerHostingContext()->contextID(), videoRect, m_page->deviceScaleFactor(), interface->fullscreenMode(), allowsPictureInPicture, standby), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::SetupFullscreenWithID(contextId, interface->layerHostingContext()->contextID(), videoRect, m_page->deviceScaleFactor(), interface->fullscreenMode(), allowsPictureInPicture, standby)); > } > > void VideoFullscreenManager::exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement& videoElement) >@@ -308,7 +308,7 @@ void VideoFullscreenManager::exitVideoFullscreenForVideoElement(WebCore::HTMLVid > return; > > interface.setIsAnimating(true); >- m_page->send(Messages::VideoFullscreenManagerProxy::ExitFullscreen(contextId, inlineVideoFrame(videoElement)), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::ExitFullscreen(contextId, inlineVideoFrame(videoElement))); > } > > void VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation(WebCore::HTMLVideoElement& videoElement, WebCore::HTMLMediaElementEnums::VideoFullscreenMode targetMode) >@@ -324,7 +324,7 @@ void VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation(WebCore:: > > interface.setTargetIsFullscreen(false); > >- m_page->send(Messages::VideoFullscreenManagerProxy::ExitFullscreenWithoutAnimationToMode(contextId, targetMode), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::ExitFullscreenWithoutAnimationToMode(contextId, targetMode)); > #else > UNUSED_PARAM(videoElement); > UNUSED_PARAM(targetMode); >@@ -336,13 +336,13 @@ void VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation(WebCore:: > void VideoFullscreenManager::hasVideoChanged(uint64_t contextId, bool hasVideo) > { > if (m_page) >- m_page->send(Messages::VideoFullscreenManagerProxy::SetHasVideo(contextId, hasVideo), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::SetHasVideo(contextId, hasVideo)); > } > > void VideoFullscreenManager::videoDimensionsChanged(uint64_t contextId, const FloatSize& videoDimensions) > { > if (m_page) >- m_page->send(Messages::VideoFullscreenManagerProxy::SetVideoDimensions(contextId, videoDimensions), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::SetVideoDimensions(contextId, videoDimensions)); > } > > #pragma mark Messages from VideoFullscreenManagerProxy: >@@ -364,7 +364,7 @@ void VideoFullscreenManager::requestUpdateInlineRect(uint64_t contextId) > > auto& model = ensureModel(contextId); > IntRect inlineRect = inlineVideoFrame(*model.videoElement()); >- m_page->send(Messages::VideoFullscreenManagerProxy::SetInlineRect(contextId, inlineRect, inlineRect != IntRect(0, 0, 0, 0)), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::SetInlineRect(contextId, inlineRect, inlineRect != IntRect(0, 0, 0, 0))); > } > > void VideoFullscreenManager::requestVideoContentLayer(uint64_t contextId) >@@ -378,7 +378,7 @@ void VideoFullscreenManager::requestVideoContentLayer(uint64_t contextId) > model->setVideoFullscreenLayer(videoLayer, [protectedThis = makeRefPtr(this), this, contextId] () mutable { > dispatch_async(dispatch_get_main_queue(), [protectedThis = WTFMove(protectedThis), this, contextId] { > if (protectedThis->m_page) >- m_page->send(Messages::VideoFullscreenManagerProxy::SetHasVideoContentLayer(contextId, true), protectedThis->m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::SetHasVideoContentLayer(contextId, true)); > }); > }); > } >@@ -394,7 +394,7 @@ void VideoFullscreenManager::returnVideoContentLayer(uint64_t contextId) > model->setVideoFullscreenLayer(nil, [protectedThis = WTFMove(protectedThis), this, contextId] () mutable { > dispatch_async(dispatch_get_main_queue(), [protectedThis = WTFMove(protectedThis), this, contextId] { > if (protectedThis->m_page) >- m_page->send(Messages::VideoFullscreenManagerProxy::SetHasVideoContentLayer(contextId, false), protectedThis->m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::SetHasVideoContentLayer(contextId, false)); > }); > }); > }); >@@ -413,7 +413,7 @@ void VideoFullscreenManager::didSetupFullscreen(uint64_t contextId) > #if PLATFORM(IOS_FAMILY) > dispatch_async(dispatch_get_main_queue(), [protectedThis = makeRefPtr(this), this, contextId] { > if (protectedThis->m_page) >- m_page->send(Messages::VideoFullscreenManagerProxy::EnterFullscreen(contextId), protectedThis->m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::EnterFullscreen(contextId)); > }); > #else > CALayer* videoLayer = interface->layerHostingContext()->rootLayer(); >@@ -421,7 +421,7 @@ void VideoFullscreenManager::didSetupFullscreen(uint64_t contextId) > model->setVideoFullscreenLayer(videoLayer, [protectedThis = makeRefPtr(this), this, contextId] () mutable { > dispatch_async(dispatch_get_main_queue(), [protectedThis = WTFMove(protectedThis), this, contextId] { > if (protectedThis->m_page) >- m_page->send(Messages::VideoFullscreenManagerProxy::EnterFullscreen(contextId), protectedThis->m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::EnterFullscreen(contextId)); > }); > }); > #endif >@@ -442,7 +442,7 @@ void VideoFullscreenManager::willExitFullscreen(uint64_t contextId) > dispatch_async(dispatch_get_main_queue(), [protectedThis = makeRefPtr(this), videoElement = WTFMove(videoElement), contextId] { > videoElement->willExitFullscreen(); > if (protectedThis->m_page) >- protectedThis->m_page->send(Messages::VideoFullscreenManagerProxy::PreparedToExitFullscreen(contextId), protectedThis->m_page->pageID()); >+ protectedThis->m_page->send(Messages::VideoFullscreenManagerProxy::PreparedToExitFullscreen(contextId)); > }); > } > >@@ -486,7 +486,7 @@ void VideoFullscreenManager::didExitFullscreen(uint64_t contextId) > #if PLATFORM(IOS_FAMILY) > dispatch_async(dispatch_get_main_queue(), [protectedThis = makeRefPtr(this), contextId, interface] { > if (protectedThis->m_page) >- protectedThis->m_page->send(Messages::VideoFullscreenManagerProxy::CleanupFullscreen(contextId), protectedThis->m_page->pageID()); >+ protectedThis->m_page->send(Messages::VideoFullscreenManagerProxy::CleanupFullscreen(contextId)); > }); > #else > model->waitForPreparedForInlineThen([protectedThis = makeRefPtr(this), contextId, interface, model] () mutable { >@@ -498,7 +498,7 @@ void VideoFullscreenManager::didExitFullscreen(uint64_t contextId) > interface->setLayerHostingContext(nullptr); > } > if (protectedThis->m_page) >- protectedThis->m_page->send(Messages::VideoFullscreenManagerProxy::CleanupFullscreen(contextId), protectedThis->m_page->pageID()); >+ protectedThis->m_page->send(Messages::VideoFullscreenManagerProxy::CleanupFullscreen(contextId)); > }); > }); > }); >@@ -555,7 +555,7 @@ void VideoFullscreenManager::fullscreenMayReturnToInline(uint64_t contextId, boo > > if (!isPageVisible) > model.videoElement()->scrollIntoViewIfNotVisible(false); >- m_page->send(Messages::VideoFullscreenManagerProxy::PreparedToReturnToInline(contextId, true, inlineVideoFrame(*model.videoElement())), m_page->pageID()); >+ m_page->send(Messages::VideoFullscreenManagerProxy::PreparedToReturnToInline(contextId, true, inlineVideoFrame(*model.videoElement()))); > } > > void VideoFullscreenManager::requestRouteSharingPolicyAndContextUID(uint64_t contextId, Messages::VideoFullscreenManager::RequestRouteSharingPolicyAndContextUID::AsyncReply&& reply) >diff --git a/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm b/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm >index 2e190b035f7280b1fbedb3af001e6958c4202116..b9ce79d274c4127ba78f54a52f637e95e851f6ac 100644 >--- a/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm >+++ b/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm >@@ -539,7 +539,7 @@ static NSURL *origin(WebPage& page) > #endif > > #if PLATFORM(MAC) >-static RetainPtr<NSArray<NSString *>> activePagesOrigins(const HashMap<uint64_t, RefPtr<WebPage>>& pageMap) >+static RetainPtr<NSArray<NSString *>> activePagesOrigins(const HashMap<PageIdentifier, RefPtr<WebPage>>& pageMap) > { > RetainPtr<NSMutableArray<NSString *>> activeOrigins = adoptNS([[NSMutableArray alloc] init]); > >diff --git a/Source/WebKit/WebProcess/gtk/WaylandCompositorDisplay.cpp b/Source/WebKit/WebProcess/gtk/WaylandCompositorDisplay.cpp >index 61e6a7ec8d80e5142b8ad3e675c836e2cb055399..bf25e106d7c179c7cb535c2c33c82b789642ba1c 100644 >--- a/Source/WebKit/WebProcess/gtk/WaylandCompositorDisplay.cpp >+++ b/Source/WebKit/WebProcess/gtk/WaylandCompositorDisplay.cpp >@@ -58,7 +58,7 @@ void WaylandCompositorDisplay::bindSurfaceToPage(struct wl_surface* surface, Web > if (!m_webkitgtk) > return; > >- wl_webkitgtk_bind_surface_to_page(reinterpret_cast<struct wl_webkitgtk*>(m_webkitgtk.get()), surface, page.pageID()); >+ wl_webkitgtk_bind_surface_to_page(reinterpret_cast<struct wl_webkitgtk*>(m_webkitgtk.get()), surface, page.pageID().toUInt64()); > wl_display_roundtrip(m_display); > } > >diff --git a/Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.cpp b/Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.cpp >index 9872c31ba584d71da15911b458f5111d1a791c1f..796024c8ce49a5acfa8b1fb6584fab830594ce4e 100644 >--- a/Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.cpp >+++ b/Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.cpp >@@ -111,7 +111,7 @@ void WebResourceLoadScheduler::loadResourceSynchronously(FrameLoader& frameLoade > ResourceHandle::loadResourceSynchronously(frameLoader.networkingContext(), request, options.credentials == FetchOptions::Credentials::Omit ? StoredCredentialsPolicy::DoNotUse : StoredCredentialsPolicy::Use, error, response, data); > } > >-void WebResourceLoadScheduler::pageLoadCompleted(uint64_t /*webPageID*/) >+void WebResourceLoadScheduler::pageLoadCompleted(PageIdentifier) > { > } > >diff --git a/Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.h b/Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.h >index 55b3697530658214bc979a8792b660726d8296dd..5f62f777aa79b0075573e5afccc56d2e63552ea8 100644 >--- a/Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.h >+++ b/Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.h >@@ -46,7 +46,7 @@ public: > > void loadResource(WebCore::Frame&, WebCore::CachedResource&, WebCore::ResourceRequest&&, const WebCore::ResourceLoaderOptions&, CompletionHandler<void(RefPtr<WebCore::SubresourceLoader>&&)>&&) final; > void loadResourceSynchronously(WebCore::FrameLoader&, unsigned long, const WebCore::ResourceRequest&, WebCore::ClientCredentialPolicy, const WebCore::FetchOptions&, const WebCore::HTTPHeaderMap&, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>&) final; >- void pageLoadCompleted(uint64_t webPageID) final; >+ void pageLoadCompleted(WebCore::PageIdentifier) final; > > void remove(WebCore::ResourceLoader*) final; > void setDefersLoading(WebCore::ResourceLoader&, bool) final; >diff --git a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h >index 1385583af29d174413d505795afa95b5c88966bb..b1403d056393b397d017d093de5fe04cdcca8ccd 100644 >--- a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h >+++ b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h >@@ -63,7 +63,7 @@ private: > void frameLoaderDestroyed() final; > bool hasWebView() const final; // mainly for assertions > >- Optional<uint64_t> pageID() const final; >+ Optional<WebCore::PageIdentifier> pageID() const final; > Optional<uint64_t> frameID() const final; > PAL::SessionID sessionID() const final; > >diff --git a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >index 7f869f1ddcb9a19080aab2005f9bf732ae87dddf..7eba3a98aa3da9066dfb7c5b922d10910b142131 100644 >--- a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >+++ b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >@@ -209,7 +209,7 @@ WebFrameLoaderClient::WebFrameLoaderClient(WebFrame *webFrame) > { > } > >-Optional<uint64_t> WebFrameLoaderClient::pageID() const >+Optional<PageIdentifier> WebFrameLoaderClient::pageID() const > { > return WTF::nullopt; > } >diff --git a/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp >index 5c5813f91c1ed087c7d8246144a6e5beed904807..2bcf26269e1084c4d72f844a731e5956ee2e7f85 100644 >--- a/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp >+++ b/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp >@@ -122,7 +122,7 @@ void WebFrameLoaderClient::frameLoaderDestroyed() > { > } > >-Optional<uint64_t> WebFrameLoaderClient::pageID() const >+Optional<WebCore::PageIdentifier> WebFrameLoaderClient::pageID() const > { > return WTF::nullopt; > } >diff --git a/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h >index 322c09005aa5ee573b4d702d6e1db250605d1b5f..6975fd8a3f6aa58795e8669f6866ccfc5210d841 100644 >--- a/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h >+++ b/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h >@@ -51,7 +51,7 @@ public: > > void dispatchDidFailToStartPlugin(const WebCore::PluginView&) const; > >- Optional<uint64_t> pageID() const final; >+ Optional<WebCore::PageIdentifier> pageID() const final; > Optional<uint64_t> frameID() const final; > PAL::SessionID sessionID() const final; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198206
:
370541
|
370554
|
370572
|
370573
|
370576
|
370589
|
370590
|
370592
|
370598
|
370600
|
370604
|
370613
|
370614
|
370618
|
370619
|
370621
|
370696
|
370697
|
370698
|
370701