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;