Title: [207970] releases/WebKitGTK/webkit-2.14/Source/WebKit2
- Revision
- 207970
- Author
- [email protected]
- Date
- 2016-10-27 02:45:00 -0700 (Thu, 27 Oct 2016)
Log Message
Merge r207441 - [WK2][NetworkCache] PendingFrameLoad objects are sometimes leaked
https://bugs.webkit.org/show_bug.cgi?id=163569
<rdar://problem/28810836>
Reviewed by Antti Koivisto.
PendingFrameLoad objects are created to track frame loads and added to
the m_pendingFrameLoads hash map. These objects are supposed to remove
themselves from the hash map once they detect that the page load has
finished by calling PendingFrameLoad::m_loadCompletionHandler().
PendingFrameLoad::m_loadCompletionHandler() is called from
markLoadAsCompleted() when we detect that the page load has finished
via the m_loadHysteresisActivity HysteresisActivity. We call impulse()
on the HysteresisActivity every time a subresource is loaded in the
frame. The issue is that if no subresource is ever loaded, then we
never call impulse() on the HysteresisActivity, which is therefore
never started. If it nevers starts, then it nevers stops and never
calls markLoadAsCompleted(). To address the problem, we now call
impulse() on the HysteresisActivity as soon as we construct it.
* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog (207969 => 207970)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2016-10-27 09:35:28 UTC (rev 207969)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2016-10-27 09:45:00 UTC (rev 207970)
@@ -1,3 +1,28 @@
+2016-10-17 Chris Dumez <[email protected]>
+
+ [WK2][NetworkCache] PendingFrameLoad objects are sometimes leaked
+ https://bugs.webkit.org/show_bug.cgi?id=163569
+ <rdar://problem/28810836>
+
+ Reviewed by Antti Koivisto.
+
+ PendingFrameLoad objects are created to track frame loads and added to
+ the m_pendingFrameLoads hash map. These objects are supposed to remove
+ themselves from the hash map once they detect that the page load has
+ finished by calling PendingFrameLoad::m_loadCompletionHandler().
+
+ PendingFrameLoad::m_loadCompletionHandler() is called from
+ markLoadAsCompleted() when we detect that the page load has finished
+ via the m_loadHysteresisActivity HysteresisActivity. We call impulse()
+ on the HysteresisActivity every time a subresource is loaded in the
+ frame. The issue is that if no subresource is ever loaded, then we
+ never call impulse() on the HysteresisActivity, which is therefore
+ never started. If it nevers starts, then it nevers stops and never
+ calls markLoadAsCompleted(). To address the problem, we now call
+ impulse() on the HysteresisActivity as soon as we construct it.
+
+ * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
+
2016-10-17 Manuel Rego Casasnovas <[email protected]>
[css-grid] Disable CSS Grid Layout runtime flag by default
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp (207969 => 207970)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp 2016-10-27 09:35:28 UTC (rev 207969)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp 2016-10-27 09:45:00 UTC (rev 207970)
@@ -204,7 +204,9 @@
, m_mainResourceKey(mainResourceKey)
, m_loadCompletionHandler(WTFMove(loadCompletionHandler))
, m_loadHysteresisActivity([this](HysteresisState state) { if (state == HysteresisState::Stopped) markLoadAsCompleted(); })
- { }
+ {
+ m_loadHysteresisActivity.impulse();
+ }
void saveToDiskIfReady()
{
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes