Bug 193172

Summary: Incorrect clipping across compositing boundary.
Product: WebKit Reporter: zalan <zalan>
Component: Layout and RenderingAssignee: zalan <zalan>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, commit-queue, ews-watchlist, simon.fraser, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Archive of layout-test-results from ews122 for ios-simulator-wk2
none
Patch none

Description zalan 2019-01-05 14:33:29 PST
rdar://problem/44693008
Comment 1 zalan 2019-01-05 15:34:54 PST
Created attachment 358443 [details]
Patch
Comment 2 Simon Fraser (smfr) 2019-01-05 15:39:24 PST
Comment on attachment 358443 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=358443&action=review

> Source/WebCore/ChangeLog:12
> +        clip rect update using the wrong painting root. This happens when the layer hierarchy and the compositing contex do not match.

contex

> Source/WebCore/rendering/RenderLayer.cpp:5486
> +        auto paginationBoundary = parent()->enclosingPaginationLayer(IncludeCompositedPaginatedLayers) != enclosingPaginationLayer(IncludeCompositedPaginatedLayers);
> +        auto compositionBoundaryForRepaint = parent()->enclosingCompositingLayerForRepaint() != enclosingCompositingLayerForRepaint();

I hate auto for primitive types like bool. It doesn't save typing, and it's very unlikely that you'd ever refactor and change the type to get the benefit of auto.

Here, reading "auto paginationBoundary" makes me think that there's some complex "boundary" type I have to go look for.

These bools would read better as crossesPaginationBoundary, crossesCompositingBoundary.
Comment 3 zalan 2019-01-05 16:26:13 PST
Created attachment 358444 [details]
Patch
Comment 4 EWS Watchlist 2019-01-05 18:20:39 PST
Comment on attachment 358444 [details]
Patch

Attachment 358444 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: https://webkit-queues.webkit.org/results/10644279

New failing tests:
compositing/clipping/cached-cliprect-with-compositing-boundary.html
Comment 5 EWS Watchlist 2019-01-05 18:20:41 PST
Created attachment 358448 [details]
Archive of layout-test-results from ews122 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews122  Port: ios-simulator-wk2  Platform: Mac OS X 10.13.6
Comment 6 zalan 2019-01-05 18:25:10 PST
(In reply to Build Bot from comment #4)
> Comment on attachment 358444 [details]
> Patch
> 
> Attachment 358444 [details] did not pass ios-sim-ews (ios-simulator-wk2):
> Output: https://webkit-queues.webkit.org/results/10644279
> 
> New failing tests:
> compositing/clipping/cached-cliprect-with-compositing-boundary.html

Seriously? The bottom right corner of the iframe's inset border is different.
Comment 7 zalan 2019-01-05 18:28:31 PST
Created attachment 358449 [details]
Patch
Comment 8 WebKit Commit Bot 2019-01-05 19:54:34 PST
Comment on attachment 358449 [details]
Patch

Clearing flags on attachment: 358449

Committed r239661: <https://trac.webkit.org/changeset/239661>
Comment 9 WebKit Commit Bot 2019-01-05 19:54:35 PST
All reviewed patches have been landed.  Closing bug.