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

Issue 2651393003: [layoutng] Propagate fixed descendants of abs. (Closed)

Created:
3 years, 10 months ago by atotic
Modified:
3 years, 10 months ago
CC:
atotic+reviews_chromium.org, blink-reviews, blink-reviews-layout_chromium.org, cbiesinger, chromium-reviews, dgrogan+ng_chromium.org, eae+blinkwatch, glebl+reviews_chromium.org, jchaffraix+rendering, leviw+renderwatch, ojan+watch_chromium.org, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Propagate fixed descendants of abs. Bug: fixed descendants of absolute blocks were not getting positioned. This fix was a TODO that fell off the radar. Example: <div id="rel" style="position:relative;"> <div id="abs" style="position:absolute;top:100px;"> <p>absolute</p> <div class="fix" style="position:fixed;background-color:gray;"><p>fixed</p></div> </div> </div> The loop inside NGOutOfFlowLayoutPart::Run had to be modified from collection iterator to an array, because collections can't be modified while iterating. I've tried testing it in vertical-lr, but there are upstream bugs that prevent this. [ng_fixed_in_abs] BUG=635619 Review-Url: https://codereview.chromium.org/2651393003 Cr-Commit-Position: refs/heads/master@{#448463} Committed: https://chromium.googlesource.com/chromium/src/+/dc062b30eac5feb37dcdc824cdf114b2aa30d77e

Patch Set 1 #

Patch Set 2 : Simpler implementation #

Patch Set 3 : Add a testcase #

Total comments: 17

Patch Set 4 : CR fixes #

Patch Set 5 : CR: added test for fragment count #

Total comments: 2

Patch Set 6 : CR: final nits #

Patch Set 7 : remove raw string literal, does not work on mac #

Patch Set 8 : fixed1 is a reserved keyword on a mac #

Unified diffs Side-by-side diffs Delta from patch set Stats (+104 lines, -13 lines) Patch
M third_party/WebKit/Source/core/BUILD.gn View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc View 1 2 3 4 1 chunk +21 lines, -13 lines 0 comments Download
A third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc View 1 2 3 4 5 6 7 1 chunk +82 lines, -0 lines 0 comments Download

Messages

Total messages: 36 (15 generated)
atotic
3 years, 10 months ago (2017-01-26 22:40:42 UTC) #4
ikilpatrick
this looks good, can you add a unit test with: <div id=abs> <div id=fixed1> <div ...
3 years, 10 months ago (2017-01-30 00:20:21 UTC) #5
ikilpatrick
(basically just something that will test multiple iterations of the outer loop).
3 years, 10 months ago (2017-01-30 00:22:19 UTC) #6
atotic
On 2017/01/30 at 00:22:19, ikilpatrick wrote: > (basically just something that will test multiple iterations ...
3 years, 10 months ago (2017-01-31 00:34:19 UTC) #7
ikilpatrick
https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc File third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc (right): https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc#newcode1 third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc:1: // Copyright 2016 The Chromium Authors. All rights reserved. ...
3 years, 10 months ago (2017-01-31 01:12:15 UTC) #8
ikilpatrick
https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc File third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc (right): https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc#newcode37 third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc:37: Element* fixed2 = document().getElementById("fixed2"); also might be good just ...
3 years, 10 months ago (2017-01-31 01:14:12 UTC) #9
atotic
https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc File third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc (right): https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc#newcode1 third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc:1: // Copyright 2016 The Chromium Authors. All rights reserved. ...
3 years, 10 months ago (2017-01-31 01:15:41 UTC) #10
atotic
https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc File third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc (right): https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc#newcode37 third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc:37: Element* fixed2 = document().getElementById("fixed2"); On 2017/01/31 at 01:14:12, ikilpatrick ...
3 years, 10 months ago (2017-01-31 01:22:35 UTC) #11
Gleb Lanbin
https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc File third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc (right): https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc#newcode15 third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc:15: NGOutOfFlowLayoutPartTest(){}; On 2017/01/31 01:15:41, atotic wrote: > On 2017/01/31 ...
3 years, 10 months ago (2017-01-31 19:19:35 UTC) #13
atotic
ptal https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc File third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc (right): https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc#newcode15 third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc:15: NGOutOfFlowLayoutPartTest(){}; done https://codereview.chromium.org/2651393003/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc#newcode18 third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc:18: TEST_F(NGOutOfFlowLayoutPartTest, FixedInsideAbs) { On ...
3 years, 10 months ago (2017-02-01 01:37:19 UTC) #14
atotic
ping > 48hrs, ptal
3 years, 10 months ago (2017-02-03 17:09:13 UTC) #15
atotic
Added a test for fragment count. ptal
3 years, 10 months ago (2017-02-06 19:38:34 UTC) #16
ikilpatrick
lgtm w nits. https://codereview.chromium.org/2651393003/diff/80001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc File third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc (right): https://codereview.chromium.org/2651393003/diff/80001/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc#newcode64 third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc:64: // Test whether oof fragments have ...
3 years, 10 months ago (2017-02-06 19:46:03 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2651393003/100001
3 years, 10 months ago (2017-02-06 19:56:10 UTC) #20
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/357700)
3 years, 10 months ago (2017-02-06 20:03:24 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2651393003/120001
3 years, 10 months ago (2017-02-06 20:41:40 UTC) #25
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/357767)
3 years, 10 months ago (2017-02-06 20:52:10 UTC) #27
atotic
eae, can I get an lgtm? I need one from owners of WebKit/Source/core/BUILD.gn
3 years, 10 months ago (2017-02-06 21:50:36 UTC) #29
eae
RS LGTM
3 years, 10 months ago (2017-02-06 21:52:54 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2651393003/140001
3 years, 10 months ago (2017-02-06 22:38:43 UTC) #33
commit-bot: I haz the power
3 years, 10 months ago (2017-02-07 00:27:53 UTC) #36
Message was sent while issue was closed.
Committed patchset #8 (id:140001) as
https://chromium.googlesource.com/chromium/src/+/dc062b30eac5feb37dcdc824cdf1...

Powered by Google App Engine
This is Rietveld 408576698