New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 774699 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Outline for input element fragmented across columns, but input is not

Project Member Reported by chrishtr@chromium.org, Oct 13 2017

Issue description

Input elements and scrollers are I believe currently not ever fragmented.
However, the region for their outlines is 1px outside of the not-
fragmented region, and gets broken into multiple pieces.

The outline, if present, for a scroller or input, should not be
broken into multiple columns, and should instead overflow the single
fragment if necessary.

Example attached (focus the input box to see the broken outline).
 
test2.html
162 bytes View Download

Comment 1 by e...@chromium.org, Oct 14 2017

Status: Available (was: Untriaged)

Comment 2 by msten...@opera.com, Oct 16 2017

You're right, but I think that's going to be hard to achieve with the current architecture. Internally we have this tall single-strip flow thread that just get sliced into columns for painting and hit-testing, and so on.

See also  crbug.com/420350  (marked as a duplicate of crbug.com/269061 (which really is about the opposite problem - not sure if it was a good idea to mark it as a duplicate, but then again I expect the two problems to be fixed by one and the same fix - whatever that is going to be. LayoutNG? :-P))
One option could be to paint visual overflows without clip if the element had
only one fragment (which we now know because of the existence of the FragmentData
objects. But that is not trivial, and I'm not so sure how high priority this is
anyway.
Owner: chrishtr@chromium.org
Status: Assigned (was: Available)
Project Member

Comment 5 by bugdroid1@chromium.org, Nov 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7b689930b0918450948c72447fec65f98e7eaa9a

commit 7b689930b0918450948c72447fec65f98e7eaa9a
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Thu Nov 09 20:33:06 2017

Use BorderBoxRect when computing fragment paint offsets and
column fragmentation.

Visual rects may not have an origin at the (0, 0) point of the
object, which makes them inappropriate for paint offsets.
They are also not appropriate for fragmentation, because visual
overflow should extend beyond column bounds rather than
causing elements to paint into multiple fragments.

Note that fragment clips may still cut off visual overflow,
which is a bug, but now visual overflow will not extend across
columns.

Bug:  782608 ,  774699 ,  779998 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I23feab957c018c124f59b5b9b84644709c466e03
Reviewed-on: https://chromium-review.googlesource.com/759233
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515269}
[modify] https://crrev.com/7b689930b0918450948c72447fec65f98e7eaa9a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
[modify] https://crrev.com/7b689930b0918450948c72447fec65f98e7eaa9a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp

Status: Fixed (was: Assigned)

Sign in to add a comment