WebKit Bugzilla
Attachment 369692 Details for
Bug 197818
: REGRESSION (r245208): compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html asserts
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Logging and speculative fix
bug-197818-20190512210949.patch (text/plain), 4.43 KB, created by
Simon Fraser (smfr)
on 2019-05-12 21:09:50 PDT
(
hide
)
Description:
Logging and speculative fix
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-05-12 21:09:50 PDT
Size:
4.43 KB
patch
obsolete
>Subversion Revision: 245219 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 9271c0a3323c24a54f356576cd026c4484bfa19e..f402a75e5a272ae338426eff19389bf064d220ff 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,21 @@ >+2019-05-12 Simon Fraser <simon.fraser@apple.com> >+ >+ REGRESSION (r245208): compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html asserts >+ https://bugs.webkit.org/show_bug.cgi?id=197818 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ The eventRegion painting path needs to use the same RenderLayer painting entry-point >+ as we use for painting, so that transforms are taken into account, and we use >+ the same clip rects as with painting. >+ >+ * platform/Logging.cpp: >+ (WebCore::initializeLogChannelsIfNecessary): >+ * rendering/RenderLayer.cpp: >+ (WebCore::RenderLayer::updateClipRects): >+ * rendering/RenderLayerBacking.cpp: >+ (WebCore::RenderLayerBacking::updateEventRegion): >+ > 2019-05-02 Simon Fraser <simon.fraser@apple.com> > > Add logging for RenderLayer clip rects >diff --git a/Source/WebCore/platform/Logging.cpp b/Source/WebCore/platform/Logging.cpp >index 899141ce0d39d4151450cf4e1632cdb4ca85af97..ab768bbbb88944bbf79be27a0fe4090f50f9f9b1 100644 >--- a/Source/WebCore/platform/Logging.cpp >+++ b/Source/WebCore/platform/Logging.cpp >@@ -78,6 +78,8 @@ void initializeLogChannelsIfNecessary(Optional<String> logChannelString) > > String enabledChannelsString = logChannelString ? logChannelString.value() : logLevelString(); > WTFInitializeLogChannelStatesFromString(logChannels, logChannelCount, enabledChannelsString.utf8().data()); >+ LogCompositing.state = WTFLogChannelState::On; >+ LogClipRects.state = WTFLogChannelState::On; > } > > WTFLogChannel* getLogChannel(const String& name) >diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp >index 7a1dc38fcf2de78a320e5fc58704156770114d93..d9f1390ae4107b6dc40be3b1c44953342560c209 100644 >--- a/Source/WebCore/rendering/RenderLayer.cpp >+++ b/Source/WebCore/rendering/RenderLayer.cpp >@@ -5496,7 +5496,10 @@ Ref<ClipRects> RenderLayer::updateClipRects(const ClipRectsContext& clipRectsCon > ASSERT(clipRectsType < NumCachedClipRectsTypes); > if (m_clipRectsCache) { > if (auto* clipRects = m_clipRectsCache->getClipRects(clipRectsType, clipRectsContext.respectOverflowClip)) { >- ASSERT(clipRectsContext.rootLayer == m_clipRectsCache->m_clipRectsRoot[clipRectsType]); >+// ASSERT(clipRectsContext.rootLayer == m_clipRectsCache->m_clipRectsRoot[clipRectsType]); >+ if (clipRectsContext.rootLayer != m_clipRectsCache->m_clipRectsRoot[clipRectsType]) >+ LOG_WITH_STREAM(ClipRects, stream << "RenderLayer " << this << " updateClipRects " << clipRectsContext << " - mismatched roots, cached is " << m_clipRectsCache->m_clipRectsRoot[clipRectsType]); >+ > ASSERT(m_clipRectsCache->m_scrollbarRelevancy[clipRectsType] == clipRectsContext.overlayScrollbarSizeRelevancy); > > #ifdef CHECK_CACHED_CLIP_RECTS >@@ -5514,6 +5517,7 @@ Ref<ClipRects> RenderLayer::updateClipRects(const ClipRectsContext& clipRectsCon > if (!m_clipRectsCache) > m_clipRectsCache = std::make_unique<ClipRectsCache>(); > #ifndef NDEBUG >+ LOG_WITH_STREAM(ClipRects, stream << "RenderLayer " << this << " updateClipRects " << clipRectsContext << " - caching root " << clipRectsContext.rootLayer); > m_clipRectsCache->m_clipRectsRoot[clipRectsType] = clipRectsContext.rootLayer; > m_clipRectsCache->m_scrollbarRelevancy[clipRectsType] = clipRectsContext.overlayScrollbarSizeRelevancy; > #endif >diff --git a/Source/WebCore/rendering/RenderLayerBacking.cpp b/Source/WebCore/rendering/RenderLayerBacking.cpp >index f839e46e3ebd04e23439b5a940ac13d3a9bf52a1..6e7398659d9065b99dd72d1e95043a5b5b4a391c 100644 >--- a/Source/WebCore/rendering/RenderLayerBacking.cpp >+++ b/Source/WebCore/rendering/RenderLayerBacking.cpp >@@ -1486,7 +1486,7 @@ void RenderLayerBacking::updateEventRegion() > m_owningLayer.paintLayerContents(nullContext, paintingInfo, paintFlags); > > for (auto& layerWeakPtr : m_backingSharingLayers) >- layerWeakPtr->paintLayerContents(nullContext, paintingInfo, paintFlags); >+ layerWeakPtr->paintLayerWithEffects(nullContext, paintingInfo, paintFlags); > > auto contentOffset = roundedIntSize(contentOffsetInCompositingLayer()); > eventRegion.translate(contentOffset);
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 197818
: 369692 |
369728
|
369735