Title: [286286] trunk/Source
Revision
286286
Author
[email protected]
Date
2021-11-30 00:43:48 -0800 (Tue, 30 Nov 2021)

Log Message

Remove unnecessary service worker page settings handling
https://bugs.webkit.org/show_bug.cgi?id=233468

Reviewed by Chris Dumez.

Source/WebCore:

Use Settings.shouldUseServiceWorkerShortTimeout instead of dedicated SWContextManager::Connection::shouldUseShortTimeout.
Remove SWContextManager::Connection::shouldUseShortTimeout.
Change ServiceWorkerThreadProxy::createPageForServiceWorker into ServiceWorkerThreadProxy::setupPageForServiceWorker
so that we apply page settings before creating the page document.

No change of behavior.

* workers/service/context/SWContextManager.h:
(WebCore::SWContextManager::Connection::isClosed const):
(WebCore::SWContextManager::Connection::setAsClosed):
(WebCore::SWContextManager::Connection::shouldUseShortTimeout const): Deleted.
(WebCore::SWContextManager::Connection::setShouldUseShortTimeout): Deleted.
* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::setupPageForServiceWorker):
(WebCore::ServiceWorkerThreadProxy::createPageForServiceWorker): Deleted.
* workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Use ServiceWorkerThreadProxy::setupPageForServiceWorker and remove WebPreferences specific handling.

* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
(WebKit::WebSWContextManagerConnection::installServiceWorker):
* WebProcess/Storage/WebSWContextManagerConnection.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (286285 => 286286)


--- trunk/Source/WebCore/ChangeLog	2021-11-30 07:28:29 UTC (rev 286285)
+++ trunk/Source/WebCore/ChangeLog	2021-11-30 08:43:48 UTC (rev 286286)
@@ -1,3 +1,29 @@
+2021-11-30  Youenn Fablet  <[email protected]>
+
+        Remove unnecessary service worker page settings handling
+        https://bugs.webkit.org/show_bug.cgi?id=233468
+
+        Reviewed by Chris Dumez.
+
+        Use Settings.shouldUseServiceWorkerShortTimeout instead of dedicated SWContextManager::Connection::shouldUseShortTimeout.
+        Remove SWContextManager::Connection::shouldUseShortTimeout.
+        Change ServiceWorkerThreadProxy::createPageForServiceWorker into ServiceWorkerThreadProxy::setupPageForServiceWorker
+        so that we apply page settings before creating the page document.
+
+        No change of behavior.
+
+        * workers/service/context/SWContextManager.h:
+        (WebCore::SWContextManager::Connection::isClosed const):
+        (WebCore::SWContextManager::Connection::setAsClosed):
+        (WebCore::SWContextManager::Connection::shouldUseShortTimeout const): Deleted.
+        (WebCore::SWContextManager::Connection::setShouldUseShortTimeout): Deleted.
+        * workers/service/context/ServiceWorkerThread.cpp:
+        (WebCore::ServiceWorkerThread::ServiceWorkerThread):
+        * workers/service/context/ServiceWorkerThreadProxy.cpp:
+        (WebCore::ServiceWorkerThreadProxy::setupPageForServiceWorker):
+        (WebCore::ServiceWorkerThreadProxy::createPageForServiceWorker): Deleted.
+        * workers/service/context/ServiceWorkerThreadProxy.h:
+
 2021-11-29  Chris Dumez  <[email protected]>
 
         Add initial implementation for the Web Lock API

Modified: trunk/Source/WebCore/workers/service/context/SWContextManager.h (286285 => 286286)


--- trunk/Source/WebCore/workers/service/context/SWContextManager.h	2021-11-30 07:28:29 UTC (rev 286285)
+++ trunk/Source/WebCore/workers/service/context/SWContextManager.h	2021-11-30 08:43:48 UTC (rev 286286)
@@ -72,15 +72,12 @@
         virtual bool isThrottleable() const = 0;
 
         bool isClosed() const { return m_isClosed; }
