Title: [255375] trunk/Source/WebKit
Revision
255375
Author
sihui_...@apple.com
Date
2020-01-29 12:38:40 -0800 (Wed, 29 Jan 2020)

Log Message

Crash under com.apple.WebKit.Networking at WebKit: WebKit::WebIDBServer::suspend
https://bugs.webkit.org/show_bug.cgi?id=206904
<rdar://problem/58791603>

Reviewed by Maciej Stachowiak.

Wait until m_server is set in constructor of WebIDBServer to make sure m_server can be accessed in
WebIDBServer::suspend.

* NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::WebIDBServer):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (255374 => 255375)


--- trunk/Source/WebKit/ChangeLog	2020-01-29 19:39:41 UTC (rev 255374)
+++ trunk/Source/WebKit/ChangeLog	2020-01-29 20:38:40 UTC (rev 255375)
@@ -1,3 +1,17 @@
+2020-01-29  Sihui Liu  <sihui_...@apple.com>
+
+        Crash under com.apple.WebKit.Networking at WebKit: WebKit::WebIDBServer::suspend
+        https://bugs.webkit.org/show_bug.cgi?id=206904
+        <rdar://problem/58791603>
+
+        Reviewed by Maciej Stachowiak.
+
+        Wait until m_server is set in constructor of WebIDBServer to make sure m_server can be accessed in 
+        WebIDBServer::suspend.
+
+        * NetworkProcess/IndexedDB/WebIDBServer.cpp:
+        (WebKit::WebIDBServer::WebIDBServer):
+
 2020-01-29  Brent Fulgham  <bfulg...@apple.com>
 
         Unreviewed, rolling out r255217 and r255217.

Modified: trunk/Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp (255374 => 255375)


--- trunk/Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp	2020-01-29 19:39:41 UTC (rev 255374)
+++ trunk/Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp	2020-01-29 20:38:40 UTC (rev 255375)
@@ -46,9 +46,12 @@
 {
     ASSERT(RunLoop::isMain());
 
-    postTask([this, protectedThis = makeRef(*this), sessionID, directory = directory.isolatedCopy(), spaceRequester = WTFMove(spaceRequester)] () mutable {
+    BinarySemaphore semaphore;
+    postTask([this, protectedThis = makeRef(*this), &semaphore, sessionID, directory = directory.isolatedCopy(), spaceRequester = WTFMove(spaceRequester)] () mutable {
         m_server = makeUnique<WebCore::IDBServer::IDBServer>(sessionID, directory, WTFMove(spaceRequester));
+        semaphore.signal();
     });
+    semaphore.wait();
 }
     
 void WebIDBServer::closeAndDeleteDatabasesModifiedSince(WallTime modificationTime, CompletionHandler<void()>&& callback)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to