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

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

Issue 2654843004: Fix shouldPaint issue when a composited floating iframe becomes non-self-painting (Closed)
Patch Set: -0 Created 3 years, 11 months 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/CompositingInputsUpdater.cpp
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp
index 2c1b53b27dbd9d6f53d47e6f670e8dd1b9193b85..153213e96e98bae8ccd025482d455964cf31c26d 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp
@@ -247,6 +247,17 @@ void CompositingInputsUpdater::updateRecursive(PaintLayer* layer,
layer->didUpdateCompositingInputs();
m_geometryMap.popMappingsToAncestor(layer->parent());
+
+ if (layer->selfPaintingStatusChanged()) {
+ layer->clearSelfPaintingStatusChanged();
+ // If the floating object becomes non-self-painting, so some ancestor should
+ // paint it; if it becomes self-painting, it should paint itself and no
+ // ancestor should paint it.
+ if (layer->layoutObject()->isFloating()) {
+ LayoutBlockFlow::setAncestorShouldPaintFloatingObject(
+ *layer->layoutBox());
+ }
+ }
Xianzhu 2017/01/25 17:44:28 This handles both the case that was handled by Pai
}
#if DCHECK_IS_ON()

Powered by Google App Engine
This is Rietveld 408576698