Title: [261531] branches/safari-609-branch/Source/WebKit
Revision
261531
Author
[email protected]
Date
2020-05-11 17:30:39 -0700 (Mon, 11 May 2020)

Log Message

Apply patch. rdar://problem/62978118

Modified Paths


Diff

Modified: branches/safari-609-branch/Source/WebKit/ChangeLog (261530 => 261531)


--- branches/safari-609-branch/Source/WebKit/ChangeLog	2020-05-12 00:22:29 UTC (rev 261530)
+++ branches/safari-609-branch/Source/WebKit/ChangeLog	2020-05-12 00:30:39 UTC (rev 261531)
@@ -1,5 +1,19 @@
 2020-05-11  Alan Coon  <[email protected]>
 
+        Apply patch. rdar://problem/62978118
+
+    2020-05-11  youenn fablet  <[email protected]>
+
+            Starting a service worker process may enter an infinite loop.
+            rdar://problem/62467974
+
+            * UIProcess/WebProcessPool.cpp:
+            Make sure that, if we have an entry in m_serviceWorkerProcesses, it is not null before completing the handler.
+            If we have a null entry, behave as if there was no entry.
+            This ensures the UIProcess will not answer to NetworkProcess too early to say that it has a service worker connection.
+
+2020-05-11  Alan Coon  <[email protected]>
+
         Cherry-pick r260979. rdar://problem/62978869
 
     REGRESSION: Double tap dispatches one click event on iOS 13.4 when it would dispatch two on iOS 13.3

Modified: branches/safari-609-branch/Source/WebKit/UIProcess/WebProcessPool.cpp (261530 => 261531)


--- branches/safari-609-branch/Source/WebKit/UIProcess/WebProcessPool.cpp	2020-05-12 00:22:29 UTC (rev 261530)
+++ branches/safari-609-branch/Source/WebKit/UIProcess/WebProcessPool.cpp	2020-05-12 00:30:39 UTC (rev 261531)
@@ -742,7 +742,7 @@
     }
 
     RegistrableDomainWithSessionID registrableDomainWithSessionID { RegistrableDomain { registrableDomain }, sessionID };
-    if (m_serviceWorkerProcesses.contains(registrableDomainWithSessionID)) {
+    if (auto worker = m_serviceWorkerProcesses.get(registrableDomainWithSessionID)) {
         WEBPROCESSPOOL_RELEASE_LOG_IF_ALLOWED(ServiceWorker, "establishWorkerContextConnectionToNetworkProcess process already created");
         completionHandler();
         return;
@@ -779,8 +779,7 @@
         m_processes.append(WTFMove(newProcessProxy));
     }
 
-    ASSERT(!m_serviceWorkerProcesses.contains(registrableDomainWithSessionID));
-    m_serviceWorkerProcesses.add(WTFMove(registrableDomainWithSessionID), makeWeakPtr(serviceWorkerProcessProxy));
+    m_serviceWorkerProcesses.set(WTFMove(registrableDomainWithSessionID), makeWeakPtr(serviceWorkerProcessProxy));
 
     serviceWorkerProcessProxy->establishServiceWorkerContext(m_serviceWorkerPreferences ? m_serviceWorkerPreferences.value() : m_defaultPageGroup->preferences().store(), WTFMove(completionHandler));
     if (!m_serviceWorkerUserAgent.isNull())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to