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

Issue 658019 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
NOT IN USE
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Pagination struts kept when no longer fragmented

Reported by msten...@opera.com, Oct 20 2016

Issue description

We don't re-lay out some objects when they cease to be part of a fragmentation context.

This bug is probably very old. It affects multicol, and also the document after having print-previewed it.
 
tc-lines.html
584 bytes View Download
tc-unbreakable-blocks.html
726 bytes View Download
tc-printing.html
1.8 KB View Download
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 27 2016

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

commit 2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7
Author: mstensho <mstensho@opera.com>
Date: Thu Oct 27 17:09:41 2016

Need a deep layout pass when becoming (un)fragmented.

When an object ceases to be fragmented (e.g. when leaving print preview), there
may be pagination struts that need to be removed. Therefore, we need to lay out
all descendants of a block that ceased to establish a fragmentation context.

Similarly, when becoming fragmented (e.g. when entering print preview), we need
to go through every descendant. There may both be implicit and forced breaks to
insert.

BUG= 658019 

Review-Url: https://codereview.chromium.org/2454083002
Cr-Commit-Position: refs/heads/master@{#428062}

[add] https://crrev.com/2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7/third_party/WebKit/LayoutTests/fragmentation/become-unfragmented-with-unbreakable-blocks.html
[modify] https://crrev.com/2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7/third_party/WebKit/Source/core/layout/LayoutBlock.h
[modify] https://crrev.com/2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7/third_party/WebKit/Source/core/layout/LayoutState.cpp
[modify] https://crrev.com/2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7/third_party/WebKit/Source/core/layout/LayoutState.h
[modify] https://crrev.com/2cfe39f5654c3284b904f4e4e6ae5b08b6a4b5a7/third_party/WebKit/Source/core/layout/LayoutView.cpp

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 27 2016

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

commit e2a5a72d7a8ac8bb8016c7dbe9021849c6ca04b8
Author: mstensho <mstensho@opera.com>
Date: Thu Oct 27 22:16:07 2016

Need to remove line pagination struts when no longer fragmented.

We only used to recalculate pagination struts on lines when we were inside a
fragmentation context, but if said fragmentation context ceases to be one, we
need one final strut recalculation pass, to get rid of them all.

BUG= 658019 

Review-Url: https://codereview.chromium.org/2460673002
Cr-Commit-Position: refs/heads/master@{#428161}

[add] https://crrev.com/e2a5a72d7a8ac8bb8016c7dbe9021849c6ca04b8/third_party/WebKit/LayoutTests/fragmentation/become-unfragmented-with-lines.html
[modify] https://crrev.com/e2a5a72d7a8ac8bb8016c7dbe9021849c6ca04b8/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/e2a5a72d7a8ac8bb8016c7dbe9021849c6ca04b8/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/e2a5a72d7a8ac8bb8016c7dbe9021849c6ca04b8/third_party/WebKit/Source/core/layout/line/LineLayoutState.h

Comment 3 by msten...@opera.com, Oct 28 2016

Status: Fixed (was: Assigned)

Comment 4 by msten...@opera.com, Nov 23 2016

Cc: msten...@opera.com smokana@chromium.org tkonch...@chromium.org robho...@gmail.com
 Issue 517043  has been merged into this issue.

Sign in to add a comment