|
|
Created:
3 years, 11 months ago by chrishtr Modified:
3 years, 11 months ago Reviewers:
Xianzhu CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, dshwang, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1 Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionFix compositingContainer for stacked inlines.
BUG=681778
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2640053004
Cr-Commit-Position: refs/heads/master@{#445164}
Committed: https://chromium.googlesource.com/chromium/src/+/2d6a760cbb0204f306e9312bc39036b75f80c5f2
Patch Set 1 #
Total comments: 2
Patch Set 2 : none #
Total comments: 4
Patch Set 3 : none #Patch Set 4 : none #
Total comments: 2
Patch Set 5 : none #
Messages
Total messages: 28 (12 generated)
Description was changed from ========== none none BUG= ========== to ========== none none BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== none none BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Fix compositingContainer for stacked inlines. BUG=681778 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
chrishtr@chromium.org changed reviewers: + wangxianzhu@chromium.org
In the test case, should the inline object be the container (in the manner of LayoutObject::container) of the floating object? https://codereview.chromium.org/2640053004/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2640053004/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/paint/PaintLayer.cpp:923: !stackingNode()->isStacked() && Nit: How about combining the two stackingNode()->isStacked() conditions at line 923 and line 927? https://codereview.chromium.org/2640053004/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/paint/PaintLayerTest.cpp (right): https://codereview.chromium.org/2640053004/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/paint/PaintLayerTest.cpp:537: " <iframe srcdoc=foo' id='target' style='float: right'></iframe>" Nit: s/foo'/'foo'/
On 2017/01/19 at 21:50:02, wangxianzhu wrote: > In the test case, should the inline object be the container (in the manner of LayoutObject::container) of the floating object? Which testcase are you referring to? > > https://codereview.chromium.org/2640053004/diff/1/third_party/WebKit/Source/c... > File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): > > https://codereview.chromium.org/2640053004/diff/1/third_party/WebKit/Source/c... > third_party/WebKit/Source/core/paint/PaintLayer.cpp:923: !stackingNode()->isStacked() && > Nit: How about combining the two stackingNode()->isStacked() conditions at line 923 and line 927? > > https://codereview.chromium.org/2640053004/diff/1/third_party/WebKit/Source/c... > File third_party/WebKit/Source/core/paint/PaintLayerTest.cpp (right): > > https://codereview.chromium.org/2640053004/diff/1/third_party/WebKit/Source/c... > third_party/WebKit/Source/core/paint/PaintLayerTest.cpp:537: " <iframe srcdoc=foo' id='target' style='float: right'></iframe>" > Nit: s/foo'/'foo'/
On 2017/01/19 21:53:16, chrishtr wrote: > On 2017/01/19 at 21:50:02, wangxianzhu wrote: > > In the test case, should the inline object be the container (in the manner of > LayoutObject::container) of the floating object? > > Which testcase are you referring to? > The layout test, containing a stacked floating object under a stacking-context inline.
On 2017/01/19 at 21:55:44, wangxianzhu wrote: > On 2017/01/19 21:53:16, chrishtr wrote: > > On 2017/01/19 at 21:50:02, wangxianzhu wrote: > > > In the test case, should the inline object be the container (in the manner of > > LayoutObject::container) of the floating object? > > > > Which testcase are you referring to? > > > > The layout test, containing a stacked floating object under a stacking-context inline. It's the unittest that has a stacking context (the clip-path one). In the layout test, the compositing container that has a CLM (i.e. the one computed in GraphicsLayerUpdater) is the docment/HTML element. The display: inline and overflow: hidden / pos: relative elements don't create stacking contexts. In the layout tests, the container for the float is the overflow: hidden / pos: relative element.
On 2017/01/19 at 22:03:20, chrishtr wrote: > On 2017/01/19 at 21:55:44, wangxianzhu wrote: > > On 2017/01/19 21:53:16, chrishtr wrote: > > > On 2017/01/19 at 21:50:02, wangxianzhu wrote: > > > > In the test case, should the inline object be the container (in the manner of > > > LayoutObject::container) of the floating object? > > > > > > Which testcase are you referring to? > > > > > > > The layout test, containing a stacked floating object under a stacking-context inline. > > It's the unittest that has a stacking context (the clip-path one). In the layout test, the compositing container that has a CLM (i.e. the one computed in GraphicsLayerUpdater) is the docment/HTML element. The display: inline and overflow: hidden / pos: relative elements don't create stacking contexts. > > In the layout tests, the container for the float is the overflow: hidden / pos: relative element. (what I'm saying here is that this is what LayoutObject::container() returns, nothing else. :)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2017/01/19 22:03:20, chrishtr wrote: > On 2017/01/19 at 21:55:44, wangxianzhu wrote: > > On 2017/01/19 21:53:16, chrishtr wrote: > > > On 2017/01/19 at 21:50:02, wangxianzhu wrote: > > > > In the test case, should the inline object be the container (in the manner > of > > > LayoutObject::container) of the floating object? > > > > > > Which testcase are you referring to? > > > > > > > The layout test, containing a stacked floating object under a stacking-context > inline. > > It's the unittest that has a stacking context (the clip-path one). In the layout > test, the compositing container that has a CLM (i.e. the one computed in > GraphicsLayerUpdater) is the docment/HTML element. The display: inline and > overflow: hidden / pos: relative elements don't create stacking contexts. > > In the layout tests, the container for the float is the overflow: hidden / pos: > relative element. Sorry I misread the layout test. LayoutObject::container() (changed in https://codereview.chromium.org/2575423003/) seems problematic for a floating object under a relative or stacking-context inline (test case: jsbin.com/hoyiwegiki). This CL LGTM.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
I'm working on a CL to add isStacked check for other floating special cases. It's core is this new LayoutObject method: // A block can contain floating objects. A stacked inline can contain stacked // floating objects. A floating object's container is the nearest ancestor // that can contain the object. bool canContainFloatingObject(const LayoutObject& floating) const { DCHECK(floating.isFloating); return isLayoutBlock() || (styleRef().isStacked() && floating.styleRef().isStacked()); } https://codereview.chromium.org/2640053004/diff/20001/third_party/WebKit/Layo... File third_party/WebKit/LayoutTests/paint/inline/floating-inline.html (right): https://codereview.chromium.org/2640053004/diff/20001/third_party/WebKit/Layo... third_party/WebKit/LayoutTests/paint/inline/floating-inline.html:12: </div> There are failures on win and mac bots. Can you convert this test into a ref test?
https://codereview.chromium.org/2640053004/diff/20001/third_party/WebKit/Layo... File third_party/WebKit/LayoutTests/paint/inline/floating-inline.html (right): https://codereview.chromium.org/2640053004/diff/20001/third_party/WebKit/Layo... third_party/WebKit/LayoutTests/paint/inline/floating-inline.html:12: </div> On 2017/01/20 at 00:52:14, Xianzhu wrote: > There are failures on win and mac bots. > > Can you convert this test into a ref test? I think this will be hard to do because of the floating element.
https://codereview.chromium.org/2640053004/diff/20001/third_party/WebKit/Layo... File third_party/WebKit/LayoutTests/paint/inline/floating-inline.html (right): https://codereview.chromium.org/2640053004/diff/20001/third_party/WebKit/Layo... third_party/WebKit/LayoutTests/paint/inline/floating-inline.html:12: </div> On 2017/01/20 17:43:02, chrishtr wrote: > On 2017/01/20 at 00:52:14, Xianzhu wrote: > > There are failures on win and mac bots. > > > > Can you convert this test into a ref test? > > I think this will be hard to do because of the floating element. Can it be like https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/paint/inv... and https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/paint/inv...
https://codereview.chromium.org/2640053004/diff/20001/third_party/WebKit/Layo... File third_party/WebKit/LayoutTests/paint/inline/floating-inline.html (right): https://codereview.chromium.org/2640053004/diff/20001/third_party/WebKit/Layo... third_party/WebKit/LayoutTests/paint/inline/floating-inline.html:12: </div> On 2017/01/20 at 17:44:46, Xianzhu wrote: > On 2017/01/20 17:43:02, chrishtr wrote: > > On 2017/01/20 at 00:52:14, Xianzhu wrote: > > > There are failures on win and mac bots. > > > > > > Can you convert this test into a ref test? > > > > I think this will be hard to do because of the floating element. > > Can it be like https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/paint/inv... and https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/paint/inv... Ah yes, good point. I forgot that a float under an inline paints like the inline wasn't there. Done.
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2640053004/diff/60001/third_party/WebKit/Layo... File third_party/WebKit/LayoutTests/paint/inline/floating-inline-expected.html (right): https://codereview.chromium.org/2640053004/diff/60001/third_party/WebKit/Layo... third_party/WebKit/LayoutTests/paint/inline/floating-inline-expected.html:10: </div> Nit: can the expectation be further minimized? e.g. like: <div style="width: 100%; background: light blue"> test </div> plus anything needed?
https://codereview.chromium.org/2640053004/diff/60001/third_party/WebKit/Layo... File third_party/WebKit/LayoutTests/paint/inline/floating-inline-expected.html (right): https://codereview.chromium.org/2640053004/diff/60001/third_party/WebKit/Layo... third_party/WebKit/LayoutTests/paint/inline/floating-inline-expected.html:10: </div> On 2017/01/20 at 18:22:23, Xianzhu wrote: > Nit: can the expectation be further minimized? e.g. like: > <div style="width: 100%; background: light blue"> > test > </div> > plus anything needed? Done.
The CQ bit was checked by wangxianzhu@chromium.org
lgtm
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 80001, "attempt_start_ts": 1484937941188270, "parent_rev": "6c72e9c753adc139ac086deb62ce48ab4dd46957", "commit_rev": "2d6a760cbb0204f306e9312bc39036b75f80c5f2"}
Message was sent while issue was closed.
Description was changed from ========== Fix compositingContainer for stacked inlines. BUG=681778 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Fix compositingContainer for stacked inlines. BUG=681778 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2640053004 Cr-Commit-Position: refs/heads/master@{#445164} Committed: https://chromium.googlesource.com/chromium/src/+/2d6a760cbb0204f306e9312bc390... ==========
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as https://chromium.googlesource.com/chromium/src/+/2d6a760cbb0204f306e9312bc390... |