Title: [251823] trunk/Source/WebKit
Revision
251823
Author
[email protected]
Date
2019-10-30 16:59:42 -0700 (Wed, 30 Oct 2019)

Log Message

REGRESSION(r251568) If we didn't start a Service Worker, don't try talking to it
https://bugs.webkit.org/show_bug.cgi?id=203639
<rdar://problem/56762071>

Reviewed by Chris Dumez.

Similar to the fix that introduced this regression, if the UI process does
not have the entitlement to start a service worker, we should not try
to load with one.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): If the
parent process doesn't have a service worker, use the regular load path.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (251822 => 251823)


--- trunk/Source/WebKit/ChangeLog	2019-10-30 23:40:19 UTC (rev 251822)
+++ trunk/Source/WebKit/ChangeLog	2019-10-30 23:59:42 UTC (rev 251823)
@@ -1,3 +1,19 @@
+2019-10-30  Dean Jackson  <[email protected]>
+
+        REGRESSION(r251568) If we didn't start a Service Worker, don't try talking to it
+        https://bugs.webkit.org/show_bug.cgi?id=203639
+        <rdar://problem/56762071>
+
+        Reviewed by Chris Dumez.
+
+        Similar to the fix that introduced this regression, if the UI process does
+        not have the entitlement to start a service worker, we should not try
+        to load with one.
+
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): If the
+        parent process doesn't have a service worker, use the regular load path.
+
 2019-10-30  Simon Fraser  <[email protected]>
 
         Turn Resize Observer on by default

Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (251822 => 251823)


--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp	2019-10-30 23:40:19 UTC (rev 251822)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp	2019-10-30 23:59:42 UTC (rev 251823)
@@ -409,15 +409,18 @@
 void NetworkConnectionToWebProcess::scheduleResourceLoad(NetworkResourceLoadParameters&& loadParameters)
 {
 #if ENABLE(SERVICE_WORKER)
-    auto& server = m_networkProcess->swServerForSession(m_sessionID);
-    if (!server.isImportCompleted()) {
-        server.whenImportIsCompleted([this, protectedThis = makeRef(*this), loadParameters = WTFMove(loadParameters)]() mutable {
-            if (!m_networkProcess->webProcessConnection(webProcessIdentifier()))
-                return;
-            ASSERT(m_networkProcess->swServerForSession(m_sessionID).isImportCompleted());
-            scheduleResourceLoad(WTFMove(loadParameters));
-        });
-        return;
+    bool serviceWorkerAllowed = m_networkProcess->parentProcessHasServiceWorkerEntitlement();
+    if (serviceWorkerAllowed) {
+        auto& server = m_networkProcess->swServerForSession(m_sessionID);
+        if (!server.isImportCompleted()) {
+            server.whenImportIsCompleted([this, protectedThis = makeRef(*this), loadParameters = WTFMove(loadParameters)]() mutable {
+                if (!m_networkProcess->webProcessConnection(webProcessIdentifier()))
+                    return;
+                ASSERT(m_networkProcess->swServerForSession(m_sessionID).isImportCompleted());
+                scheduleResourceLoad(WTFMove(loadParameters));
+            });
+            return;
+        }
     }
 #endif
     auto identifier = loadParameters.identifier;
@@ -428,10 +431,12 @@
     auto& loader = m_networkResourceLoaders.add(identifier, NetworkResourceLoader::create(WTFMove(loadParameters), *this)).iterator->value;
 
 #if ENABLE(SERVICE_WORKER)
-    loader->startWithServiceWorker();
-#else
+    if (serviceWorkerAllowed) {
+        loader->startWithServiceWorker();
+        return;
+    } else
+#endif
     loader->start();
-#endif
 }
 
 void NetworkConnectionToWebProcess::performSynchronousLoad(NetworkResourceLoadParameters&& loadParameters, Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply&& reply)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to