Title: [248543] trunk/Source/WebKit
Revision
248543
Author
[email protected]
Date
2019-08-12 12:46:40 -0700 (Mon, 12 Aug 2019)

Log Message

Clear m_sessionStorageNamespaces on the background thread
https://bugs.webkit.org/show_bug.cgi?id=200631
<rdar://problem/54149638>

Reviewed by Chris Dumez.

Network process receives messages about web page state from web process and destroys sessionStorageNamespace if
needed. It also receives messages about session state from UI process and destroys StorageManager, which owns
SessionStorageNamespaces, if needed. Because of the race in receiving the messages from different processes,
network process may decide to destroy StorageManager before destroying all SessionStorageNamespaces, and
SessionStorageNamespaces are destroyed with StorageManager on the main thread.

* NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::waitUntilTasksFinished):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (248542 => 248543)


--- trunk/Source/WebKit/ChangeLog	2019-08-12 19:33:53 UTC (rev 248542)
+++ trunk/Source/WebKit/ChangeLog	2019-08-12 19:46:40 UTC (rev 248543)
@@ -1,5 +1,22 @@
 2019-08-12  Sihui Liu  <[email protected]>
 
+        Clear m_sessionStorageNamespaces on the background thread
+        https://bugs.webkit.org/show_bug.cgi?id=200631
+        <rdar://problem/54149638>
+
+        Reviewed by Chris Dumez.
+
+        Network process receives messages about web page state from web process and destroys sessionStorageNamespace if 
+        needed. It also receives messages about session state from UI process and destroys StorageManager, which owns 
+        SessionStorageNamespaces, if needed. Because of the race in receiving the messages from different processes, 
+        network process may decide to destroy StorageManager before destroying all SessionStorageNamespaces, and 
+        SessionStorageNamespaces are destroyed with StorageManager on the main thread.
+
+        * NetworkProcess/WebStorage/StorageManager.cpp:
+        (WebKit::StorageManager::waitUntilTasksFinished):
+
+2019-08-12  Sihui Liu  <[email protected]>
+
         Remove an assertion in ~StorageArea()
         https://bugs.webkit.org/show_bug.cgi?id=200630
         <rdar://problem/54097722>

Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp (248542 => 248543)


--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp	2019-08-12 19:33:53 UTC (rev 248542)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp	2019-08-12 19:46:40 UTC (rev 248543)
@@ -502,6 +502,7 @@
         for (auto& connectionStorageAreaPair : connectionAndStorageMapIDPairsToRemove)
             m_storageAreasByConnection.remove(connectionStorageAreaPair);
 
+        m_sessionStorageNamespaces.clear();
         m_localStorageNamespaces.clear();
 
         semaphore.signal();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to