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

Issue 1144423007: Allow setNeedsLayout on positioned objects when no parent container (Closed)

Created:
5 years, 6 months ago by Stephen Chennney
Modified:
5 years, 6 months ago
CC:
blink-reviews, blink-reviews-rendering, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1, dsinclair, eae
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Allow setNeedsLayout on positioned objects when no parent container We assert !needsLayout in a LayoutCounter contained within a positioned block flow element. The condition arises due to code in LayoutObject::markContainerChainForLayout which refuses to mark objects with no container for layout, under the commented assumption that it means the object is not attached to the tree. Failure to layout the counter results in stale text layout inside the counter, which is very bad. Because the path from the counter to the root is never marked as needing layout, the counter will not ever get laid out. This patch adds a condition for positioned objects so that they do get marked for layout. Test added to clusterfuzz. R=ojan@chromium.org,esphren@chromium.org BUG=492490

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1 line, -1 line) Patch
M Source/core/layout/LayoutObject.cpp View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 13 (4 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1144423007/1
5 years, 6 months ago (2015-06-01 15:44:08 UTC) #2
Stephen Chennney
This fix seems hackish, but I don't see immediately how else to address the problem. ...
5 years, 6 months ago (2015-06-01 15:46:44 UTC) #4
esprehn
You should definitely always have a container() if you're in the tree. How does that ...
5 years, 6 months ago (2015-06-01 16:28:51 UTC) #5
mstensho (USE GERRIT)
Would be nice to have a simple layout test, so that we could figure out ...
5 years, 6 months ago (2015-06-01 16:34:24 UTC) #7
Stephen Chennney
On 2015/06/01 16:34:24, mstensho wrote: > Would be nice to have a simple layout test, ...
5 years, 6 months ago (2015-06-01 16:49:19 UTC) #8
Stephen Chennney
On 2015/06/01 16:28:51, esprehn wrote: > You should definitely always have a container() if you're ...
5 years, 6 months ago (2015-06-01 16:51:07 UTC) #9
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: win_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/win_blink_rel/builds/64602)
5 years, 6 months ago (2015-06-01 18:59:03 UTC) #11
ojan
+dsinclair,eae, FYI sounds like this needs a layout team owner. dsinclair, the bug has been ...
5 years, 6 months ago (2015-06-01 23:23:14 UTC) #12
mstensho (USE GERRIT)
5 years, 6 months ago (2015-06-04 18:08:11 UTC) #13
https://codereview.chromium.org/1143323011/ fixes this issue, so this one can be
closed now.

Powered by Google App Engine
This is Rietveld 408576698