WebKit Bugzilla
Attachment 369569 Details for
Bug 197776
: ASSERT(isSelfPaintingLayer() || hasSelfPaintingLayerDescendant()) on nytimes.com after r245170
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-197776-20190510105114.patch (text/plain), 5.38 KB, created by
Simon Fraser (smfr)
on 2019-05-10 10:51:15 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-05-10 10:51:15 PDT
Size:
5.38 KB
patch
obsolete
>Subversion Revision: 245170 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 8cb18e7da7c75fd08039c7e663e741ed20889016..c6acfcab4b6722edba8cefea3cd53db435e97d78 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2019-05-10 Simon Fraser <simon.fraser@apple.com> >+ >+ ASSERT(isSelfPaintingLayer() || hasSelfPaintingLayerDescendant()) on nytimes.com after r245170 >+ https://bugs.webkit.org/show_bug.cgi?id=197776 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Only try to paint into shared backing for layers that are able to be composited. This >+ avoids trying to do sharing for non-self-painting layers, which doesn't make sense. >+ >+ Test: compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html >+ >+ * rendering/RenderLayerCompositor.cpp: >+ (WebCore::RenderLayerCompositor::computeCompositingRequirements): >+ > 2019-05-09 Simon Fraser <simon.fraser@apple.com> > > Implement backing-sharing in compositing layers, allowing overlap layers to paint into the backing store of another layer >diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp >index e3a4c9f3f87abeb4ebe4024fec1e69ac51648d36..790791b3fa2ef07aabb2b5fa562603023a8d8da8 100644 >--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp >+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp >@@ -915,7 +915,7 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* ancestor > > // If we're testing for overlap, we only need to composite if we overlap something that is already composited. > if (overlapMap.overlapsLayers(layerExtent.bounds)) { >- if (backingSharingState.backingProviderCandidate && backingProviderLayerCanIncludeLayer(*backingSharingState.backingProviderCandidate, layer)) { >+ if (backingSharingState.backingProviderCandidate && canBeComposited(layer) && backingProviderLayerCanIncludeLayer(*backingSharingState.backingProviderCandidate, layer)) { > backingSharingState.backingSharingLayers.append(makeWeakPtr(layer)); > LOG(Compositing, " layer %p can share with %p", &layer, backingSharingState.backingProviderCandidate); > compositingReason = RenderLayer::IndirectCompositingReason::None; >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 72cecf98bb49ee8e208906cf95b381f17c2d678d..26d8fc61cf2605fff0f9b7ba00ca54f7a16e1736 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,13 @@ >+2019-05-10 Simon Fraser <simon.fraser@apple.com> >+ >+ ASSERT(isSelfPaintingLayer() || hasSelfPaintingLayerDescendant()) on nytimes.com after r245170 >+ https://bugs.webkit.org/show_bug.cgi?id=197776 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share-expected.txt: Added. >+ * compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html: Added. >+ > 2019-05-09 Simon Fraser <simon.fraser@apple.com> > > Implement backing-sharing in compositing layers, allowing overlap layers to paint into the backing store of another layer >diff --git a/LayoutTests/compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share-expected.txt b/LayoutTests/compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4c3c44ad7938fd644c38540cfda81d330e780865 >--- /dev/null >+++ b/LayoutTests/compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share-expected.txt >@@ -0,0 +1,5 @@ >+Test passes if it does not assert in debug. >+ >+this is clipped >+this is clipped >+ >diff --git a/LayoutTests/compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html b/LayoutTests/compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html >new file mode 100644 >index 0000000000000000000000000000000000000000..928b248242d72965f51dc1c55b34767fab7eceaf >--- /dev/null >+++ b/LayoutTests/compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html >@@ -0,0 +1,48 @@ >+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] --> >+<html> >+<head> >+ <title>Tests that a non-self-painting layer doesn't get into the sharing list</title> >+ <style> >+ .scroller { >+ margin: 20px; >+ width: 300px; >+ height: 300px; >+ overflow: auto; >+ border: 2px solid black; >+ padding: 10px; >+ } >+ >+ .clipping { >+ overflow: hidden; >+ top: 50px; >+ left: 200px; >+ height: 200px; >+ width: 200px; >+ border: 2px solid orange; >+ } >+ >+ .relative { >+ position: relative; >+ } >+ >+ .spacer { >+ height: 150px; >+ } >+ </style> >+ <script> >+ if (window.testRunner) >+ testRunner.dumpAsText(); >+ </script> >+</head> >+<body> >+ <p>Test passes if it does not assert in debug.</p> >+ <div class="scroller"> >+ <div class="clipping">this is clipped</div> >+ <div class="relative"> >+ <div class="clipping">this is clipped</div> >+ </div> >+ <div class="spacer"></div> >+ </div> >+</body> >+</html> >+
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 197776
: 369569