Title: [224611] trunk/Source/WebCore
Revision
224611
Author
beid...@apple.com
Date
2017-11-08 17:13:27 -0800 (Wed, 08 Nov 2017)

Log Message

ServiceWorkerRegistration::updateStateFromServer fix! (Don't always create a new ServiceWorker every time).
https://bugs.webkit.org/show_bug.cgi?id=179456

Reviewed by Chris Dumez.

No new tests (No behavior change yet).

* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::updateStateFromServer): Re-use a previous worker instead of always creating a new one.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (224610 => 224611)


--- trunk/Source/WebCore/ChangeLog	2017-11-09 00:53:58 UTC (rev 224610)
+++ trunk/Source/WebCore/ChangeLog	2017-11-09 01:13:27 UTC (rev 224611)
@@ -1,3 +1,15 @@
+2017-11-08  Brady Eidson  <beid...@apple.com>
+
+        ServiceWorkerRegistration::updateStateFromServer fix! (Don't always create a new ServiceWorker every time).
+        https://bugs.webkit.org/show_bug.cgi?id=179456
+
+        Reviewed by Chris Dumez.
+
+        No new tests (No behavior change yet).
+
+        * workers/service/ServiceWorkerRegistration.cpp:
+        (WebCore::ServiceWorkerRegistration::updateStateFromServer): Re-use a previous worker instead of always creating a new one.
+
 2017-11-08  Brent Fulgham  <bfulg...@apple.com>
 
         XMLHttpRequest should not treat file URLs as same origin

Modified: trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.cpp (224610 => 224611)


--- trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.cpp	2017-11-09 00:53:58 UTC (rev 224610)
+++ trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.cpp	2017-11-09 01:13:27 UTC (rev 224611)
@@ -170,8 +170,13 @@
         return;
 
     RefPtr<ServiceWorker> worker;
-    if (serviceWorkerIdentifier)
-        worker = ServiceWorker::create(*context, *serviceWorkerIdentifier, m_registrationData.scriptURL);
+    if (serviceWorkerIdentifier) {
+        auto* newestWorker = getNewestWorker();
+        if (newestWorker && newestWorker->identifier() == *serviceWorkerIdentifier)
+            worker = newestWorker;
+        else
+            worker = ServiceWorker::create(*context, *serviceWorkerIdentifier, m_registrationData.scriptURL);
+    }
 
     switch (state) {
     case ServiceWorkerRegistrationState::Installing:
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to