| Index: third_party/WebKit/Source/web/WebViewImpl.cpp
|
| diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| index e84942261f05499a9376018af901cf453eab24a0..f87dc711b6e6a31a6f27f9c52c8b6fd980ed3903 100644
|
| --- a/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| @@ -35,6 +35,7 @@
|
| #include "core/HTMLNames.h"
|
| #include "core/InputTypeNames.h"
|
| #include "core/clipboard/DataObject.h"
|
| +#include "core/dom/DOMNodeIds.h"
|
| #include "core/dom/Document.h"
|
| #include "core/dom/Fullscreen.h"
|
| #include "core/dom/LayoutTreeBuilderTraversal.h"
|
| @@ -93,6 +94,7 @@
|
| #include "core/timing/Performance.h"
|
| #include "modules/accessibility/AXObject.h"
|
| #include "modules/accessibility/AXObjectCacheImpl.h"
|
| +#include "modules/compositorworker/CompositorWorker.h"
|
| #include "modules/credentialmanager/CredentialManagerClient.h"
|
| #include "modules/encryptedmedia/MediaKeysController.h"
|
| #include "modules/storage/StorageNamespaceController.h"
|
| @@ -128,6 +130,7 @@
|
| #include "public/platform/WebGestureCurve.h"
|
| #include "public/platform/WebImage.h"
|
| #include "public/platform/WebLayerTreeView.h"
|
| +#include "public/platform/WebMutation.h"
|
| #include "public/platform/WebURLRequest.h"
|
| #include "public/platform/WebVector.h"
|
| #include "public/platform/WebViewScheduler.h"
|
| @@ -169,6 +172,7 @@
|
| #include "web/WebDevToolsAgentImpl.h"
|
| #include "web/WebInputEventConversion.h"
|
| #include "web/WebLocalFrameImpl.h"
|
| +#include "web/WebMutatorImpl.h"
|
| #include "web/WebPagePopupImpl.h"
|
| #include "web/WebPluginContainerImpl.h"
|
| #include "web/WebRemoteFrameImpl.h"
|
| @@ -4435,6 +4439,19 @@ void WebViewImpl::recordFrameTimingEvent(FrameTimingEventType eventType, int64_t
|
| }
|
| }
|
|
|
| +void WebViewImpl::applyMutations(const WebMutationMap& mutations)
|
| +{
|
| + TRACE_EVENT0("compositor-worker", "WebViewImpl::applyMutations");
|
| + for (const auto& pair : mutations) {
|
| + int elementId = pair.first;
|
| + const WebMutation& mutation = pair.second;
|
| + Node* node = DOMNodeIds::nodeForId(elementId);
|
| + if (!node || !toElement(node))
|
| + continue;
|
| + toElement(node)->updateFromMutation(mutation);
|
| + }
|
| +}
|
| +
|
| void WebViewImpl::updateLayerTreeViewport()
|
| {
|
| if (!page() || !m_layerTreeView)
|
| @@ -4578,6 +4595,30 @@ void WebViewImpl::forceNextDrawingBufferCreationToFail()
|
| DrawingBuffer::forceNextDrawingBufferCreationToFail();
|
| }
|
|
|
| +CompositorProxyClient* WebViewImpl::createCompositorProxyClient()
|
| +{
|
| + if (!m_mutator.get()) {
|
| + m_mutator = WebMutatorImpl::create();
|
| + m_layerTreeView->setMutatorClient(m_mutator->client());
|
| + }
|
| + return m_mutator->createCompositorProxyClient();
|
| +}
|
| +
|
| +void WebViewImpl::schedulePostCommitTask(PassOwnPtr<Closure> task)
|
| +{
|
| + TRACE_EVENT0("compositor-worker", "WebViewImpl::schedulePostCommitTask");
|
| + m_postCommitTasks.append(task);
|
| +}
|
| +
|
| +void WebViewImpl::didCommit()
|
| +{
|
| + TRACE_EVENT1("compositor-worker", "WebViewImpl::didCommit", "num_tasks", static_cast<int>(m_postCommitTasks.size()));
|
| + while (!m_postCommitTasks.isEmpty()) {
|
| + (*m_postCommitTasks.last())();
|
| + m_postCommitTasks.removeLast();
|
| + }
|
| +}
|
| +
|
| void WebViewImpl::updatePageOverlays()
|
| {
|
| if (m_pageColorOverlay)
|
|
|