-        bool shouldUseShortTimeout() const { return m_shouldUseShortTimeout; }
 
     protected:
         void setAsClosed() { m_isClosed = true; }
-        void setShouldUseShortTimeout(bool value) { m_shouldUseShortTimeout = value; }
 
     private:
         bool m_isClosed { false };
-        bool m_shouldUseShortTimeout { false };
     };
 
     WEBCORE_EXPORT void setConnection(std::unique_ptr<Connection>&&);

Modified: trunk/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp (286285 => 286286)


--- trunk/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp	2021-11-30 07:28:29 UTC (rev 286285)
+++ trunk/Source/WebCore/workers/service/context/ServiceWorkerThread.cpp	2021-11-30 08:43:48 UTC (rev 286286)
@@ -103,7 +103,7 @@
     , m_contextData(crossThreadCopy(WTFMove(contextData)))
     , m_workerData(crossThreadCopy(WTFMove(workerData)))
     , m_workerObjectProxy(DummyServiceWorkerThreadProxy::shared())
-    , m_heartBeatTimeout(SWContextManager::singleton().connection()->shouldUseShortTimeout() ? heartBeatTimeoutForTest : heartBeatTimeout)
+    , m_heartBeatTimeout(settingsValues.shouldUseServiceWorkerShortTimeout ? heartBeatTimeoutForTest : heartBeatTimeout)
     , m_heartBeatTimer { *this, &ServiceWorkerThread::heartBeatTimerFired }
 {
     ASSERT(isMainThread());

Modified: trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp (286285 => 286286)


--- trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp	2021-11-30 07:28:29 UTC (rev 286285)
+++ trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp	2021-11-30 08:43:48 UTC (rev 286286)
@@ -56,13 +56,9 @@
     return URL { URL { }, origin.toRawString() };
 }
 
-UniqueRef<Page> ServiceWorkerThreadProxy::createPageForServiceWorker(PageConfiguration&& configuration, const ServiceWorkerContextData& data, StorageBlockingPolicy storageBlockingPolicy)
+void ServiceWorkerThreadProxy::setupPageForServiceWorker(Page& page, const ServiceWorkerContextData& data)
 {
-    auto page = makeUniqueRef<Page>(WTFMove(configuration));
-
-    page->settings().setStorageBlockingPolicy(storageBlockingPolicy);
-
-    auto& mainFrame = page->mainFrame();
+    auto& mainFrame = page.mainFrame();
     mainFrame.loader().initForSynthesizedDocument({ });
     auto document = Document::createNonRenderedPlaceholder(mainFrame, data.scriptURL);
     document->createDOMWindow();
@@ -70,7 +66,7 @@
     document->storageBlockingStateDidChange();
 
     auto origin = data.registration.key.topOrigin().securityOrigin();
-    origin->setStorageBlockingPolicy(storageBlockingPolicy);
+    origin->setStorageBlockingPolicy(page.settings().storageBlockingPolicy());
 
     document->setSiteForCookies(topOriginURL(origin));
     document->setFirstPartyForCookies(topOriginURL(origin));
@@ -80,7 +76,6 @@
         document->setReferrerPolicy(*policy);
 
     mainFrame.setDocument(WTFMove(document));
-    return page;
 }
 
 static inline IDBClient::IDBConnectionProxy* idbConnectionProxy(Document& document)

Modified: trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h (286285 => 286286)


--- trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h	2021-11-30 07:28:29 UTC (rev 286285)
+++ trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h	2021-11-30 08:43:48 UTC (rev 286286)
@@ -54,7 +54,7 @@
 
 class ServiceWorkerThreadProxy final : public ThreadSafeRefCounted<ServiceWorkerThreadProxy>, public WorkerLoaderProxy, public WorkerDebuggerProxy {
 public:
-    WEBCORE_EXPORT static UniqueRef<Page> createPageForServiceWorker(PageConfiguration&&, const ServiceWorkerContextData&, StorageBlockingPolicy);
+    WEBCORE_EXPORT static void setupPageForServiceWorker(Page&, const ServiceWorkerContextData&);
 
     template<typename... Args> static Ref<ServiceWorkerThreadProxy> create(Args&&... args)
     {

Modified: trunk/Source/WebKit/ChangeLog (286285 => 286286)


--- trunk/Source/WebKit/ChangeLog	2021-11-30 07:28:29 UTC (rev 286285)
+++ trunk/Source/WebKit/ChangeLog	2021-11-30 08:43:48 UTC (rev 286286)
@@ -1,3 +1,17 @@
+2021-11-30  Youenn Fablet  <[email protected]>
+
+        Remove unnecessary service worker page settings handling
+        https://bugs.webkit.org/show_bug.cgi?id=233468
+
+        Reviewed by Chris Dumez.
+
+        Use ServiceWorkerThreadProxy::setupPageForServiceWorker and remove WebPreferences specific handling.
+
+        * WebProcess/Storage/WebSWContextManagerConnection.cpp:
+        (WebKit::WebSWContextManagerConnection::updatePreferencesStore):
+        (WebKit::WebSWContextManagerConnection::installServiceWorker):
+        * WebProcess/Storage/WebSWContextManagerConnection.h:
+
 2021-11-29  Tim Horton  <[email protected]>
 
         Fix the build

Modified: trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp (286285 => 286286)


--- trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp	2021-11-30 07:28:29 UTC (rev 286285)
+++ trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp	2021-11-30 08:43:48 UTC (rev 286286)
@@ -133,9 +133,6 @@
 {
     WebPage::updatePreferencesGenerated(store);
     m_preferencesStore = store;
-    // FIXME: Remove this specific handling and use page settings instead.
-    m_storageBlockingPolicy = static_cast<StorageBlockingPolicy>(store.getUInt32ValueForKey(WebPreferencesKey::storageBlockingPolicyKey()));
-    setShouldUseShortTimeout(store.getBoolValueForKey(WebPreferencesKey::shouldUseServiceWorkerShortTimeoutKey()));
 }
 
 void WebSWContextManagerConnection::updateAppInitiatedValue(ServiceWorkerIdentifier serviceWorkerIdentifier, WebCore::LastNavigationWasAppInitiated lastNavigationWasAppInitiated)
@@ -167,9 +164,10 @@
 #endif
     
     auto lastNavigationWasAppInitiated = contextData.lastNavigationWasAppInitiated;
-    auto page = ServiceWorkerThreadProxy::createPageForServiceWorker(WTFMove(pageConfiguration), contextData, m_storageBlockingPolicy);
+    auto page = makeUniqueRef<Page>(WTFMove(pageConfiguration));
     if (m_preferencesStore)
         WebPage::updateSettingsGenerated(*m_preferencesStore, page->settings());
+    ServiceWorkerThreadProxy::setupPageForServiceWorker(page.get(), contextData);
     auto serviceWorkerThreadProxy = ServiceWorkerThreadProxy::create(WTFMove(page), WTFMove(contextData), WTFMove(workerData), WTFMove(effectiveUserAgent), workerThreadMode, WebProcess::singleton().cacheStorageProvider());
 
     if (lastNavigationWasAppInitiated)

Modified: trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h (286285 => 286286)


--- trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h	2021-11-30 07:28:29 UTC (rev 286285)
+++ trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h	2021-11-30 08:43:48 UTC (rev 286286)
@@ -114,8 +114,6 @@
     WebPageProxyIdentifier m_webPageProxyID;
     WebCore::PageIdentifier m_pageID;
 
-    WebCore::StorageBlockingPolicy m_storageBlockingPolicy { WebCore::StorageBlockingPolicy::AllowAll };
-
     HashSet<std::unique_ptr<ServiceWorkerFrameLoaderClient>> m_loaders;
     HashMap<uint64_t, FindClientByIdentifierCallback> m_findClientByIdentifierRequests;
     HashMap<uint64_t, WebCore::ServiceWorkerClientsMatchAllCallback> m_matchAllRequests;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to