DescriptionInclude the whole outline into visual overflow
This is another preparation CL for combining outline and focus ring
paths (https://codereview.chromium.org/1224933002/).
Not including the whole outline into visual overflow caused
incorrect layout and painting of outlines when the element having
outline has clipping or is composited because the overflow doesn't
cover the whole outline.
Not including outlines of block continuations into visual overflow
required us to
- propagate outline style to block continuations on style change;
- paint outlines for block continuations separately, causing
unconnected or duplicated outline edges.
Both of the above caused complex code.
With this CL, we always include the whole outline into visual
overflow of the object having outline style.
- For LayoutBoxes, combine code paths about overflow for focus ring
and outline;
- For LayoutBlockFlows, we need to include the visual overflow of
descendant LayoutInlines having continuation and outline. Let the
containing LayoutBlockFlow record LayoutInlines with outline and
continuation, and include the outline rects of continuations
into visual overflow of the block.
(FYI, cases that we already included outlines into visual overflow:
- LayoutBlockFlow containing descendant LayoutInlines having outline
but not continuation: we already included such outlines in visual
overflow of InlineFlowBoxes and in turn into the LayoutBlockFlow;
- LayoutInlines having outline: previously we include outlines by
calling rectWithOutlineForPaintInvalidation(); with this CL we
call addOutlineRects().)
This CL will have real effect with
https://codereview.chromium.org/1224933002/.
BUG=506669
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=201418
Patch Set 1 #Patch Set 2 : #
Total comments: 2
Patch Set 3 : TestExpectations #Patch Set 4 : #Patch Set 5 : #
Total comments: 1
Patch Set 6 : Modify a fast/spatial-navigation test because of fix of original clippedOverflowRect bug #
Total comments: 1
Patch Set 7 : Rebase #Patch Set 8 : Rebase #
Total comments: 4
Patch Set 9 : Separate out https://codereview.chromium.org/1280543005 #
Total comments: 6
Patch Set 10 : Avoid the global map #
Total comments: 6
Patch Set 11 : #
Total comments: 4
Patch Set 12 : Add comment for LayoutObject::addOutlineRects() #
Total comments: 2
Patch Set 13 : #Patch Set 14 : #Messages
Total messages: 35 (9 generated)
|