[chromium] Add isInputThrottled/didBecomeReadyForAdditionalInput to WebWidget
authornduca@chromium.org <nduca@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Mar 2012 02:01:42 +0000 (02:01 +0000)
committernduca@chromium.org <nduca@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Mar 2012 02:01:42 +0000 (02:01 +0000)
commit3878a16761fcd9846a5e7a26e780ee308bd30558
tree0a6dbec5ae9c8c1a98c4c20baf35d6a51740b41d
parentc94361138d394b07373b69d431f6a8b6b7e943d5
[chromium] Add isInputThrottled/didBecomeReadyForAdditionalInput to WebWidget
https://bugs.webkit.org/show_bug.cgi?id=82265

Source/Platform:

Reviewed by James Robinson.

* chromium/public/WebLayerTreeView.h:
(WebLayerTreeView):
* chromium/public/WebLayerTreeViewClient.h:
(WebLayerTreeViewClient):
(WebKit::WebLayerTreeViewClient::didCommit):

Source/WebCore:

In threaded compositing mode, the WebWidget is self-scheduled,
receiving damage and processing it without forwarding that damage
up to the embedding WebWidgetClient. In Chromium's case, the
client uses the presence of damage to perform input flow
control. This patch exposes the need for input flow control to the
embedder, while keeping the actual logic about what exactly
warrants input flow control inside the implementation.

Reviewed by James Robinson.

* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::commitComplete):
(WebCore::CCLayerTreeHost::commitRequested):
(WebCore):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(CCLayerTreeHostClient):
(CCLayerTreeHost):
* platform/graphics/chromium/cc/CCProxy.h:
(CCProxy):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::commitRequested):
(WebCore):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
(CCSingleThreadProxy):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::commitRequested):
(WebCore):
* platform/graphics/chromium/cc/CCThreadProxy.h:
(CCThreadProxy):

Source/WebKit/chromium:

In threaded compositing mode, the WebWidget is self-scheduled,
receiving damage and processing it without forwarding that damage
up to the embedding WebWidgetClient. In Chromium's case, the
client uses the presence of damage to perform input flow
control. This patch exposes the need for input flow control to the
embedder, while keeping the actual logic about what exactly
warrants input flow control inside the implementation.

Reviewed by James Robinson.

* public/WebWidget.h:
(WebWidget):
(WebKit::WebWidget::isInputThrottled):
* public/WebWidgetClient.h:
(WebWidgetClient):
(WebKit::WebWidgetClient::didBecomeReadyForAdditionalInput):
* src/WebLayerTreeView.cpp:
(WebKit::WebLayerTreeView::commitRequested):
(WebKit):
* src/WebLayerTreeViewImpl.cpp:
(WebKit::WebLayerTreeViewImpl::didCommit):
(WebKit):
* src/WebLayerTreeViewImpl.h:
(WebLayerTreeViewImpl):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::isInputThrottled):
(WebKit):
(WebKit::WebViewImpl::didCommit):
* src/WebViewImpl.h:
(WebViewImpl):
* tests/CCLayerTreeHostTest.cpp:
(WTF::MockLayerTreeHostClient::didCommit):
(MockLayerTreeHostClient):
* tests/FakeCCLayerTreeHostClient.h:
(FakeCCLayerTreeHostClient):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@112191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
21 files changed:
Source/Platform/ChangeLog
Source/Platform/chromium/public/WebLayerTreeView.h
Source/Platform/chromium/public/WebLayerTreeViewClient.h
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
Source/WebCore/platform/graphics/chromium/cc/CCProxy.h
Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp
Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h
Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp
Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebWidget.h
Source/WebKit/chromium/public/WebWidgetClient.h
Source/WebKit/chromium/src/WebLayerTreeView.cpp
Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp
Source/WebKit/chromium/src/WebLayerTreeViewImpl.h
Source/WebKit/chromium/src/WebViewImpl.cpp
Source/WebKit/chromium/src/WebViewImpl.h
Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp
Source/WebKit/chromium/tests/FakeCCLayerTreeHostClient.h