Drop FrameLoaderClient::sessionID()
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Sep 2019 17:14:15 +0000 (17:14 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Sep 2019 17:14:15 +0000 (17:14 +0000)
https://bugs.webkit.org/show_bug.cgi?id=201916

Reviewed by Geoffrey Garen.

Drop FrameLoaderClient::sessionID(). The Frame can get the sessionID from its page (Which is
what the FrameLoaderClient::sessionID() ended up doing) and other call sites at WebKit2 layer
can get the sessionID from the WebProcess singleton.

Source/WebCore:

* loader/EmptyClients.cpp:
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoaderClient.h:
* page/Frame.cpp:
(WebCore::Frame::sessionID const):

Source/WebKit:

* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient):
(WebKit::WebSWContextManagerConnection::installServiceWorker):
* WebProcess/Storage/WebSWContextManagerConnection.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250043 268f45cc-cd09-0410-ab3c-d52691b4dbfc

16 files changed:
Source/WebCore/ChangeLog
Source/WebCore/loader/EmptyClients.cpp
Source/WebCore/loader/EmptyFrameLoaderClient.h
Source/WebCore/loader/FrameLoaderClient.h
Source/WebCore/page/Frame.cpp
Source/WebKit/ChangeLog
Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp
Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h
Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
Source/WebKitLegacy/mac/ChangeLog
Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h
Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp
Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h

index 62a7081..9154aef 100644 (file)
@@ -1,5 +1,22 @@
 2019-09-18  Chris Dumez  <cdumez@apple.com>
 
+        Drop FrameLoaderClient::sessionID()
+        https://bugs.webkit.org/show_bug.cgi?id=201916
+
+        Reviewed by Geoffrey Garen.
+
+        Drop FrameLoaderClient::sessionID(). The Frame can get the sessionID from its page (Which is
+        what the FrameLoaderClient::sessionID() ended up doing) and other call sites at WebKit2 layer
+        can get the sessionID from the WebProcess singleton.
+
+        * loader/EmptyClients.cpp:
+        * loader/EmptyFrameLoaderClient.h:
+        * loader/FrameLoaderClient.h:
+        * page/Frame.cpp:
+        (WebCore::Frame::sessionID const):
+
+2019-09-18  Chris Dumez  <cdumez@apple.com>
+
         WebSWServerToContextConnection::PostMessageToServiceWorkerClient IPC no longer needs to take a sessionID
         https://bugs.webkit.org/show_bug.cgi?id=201883
 
index 2f66385..4af9787 100644 (file)
@@ -465,11 +465,6 @@ void EmptyChromeClient::showShareSheet(ShareDataWithParsedURL&, CompletionHandle
 {
 }
 
-PAL::SessionID EmptyFrameLoaderClient::sessionID() const
-{
-    return PAL::SessionID::defaultSessionID();
-}
-
 void EmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction(const NavigationAction&, const ResourceRequest&, FormState*, const String&, PolicyCheckIdentifier, FramePolicyFunction&&)
 {
 }
index 5b4812a..2f6d225 100644 (file)
@@ -42,7 +42,6 @@ class WEBCORE_EXPORT EmptyFrameLoaderClient : public FrameLoaderClient {
 
     Optional<FrameIdentifier> frameID() 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
 
index fe6ce4b..7f68019 100644 (file)
@@ -130,7 +130,6 @@ public:
 
     virtual Optional<PageIdentifier> pageID() const = 0;
     virtual Optional<FrameIdentifier> frameID() const = 0;
-    virtual PAL::SessionID sessionID() const = 0;
 
 #if PLATFORM(IOS_FAMILY)
     // Returns true if the client forced the layout.
index 441a04a..efaa39d 100644 (file)
@@ -1015,7 +1015,8 @@ void Frame::selfOnlyDeref()
 
 PAL::SessionID Frame::sessionID() const
 {
-    return m_loader->client().sessionID();
+    auto* page = this->page();
+    return page ? page->sessionID() : PAL::SessionID::defaultSessionID();
 }
 
 } // namespace WebCore
index 2b09170..95c113c 100644 (file)
@@ -1,5 +1,25 @@
 2019-09-18  Chris Dumez  <cdumez@apple.com>
 
+        Drop FrameLoaderClient::sessionID()
+        https://bugs.webkit.org/show_bug.cgi?id=201916
+
+        Reviewed by Geoffrey Garen.
+
+        Drop FrameLoaderClient::sessionID(). The Frame can get the sessionID from its page (Which is
+        what the FrameLoaderClient::sessionID() ended up doing) and other call sites at WebKit2 layer
+        can get the sessionID from the WebProcess singleton.
+
+        * WebProcess/Network/WebLoaderStrategy.cpp:
+        (WebKit::WebLoaderStrategy::scheduleLoad):
+        * WebProcess/Storage/WebSWContextManagerConnection.cpp:
+        (WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient):
+        (WebKit::WebSWContextManagerConnection::installServiceWorker):
+        * WebProcess/Storage/WebSWContextManagerConnection.h:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+
+2019-09-18  Chris Dumez  <cdumez@apple.com>
+
         WebServiceWorkerProvider::handleFetch() does not need to take in a sessionID
         https://bugs.webkit.org/show_bug.cgi?id=201917
 
index 49a42bb..6ced152 100644 (file)
@@ -168,7 +168,7 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou
     trackingParameters.pageID = frameLoaderClient.pageID().valueOr(PageIdentifier { });
     trackingParameters.frameID = frameLoaderClient.frameID().valueOr(FrameIdentifier { });
     trackingParameters.resourceID = identifier;
-    auto sessionID = frameLoaderClient.sessionID();
+    auto sessionID = WebProcess::singleton().sessionID();
 
 #if ENABLE(WEB_ARCHIVE) || ENABLE(MHTML)
     // If the DocumentLoader schedules this as an archive resource load,
index e59083c..fa60272 100644 (file)
@@ -72,9 +72,8 @@ using namespace WebCore;
 static const Seconds asyncWorkerTerminationTimeout { 10_s };
 static const Seconds syncWorkerTerminationTimeout { 100_ms }; // Only used by layout tests.
 
-ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient(WebSWContextManagerConnection& connection, SessionID sessionID, WebPageProxyIdentifier webPageProxyID, PageIdentifier pageID, FrameIdentifier frameID, const String& userAgent)
+ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient(WebSWContextManagerConnection& connection, WebPageProxyIdentifier webPageProxyID, PageIdentifier pageID, FrameIdentifier frameID, const String& userAgent)
     : m_connection(connection)
-    , m_sessionID(sessionID)
     , m_webPageProxyID(webPageProxyID)
     , m_pageID(pageID)
     , m_frameID(frameID)
@@ -139,7 +138,7 @@ void WebSWContextManagerConnection::installServiceWorker(const ServiceWorkerCont
     // FIXME: This method should be moved directly to WebCore::SWContextManager::Connection
     // If it weren't for ServiceWorkerFrameLoaderClient's dependence on WebDocumentLoader, this could already happen.
     // FIXME: Weird to pass m_previousServiceWorkerID as a FrameIdentifier.
-    auto frameLoaderClient = makeUnique<ServiceWorkerFrameLoaderClient>(*this, sessionID, m_webPageProxyID, m_pageID, frameIdentifierFromID(++m_previousServiceWorkerID), effectiveUserAgent);
+    auto frameLoaderClient = makeUnique<ServiceWorkerFrameLoaderClient>(*this, m_webPageProxyID, m_pageID, frameIdentifierFromID(++m_previousServiceWorkerID), effectiveUserAgent);
     pageConfiguration.loaderClientForMainFrame = frameLoaderClient.get();
     m_loaders.add(WTFMove(frameLoaderClient));
 
index 5670414..57b2029 100644 (file)
@@ -119,7 +119,7 @@ private:
 
 class ServiceWorkerFrameLoaderClient final : public WebCore::EmptyFrameLoaderClient {
 public:
-    ServiceWorkerFrameLoaderClient(WebSWContextManagerConnection&, PAL::SessionID, WebPageProxyIdentifier, WebCore::PageIdentifier, WebCore::FrameIdentifier, const String& userAgent);
+    ServiceWorkerFrameLoaderClient(WebSWContextManagerConnection&, WebPageProxyIdentifier, WebCore::PageIdentifier, WebCore::FrameIdentifier, const String& userAgent);
 
     void setUserAgent(String&& userAgent) { m_userAgent = WTFMove(userAgent); }
     
@@ -135,11 +135,9 @@ private:
     bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long) final { return true; }
     bool isServiceWorkerFrameLoaderClient() const final { return true; }
 
-    PAL::SessionID sessionID() const final { return m_sessionID; }
     String userAgent(const URL&) final { return m_userAgent; }
 
     WebSWContextManagerConnection& m_connection;
-    PAL::SessionID m_sessionID;
     WebPageProxyIdentifier m_webPageProxyID;
     WebCore::PageIdentifier m_pageID;
     WebCore::FrameIdentifier m_frameID;
index c54f7df..8947198 100644 (file)
@@ -136,16 +136,6 @@ Optional<FrameIdentifier> WebFrameLoaderClient::frameID() const
     return WTF::nullopt;
 }
 
-PAL::SessionID WebFrameLoaderClient::sessionID() const
-{
-    WebPage* page = m_frame ? m_frame->page() : nullptr;
-    if (!page || !page->corePage()) {
-        ASSERT_NOT_REACHED();
-        return PAL::SessionID::defaultSessionID();
-    }
-    return page->sessionID();
-}
-
 #if ENABLE(RESOURCE_LOAD_STATISTICS)
 void WebFrameLoaderClient::setHasFrameSpecificStorageAccess(FrameSpecificStorageAccessIdentifier&& frameSpecificStorageAccessIdentifier )
 {
index 5ab31e5..0468b6b 100644 (file)
@@ -56,7 +56,6 @@ public:
     Optional<WebPageProxyIdentifier> webPageProxyID() const;
     Optional<WebCore::PageIdentifier> pageID() const final;
     Optional<WebCore::FrameIdentifier> frameID() const final;
-    PAL::SessionID sessionID() const final;
 
 #if ENABLE(RESOURCE_LOAD_STATISTICS)
     bool hasFrameSpecificStorageAccess() final { return !!m_frameSpecificStorageAccessIdentifier; }
index db3e2ae..033818d 100644 (file)
@@ -1,3 +1,17 @@
+2019-09-18  Chris Dumez  <cdumez@apple.com>
+
+        Drop FrameLoaderClient::sessionID()
+        https://bugs.webkit.org/show_bug.cgi?id=201916
+
+        Reviewed by Geoffrey Garen.
+
+        Drop FrameLoaderClient::sessionID(). The Frame can get the sessionID from its page (Which is
+        what the FrameLoaderClient::sessionID() ended up doing) and other call sites at WebKit2 layer
+        can get the sessionID from the WebProcess singleton.
+
+        * WebCoreSupport/WebFrameLoaderClient.h:
+        * WebCoreSupport/WebFrameLoaderClient.mm:
+
 2019-09-17  Chris Dumez  <cdumez@apple.com>
 
         Stop calling Page::setSessionID() from WebKit2
index d60630f..534bbb8 100644 (file)
@@ -65,7 +65,6 @@ private:
 
     Optional<WebCore::PageIdentifier> pageID() const final;
     Optional<WebCore::FrameIdentifier> frameID() const final;
-    PAL::SessionID sessionID() const final;
 
     void makeRepresentation(WebCore::DocumentLoader*) final;
     bool hasHTMLView() const final;
index 24140cd..1376612 100644 (file)
@@ -219,12 +219,6 @@ Optional<FrameIdentifier> WebFrameLoaderClient::frameID() const
     return WTF::nullopt;
 }
 
-PAL::SessionID WebFrameLoaderClient::sessionID() const
-{
-    auto* coreFrame = core(m_webFrame.get());
-    return coreFrame && coreFrame->page() ? coreFrame->page()->sessionID() : PAL::SessionID::defaultSessionID();
-}
-
 void WebFrameLoaderClient::frameLoaderDestroyed()
 {
     [m_webFrame.get() _clearCoreFrame];
index 2346eb9..29b8547 100644 (file)
@@ -133,12 +133,6 @@ Optional<WebCore::FrameIdentifier> WebFrameLoaderClient::frameID() const
     return WTF::nullopt;
 }
 
-PAL::SessionID WebFrameLoaderClient::sessionID() const
-{
-    auto* coreFrame = core(m_webFrame);
-    return coreFrame && coreFrame->page() ? coreFrame->page()->sessionID() : PAL::SessionID::defaultSessionID();
-}
-
 bool WebFrameLoaderClient::hasWebView() const
 {
     return m_webFrame->webView();
index c77e22e..1a2d2f8 100644 (file)
@@ -53,7 +53,6 @@ public:
 
     Optional<WebCore::PageIdentifier> pageID() const final;
     Optional<WebCore::FrameIdentifier> frameID() const final;
-    PAL::SessionID sessionID() const final;
 
     bool hasWebView() const override;