Title: [197698] trunk/Source/WebKit2
- Revision
- 197698
- Author
- [email protected]
- Date
- 2016-03-07 12:28:30 -0800 (Mon, 07 Mar 2016)
Log Message
Last opened tab does not receive SetHiddenPageTimerThrottlingIncreaseLimit message
https://bugs.webkit.org/show_bug.cgi?id=155126
Reviewed by Chris Dumez.
WebPageProxy will increment the hidden page throttling counter from within its constructor,
which currently causes the WebProcessPool to try to synchronously message all processes.
The web page triggering the increment then fails to receive the message, since it was
still being constructed. Make the update of the limit async, such that the page is fully
constructed before the WebProcessPool processes the update.
* UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingAutoIncreasesCounter):
- This now schedules a zero-delay timer to handle the update.
(WebKit::m_hiddenPageThrottlingTimer):
- This is now responsible for calling updateHiddenPageThrottlingAutoIncreaseLimit.
* UIProcess/WebProcessPool.h:
- Added m_hiddenPageThrottlingTimer.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (197697 => 197698)
--- trunk/Source/WebKit2/ChangeLog 2016-03-07 20:21:17 UTC (rev 197697)
+++ trunk/Source/WebKit2/ChangeLog 2016-03-07 20:28:30 UTC (rev 197698)
@@ -1,3 +1,24 @@
+2016-03-07 Gavin Barraclough <[email protected]>
+
+ Last opened tab does not receive SetHiddenPageTimerThrottlingIncreaseLimit message
+ https://bugs.webkit.org/show_bug.cgi?id=155126
+
+ Reviewed by Chris Dumez.
+
+ WebPageProxy will increment the hidden page throttling counter from within its constructor,
+ which currently causes the WebProcessPool to try to synchronously message all processes.
+ The web page triggering the increment then fails to receive the message, since it was
+ still being constructed. Make the update of the limit async, such that the page is fully
+ constructed before the WebProcessPool processes the update.
+
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::m_hiddenPageThrottlingAutoIncreasesCounter):
+ - This now schedules a zero-delay timer to handle the update.
+ (WebKit::m_hiddenPageThrottlingTimer):
+ - This is now responsible for calling updateHiddenPageThrottlingAutoIncreaseLimit.
+ * UIProcess/WebProcessPool.h:
+ - Added m_hiddenPageThrottlingTimer.
+
2016-03-05 Enrica Casucci <[email protected]>
Support preview on attachment elements.
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (197697 => 197698)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2016-03-07 20:21:17 UTC (rev 197697)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2016-03-07 20:28:30 UTC (rev 197698)
@@ -160,7 +160,8 @@
, m_memoryCacheDisabled(false)
, m_userObservablePageCounter([this](RefCounterEvent) { updateProcessSuppressionState(); })
, m_processSuppressionDisabledForPageCounter([this](RefCounterEvent) { updateProcessSuppressionState(); })
- , m_hiddenPageThrottlingAutoIncreasesCounter([this](RefCounterEvent) { updateHiddenPageThrottlingAutoIncreaseLimit(); })
+ , m_hiddenPageThrottlingAutoIncreasesCounter([this](RefCounterEvent) { m_hiddenPageThrottlingTimer.startOneShot(0); })
+ , m_hiddenPageThrottlingTimer(*this, &WebProcessPool::updateHiddenPageThrottlingAutoIncreaseLimit)
{
for (auto& scheme : m_configuration->alwaysRevalidatedURLSchemes())
m_schemesToRegisterAsAlwaysRevalidated.add(scheme);
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (197697 => 197698)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h 2016-03-07 20:21:17 UTC (rev 197697)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h 2016-03-07 20:28:30 UTC (rev 197698)
@@ -522,6 +522,7 @@
UserObservablePageCounter m_userObservablePageCounter;
ProcessSuppressionDisabledCounter m_processSuppressionDisabledForPageCounter;
HiddenPageThrottlingAutoIncreasesCounter m_hiddenPageThrottlingAutoIncreasesCounter;
+ WebCore::Timer m_hiddenPageThrottlingTimer;
#if PLATFORM(COCOA)
RetainPtr<NSMutableDictionary> m_bundleParameters;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes