Should report user input to PageThrottler
https://bugs.webkit.org/show_bug.cgi?id=128398
Reviewed by Tim Horton.
Make sure we wake from AppNap if there is user interaction.
Source/WebCore:
* page/PageThrottler.h:
(WebCore::PageThrottler::didReceiveUserInput):
(WebCore::PageThrottler::pluginDidEvaluate):
- added, these call reportInterestingEvent()
Source/WebKit2:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::evaluate):
- reportInterestingEvent() -> pluginDidEvaluate()
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::wheelEvent):
(WebKit::WebPage::keyEvent):
- call didReceiveUserInput()
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index a7c65c0..f5a685c 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2014-02-07 Gavin Barraclough <barraclough@apple.com>
+
+ Should report user input to PageThrottler
+ https://bugs.webkit.org/show_bug.cgi?id=128398
+
+ Reviewed by Tim Horton.
+
+ Make sure we wake from AppNap if there is user interaction.
+
+ * page/PageThrottler.h:
+ (WebCore::PageThrottler::didReceiveUserInput):
+ (WebCore::PageThrottler::pluginDidEvaluate):
+ - added, these call reportInterestingEvent()
+
2014-02-07 Jer Noble <jer.noble@apple.com>
Unreviewed build fix for 32-bit iOS.
diff --git a/Source/WebCore/page/PageThrottler.h b/Source/WebCore/page/PageThrottler.h
index ed048a8..894bd08 100644
--- a/Source/WebCore/page/PageThrottler.h
+++ b/Source/WebCore/page/PageThrottler.h
@@ -50,7 +50,8 @@
void setIsVisuallyIdle(bool);
- void reportInterestingEvent();
+ void didReceiveUserInput() { reportInterestingEvent(); }
+ void pluginDidEvaluate() { reportInterestingEvent(); }
private:
enum PageThrottleState {
@@ -63,6 +64,8 @@
void addActivityToken(PageActivityAssertionToken&);
void removeActivityToken(PageActivityAssertionToken&);
+ void reportInterestingEvent();
+
void startThrottleHysteresisTimer();
void stopThrottleHysteresisTimer();
void throttleHysteresisTimerFired(Timer<PageThrottler>&);
diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog
index 11021a6..f9422a4 100644
--- a/Source/WebKit2/ChangeLog
+++ b/Source/WebKit2/ChangeLog
@@ -1,3 +1,21 @@
+2014-02-07 Gavin Barraclough <barraclough@apple.com>
+
+ Should report user input to PageThrottler
+ https://bugs.webkit.org/show_bug.cgi?id=128398
+
+ Reviewed by Tim Horton.
+
+ Make sure we wake from AppNap if there is user interaction.
+
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::evaluate):
+ - reportInterestingEvent() -> pluginDidEvaluate()
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::mouseEvent):
+ (WebKit::WebPage::wheelEvent):
+ (WebKit::WebPage::keyEvent):
+ - call didReceiveUserInput()
+
2014-02-07 Dean Jackson <dino@apple.com>
WebGL doesn't update with remotely hosted layers
@@ -60,7 +78,7 @@
Reviewed by Tim Horton.
* Shared/WebPreferencesStore.h:
- - pageVisibilityBasedProcessSuppressionEnabled shoud default to true.
+ - pageVisibilityBasedProcessSuppressionEnabled should default to true.
2014-02-07 Tim Horton <timothy_horton@apple.com>
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
index 8b16ca5..d25db00 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
@@ -191,7 +191,7 @@
if (m_pluginView && !m_pluginView->isBeingDestroyed()) {
if (Page* page = m_pluginView->frame()->page())
- page->pageThrottler().reportInterestingEvent();
+ page->pageThrottler().pluginDidEvaluate();
}
ExecState* exec = globalObject->globalExec();
diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
index abc1c15..b0ea22b 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -118,6 +118,7 @@
#include <WebCore/MainFrame.h>
#include <WebCore/MouseEvent.h>
#include <WebCore/Page.h>
+#include <WebCore/PageThrottler.h>
#include <WebCore/PlatformKeyboardEvent.h>
#include <WebCore/PluginDocument.h>
#include <WebCore/PrintContext.h>
@@ -1665,6 +1666,8 @@
void WebPage::mouseEvent(const WebMouseEvent& mouseEvent)
{
+ m_page->pageThrottler().didReceiveUserInput();
+
#if ENABLE(CONTEXT_MENUS)
// Don't try to handle any pending mouse events if a context menu is showing.
if (m_isShowingContextMenu) {
@@ -1745,6 +1748,8 @@
void WebPage::wheelEvent(const WebWheelEvent& wheelEvent)
{
+ m_page->pageThrottler().didReceiveUserInput();
+
bool handled = false;
if (canHandleUserEvents()) {
@@ -1774,6 +1779,8 @@
void WebPage::keyEvent(const WebKeyboardEvent& keyboardEvent)
{
+ m_page->pageThrottler().didReceiveUserInput();
+
bool handled = false;
if (canHandleUserEvents()) {