Title: [291367] trunk/Source/WebKit
- Revision
- 291367
- Author
- [email protected]
- Date
- 2022-03-16 14:32:49 -0700 (Wed, 16 Mar 2022)
Log Message
Do not suspend NetworkStorageManager if it is used for ephemeral session
https://bugs.webkit.org/show_bug.cgi?id=237943
Reviewed by Chris Dumez.
The reason we need to suspend NetworkStorageManager when process is suspended, is that it might hold file lock
during its operations. NetworkStorageManager of ephemeral sessions will not hold file lock; suspending its
WorkQueue will only delay storage operations.
* NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::suspend):
(WebKit::NetworkStorageManager::resume):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (291366 => 291367)
--- trunk/Source/WebKit/ChangeLog 2022-03-16 21:20:01 UTC (rev 291366)
+++ trunk/Source/WebKit/ChangeLog 2022-03-16 21:32:49 UTC (rev 291367)
@@ -1,3 +1,18 @@
+2022-03-16 Sihui Liu <[email protected]>
+
+ Do not suspend NetworkStorageManager if it is used for ephemeral session
+ https://bugs.webkit.org/show_bug.cgi?id=237943
+
+ Reviewed by Chris Dumez.
+
+ The reason we need to suspend NetworkStorageManager when process is suspended, is that it might hold file lock
+ during its operations. NetworkStorageManager of ephemeral sessions will not hold file lock; suspending its
+ WorkQueue will only delay storage operations.
+
+ * NetworkProcess/storage/NetworkStorageManager.cpp:
+ (WebKit::NetworkStorageManager::suspend):
+ (WebKit::NetworkStorageManager::resume):
+
2022-03-16 Fujii Hironori <[email protected]>
[WinCairo][WebGL] Crash in WebKit::WCContentBuffer::platformLayerWillBeDestroyed()
Modified: trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp (291366 => 291367)
--- trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp 2022-03-16 21:20:01 UTC (rev 291366)
+++ trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp 2022-03-16 21:32:49 UTC (rev 291367)
@@ -645,6 +645,9 @@
{
ASSERT(RunLoop::isMain());
+ if (m_sessionID.isEphemeral())
+ return;
+
m_queue->suspend([this, protectedThis = Ref { *this }] {
for (auto& manager : m_localOriginStorageManagers.values()) {
if (auto localStorageManager = manager->existingLocalStorageManager())
@@ -659,6 +662,9 @@
{
ASSERT(RunLoop::isMain());
+ if (m_sessionID.isEphemeral())
+ return;
+
m_queue->resume();
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes