Title: [269879] trunk/Source/WebKit
- Revision
- 269879
- Author
- [email protected]
- Date
- 2020-11-16 14:17:24 -0800 (Mon, 16 Nov 2020)
Log Message
[GPUProcess] Update GPUProcess process assertion based on active WebProcesses
https://bugs.webkit.org/show_bug.cgi?id=219002
Reviewed by Simon Fraser.
Update GPUProcess process assertion based on active WebProcesses, similarly to what
we do for the network process. Previously, we would never release the GPUProcess
process assertion and it would time out after 30 seconds in the background.
* UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::updateProcessAssertion):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::updateProcessAssertions):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (269878 => 269879)
--- trunk/Source/WebKit/ChangeLog 2020-11-16 22:14:08 UTC (rev 269878)
+++ trunk/Source/WebKit/ChangeLog 2020-11-16 22:17:24 UTC (rev 269879)
@@ -1,3 +1,19 @@
+2020-11-16 Chris Dumez <[email protected]>
+
+ [GPUProcess] Update GPUProcess process assertion based on active WebProcesses
+ https://bugs.webkit.org/show_bug.cgi?id=219002
+
+ Reviewed by Simon Fraser.
+
+ Update GPUProcess process assertion based on active WebProcesses, similarly to what
+ we do for the network process. Previously, we would never release the GPUProcess
+ process assertion and it would time out after 30 seconds in the background.
+
+ * UIProcess/GPU/GPUProcessProxy.cpp:
+ (WebKit::GPUProcessProxy::updateProcessAssertion):
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::updateProcessAssertions):
+
2020-11-16 Brent Fulgham <[email protected]>
[macOS] Remove remote tcp capability from WebContent Sandbox
Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp (269878 => 269879)
--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp 2020-11-16 22:14:08 UTC (rev 269878)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp 2020-11-16 22:17:24 UTC (rev 269879)
@@ -281,7 +281,11 @@
}
return;
}
- m_activityFromWebProcesses = nullptr;
+
+ // Use std::exchange() instead of a simple nullptr assignment to avoid re-entering this
+ // function during the destructor of the ProcessThrottler activity, before setting
+ // m_activityFromWebProcesses.
+ std::exchange(m_activityFromWebProcesses, nullptr);
}
static inline GPUProcessSessionParameters gpuProcessSessionParameters(const WebsiteDataStore& store)
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (269878 => 269879)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2020-11-16 22:14:08 UTC (rev 269878)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2020-11-16 22:17:24 UTC (rev 269879)
@@ -1715,6 +1715,10 @@
WebsiteDataStore::forEachWebsiteDataStore([] (WebsiteDataStore& dataStore) {
dataStore.networkProcess().updateProcessAssertion();
});
+#if ENABLE(GPU_PROCESS)
+ if (auto* gpuProcess = GPUProcessProxy::singletonIfCreated())
+ gpuProcess->updateProcessAssertion();
+#endif
#if ENABLE(SERVICE_WORKER)
// Check on next run loop since the web process proxy tokens are probably being updated.
callOnMainRunLoop([] {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes