Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(498)

Unified Diff: third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp

Issue 1405993008: compositor-worker: plumb element id and mutable properties (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed layout test (and logged bug) Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
diff --git a/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp b/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
index 60bd3291932ebb21ce16eeed6e41178add99419f..f496a96b7a4d77d0a9d3f80b2e4cf48e86d0ea6c 100644
--- a/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
+++ b/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
@@ -63,6 +63,7 @@
#include "platform/graphics/paint/PaintController.h"
#include "platform/graphics/paint/TransformDisplayItem.h"
#include "public/platform/Platform.h"
+#include "public/platform/WebMutableProperties.h"
namespace blink {
@@ -391,6 +392,23 @@ void PaintLayerCompositor::updateIfNeeded()
}
if (updateType != CompositingUpdateNone) {
+ // FIXME: it should not be necessary to check that the document has no child needing a style recalc. See crbug.com/552847
+ if (RuntimeEnabledFeatures::compositorWorkerEnabled() && m_scrollLayer && !m_layoutView.document().childNeedsStyleRecalc()) {
+ Frame* mainFrame = page()->mainFrame();
+ ASSERT(mainFrame->isLocalFrame());
+ ASSERT(!m_layoutView.needsLayout());
+ if (Element* scrollingElement = m_layoutView.document().scrollingElement()) {
+ uint64_t elementId = 0;
+ uint32_t mutableProperties = WebMutablePropertyNone;
+ if (scrollingElement->hasCompositorProxy()) {
+ elementId = DOMNodeIds::idForNode(scrollingElement);
+ mutableProperties = WebMutablePropertyScrollLeft | WebMutablePropertyScrollTop;
+ }
+ m_scrollLayer->setElementId(elementId);
+ m_scrollLayer->setMutableProperties(mutableProperties);
+ }
+ }
+
GraphicsLayerUpdater updater;
updater.update(*updateRoot, layersNeedingPaintInvalidation);

Powered by Google App Engine
This is Rietveld 408576698