Title: [239620] trunk/Source/WebCore
Revision
239620
Author
[email protected]
Date
2019-01-04 10:47:22 -0800 (Fri, 04 Jan 2019)

Log Message

Crash in WebCore::ServiceWorkerGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=192513
<rdar://problem/46563880>

Reviewed by Alex Christensen.

Store the identifier in its own variable to make sure we do not use workerThread after being moved.

* workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::skipWaiting):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (239619 => 239620)


--- trunk/Source/WebCore/ChangeLog	2019-01-04 18:44:59 UTC (rev 239619)
+++ trunk/Source/WebCore/ChangeLog	2019-01-04 18:47:22 UTC (rev 239620)
@@ -1,3 +1,16 @@
+2019-01-04  Youenn Fablet  <[email protected]>
+
+        Crash in WebCore::ServiceWorkerGlobalScope
+        https://bugs.webkit.org/show_bug.cgi?id=192513
+        <rdar://problem/46563880>
+
+        Reviewed by Alex Christensen.
+
+        Store the identifier in its own variable to make sure we do not use workerThread after being moved.
+
+        * workers/service/ServiceWorkerGlobalScope.cpp:
+        (WebCore::ServiceWorkerGlobalScope::skipWaiting):
+
 2019-01-04  Chris Fleizach  <[email protected]>
 
         AX: String check: "Rule" does not reflect the meaning of the <hr> html tag

Modified: trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp (239619 => 239620)


--- trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp	2019-01-04 18:44:59 UTC (rev 239619)
+++ trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp	2019-01-04 18:47:22 UTC (rev 239620)
@@ -62,7 +62,8 @@
 
     callOnMainThread([workerThread = makeRef(thread()), requestIdentifier]() mutable {
         if (auto* connection = SWContextManager::singleton().connection()) {
-            connection->skipWaiting(workerThread->identifier(), [workerThread = WTFMove(workerThread), requestIdentifier] {
+            auto identifier = workerThread->identifier();
+            connection->skipWaiting(identifier, [workerThread = WTFMove(workerThread), requestIdentifier] {
                 workerThread->runLoop().postTask([requestIdentifier](auto& context) {
                     auto& scope = downcast<ServiceWorkerGlobalScope>(context);
                     if (auto promise = scope.m_pendingSkipWaitingPromises.take(requestIdentifier))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to