Title: [200625] trunk/Source/WebCore
- Revision
- 200625
- Author
- [email protected]
- Date
- 2016-05-10 10:05:50 -0700 (Tue, 10 May 2016)
Log Message
Allow some leeway after page load before throttling, to allow post load events to complete.
https://bugs.webkit.org/show_bug.cgi?id=157499
Reviewed by Ryosuke Niwa
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
- m_pageLoadActivityCounter now affects activity state indirecty, via m_pageLoadActivityHysteresis.
(WebCore::PageThrottler::pageLoadActivityCounterChanged):
- counter updates hysteresis object, which in turn will affect activity state.
* page/PageThrottler.h:
- added m_pageLoadActivityHysteresis, pageLoadActivityCounterChanged.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (200624 => 200625)
--- trunk/Source/WebCore/ChangeLog 2016-05-10 17:05:29 UTC (rev 200624)
+++ trunk/Source/WebCore/ChangeLog 2016-05-10 17:05:50 UTC (rev 200625)
@@ -1,3 +1,18 @@
+2016-05-05 Gavin Barraclough <[email protected]>
+
+ Allow some leeway after page load before throttling, to allow post load events to complete.
+ https://bugs.webkit.org/show_bug.cgi?id=157499
+
+ Reviewed by Ryosuke Niwa
+
+ * page/PageThrottler.cpp:
+ (WebCore::PageThrottler::PageThrottler):
+ - m_pageLoadActivityCounter now affects activity state indirecty, via m_pageLoadActivityHysteresis.
+ (WebCore::PageThrottler::pageLoadActivityCounterChanged):
+ - counter updates hysteresis object, which in turn will affect activity state.
+ * page/PageThrottler.h:
+ - added m_pageLoadActivityHysteresis, pageLoadActivityCounterChanged.
+
2016-05-10 Zalan Bujtas <[email protected]>
REGRESSION (r193610): Drop down menu doesn’t expand at allofbach.com
Modified: trunk/Source/WebCore/page/PageThrottler.cpp (200624 => 200625)
--- trunk/Source/WebCore/page/PageThrottler.cpp 2016-05-10 17:05:29 UTC (rev 200624)
+++ trunk/Source/WebCore/page/PageThrottler.cpp 2016-05-10 17:05:50 UTC (rev 200625)
@@ -30,12 +30,15 @@
namespace WebCore {
+static const double PageLoadHysteresisSeconds = 10;
+
PageThrottler::PageThrottler(Page& page)
: m_page(page)
, m_userInputHysteresis([this](HysteresisState state) { setActivityFlag(PageActivityState::UserInputActivity, state == HysteresisState::Started); })
, m_mediaActivityHysteresis([this](HysteresisState state) { setActivityFlag(PageActivityState::MediaActivity, state == HysteresisState::Started); })
+ , m_pageLoadActivityHysteresis([this](HysteresisState state) { setActivityFlag(PageActivityState::PageLoadActivity, state == HysteresisState::Started); }, PageLoadHysteresisSeconds)
, m_mediaActivityCounter([this](RefCounterEvent) { mediaActivityCounterChanged(); })
- , m_pageLoadActivityCounter([this](RefCounterEvent) { setActivityFlag(PageActivityState::PageLoadActivity, m_pageLoadActivityCounter.value()); })
+ , m_pageLoadActivityCounter([this](RefCounterEvent) { pageLoadActivityCounterChanged(); })
{
}
@@ -57,6 +60,14 @@
m_mediaActivityHysteresis.stop();
}
+void PageThrottler::pageLoadActivityCounterChanged()
+{
+ if (m_pageLoadActivityCounter.value())
+ m_pageLoadActivityHysteresis.start();
+ else
+ m_pageLoadActivityHysteresis.stop();
+}
+
void PageThrottler::setActivityFlag(PageActivityState::Flags flag, bool value)
{
PageActivityState::Flags activityState = m_activityState;
Modified: trunk/Source/WebCore/page/PageThrottler.h (200624 => 200625)
--- trunk/Source/WebCore/page/PageThrottler.h 2016-05-10 17:05:29 UTC (rev 200624)
+++ trunk/Source/WebCore/page/PageThrottler.h 2016-05-10 17:05:50 UTC (rev 200625)
@@ -66,12 +66,14 @@
private:
void mediaActivityCounterChanged();
+ void pageLoadActivityCounterChanged();
void setActivityFlag(PageActivityState::Flags, bool);
Page& m_page;
PageActivityState::Flags m_activityState { PageActivityState::NoFlags };
HysteresisActivity m_userInputHysteresis;
HysteresisActivity m_mediaActivityHysteresis;
+ HysteresisActivity m_pageLoadActivityHysteresis;
PageActivityCounter m_mediaActivityCounter;
PageActivityCounter m_pageLoadActivityCounter;
};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes