WebKit Bugzilla
Attachment 356438 Details for
Bug 192342
: FrameView's ViewportConstrainedObjectSet can contain RenderLayerModelObjects rather than RenderElements
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192342-20181203165948.patch (text/plain), 4.42 KB, created by
Simon Fraser (smfr)
on 2018-12-03 16:59:49 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2018-12-03 16:59:49 PST
Size:
4.42 KB
patch
obsolete
>Subversion Revision: 238817 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index de7f5756093d8b3bb35324656c248abf7ddafaf5..30ff06357f93f386978aa08c0fe5200af423499e 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,21 @@ >+2018-12-03 Simon Fraser <simon.fraser@apple.com> >+ >+ Viewport-constrained renderers are always RenderLayerModelObjects >+ https://bugs.webkit.org/show_bug.cgi?id=192342 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ addViewportConstrainedObject/removeViewportConstrainedObject can take RenderLayerModelObjects, >+ since all viewport-constrained renderers have layers. >+ >+ * page/FrameView.cpp: >+ (WebCore::FrameView::addViewportConstrainedObject): >+ (WebCore::FrameView::removeViewportConstrainedObject): >+ * page/FrameView.h: >+ * rendering/RenderLayerModelObject.cpp: >+ (WebCore::RenderLayerModelObject::styleDidChange): The 0 argument is actually a nullptr RenderGeometryMap, >+ which has a default value, and the comment was obsolete. >+ > 2018-12-03 Zalan Bujtas <zalan@apple.com> > > [iOS] Unreviewed build fix. >diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp >index 778b4c56eeb7d4b963812ab5c7e3370b63e003b7..edd1ceb2144d055e52e42ea2f3bd628dc5d1f83d 100644 >--- a/Source/WebCore/page/FrameView.cpp >+++ b/Source/WebCore/page/FrameView.cpp >@@ -1515,7 +1515,7 @@ void FrameView::removeSlowRepaintObject(RenderElement& renderer) > } > } > >-void FrameView::addViewportConstrainedObject(RenderElement* object) >+void FrameView::addViewportConstrainedObject(RenderLayerModelObject* object) > { > if (!m_viewportConstrainedObjects) > m_viewportConstrainedObjects = std::make_unique<ViewportConstrainedObjectSet>(); >@@ -1532,7 +1532,7 @@ void FrameView::addViewportConstrainedObject(RenderElement* object) > } > } > >-void FrameView::removeViewportConstrainedObject(RenderElement* object) >+void FrameView::removeViewportConstrainedObject(RenderLayerModelObject* object) > { > if (m_viewportConstrainedObjects && m_viewportConstrainedObjects->remove(object)) { > if (Page* page = frame().page()) { >diff --git a/Source/WebCore/page/FrameView.h b/Source/WebCore/page/FrameView.h >index d45e75d54d486f90d60b11c86a46c883ad7c4002..bc993a8ec6c284863880fdd29a27f01c315a5eb0 100644 >--- a/Source/WebCore/page/FrameView.h >+++ b/Source/WebCore/page/FrameView.h >@@ -53,12 +53,12 @@ class Element; > class FloatSize; > class Frame; > class HTMLFrameOwnerElement; >-class Node; > class Page; > class RenderBox; > class RenderElement; > class RenderEmbeddedObject; > class RenderLayer; >+class RenderLayerModelObject; > class RenderObject; > class RenderScrollbarPart; > class RenderStyle; >@@ -290,9 +290,9 @@ public: > bool hasSlowRepaintObjects() const { return m_slowRepaintObjects && m_slowRepaintObjects->size(); } > > // Includes fixed- and sticky-position objects. >- typedef HashSet<RenderElement*> ViewportConstrainedObjectSet; >- void addViewportConstrainedObject(RenderElement*); >- void removeViewportConstrainedObject(RenderElement*); >+ typedef HashSet<RenderLayerModelObject*> ViewportConstrainedObjectSet; >+ void addViewportConstrainedObject(RenderLayerModelObject*); >+ void removeViewportConstrainedObject(RenderLayerModelObject*); > const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { return m_viewportConstrainedObjects.get(); } > bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObjects && m_viewportConstrainedObjects->size() > 0; } > >diff --git a/Source/WebCore/rendering/RenderLayerModelObject.cpp b/Source/WebCore/rendering/RenderLayerModelObject.cpp >index 2e4d763d49ab7c5c636d23aebfbffc27e149a8a8..06fccde877916f96203765ba8e69cf8dc20b76da 100644 >--- a/Source/WebCore/rendering/RenderLayerModelObject.cpp >+++ b/Source/WebCore/rendering/RenderLayerModelObject.cpp >@@ -170,9 +170,7 @@ void RenderLayerModelObject::styleDidChange(StyleDifference diff, const RenderSt > createLayer(); > if (parent() && !needsLayout() && containingBlock()) { > layer()->setRepaintStatus(NeedsFullRepaint); >- // There is only one layer to update, it is not worth using |cachedOffset| since >- // we are not sure the value will be used. >- layer()->updateLayerPositions(0); >+ layer()->updateLayerPositions(); > } > } > } else if (layer() && layer()->parent()) {
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 192342
: 356438