Index: Source/core/paint/ViewDisplayList.cpp |
diff --git a/Source/core/paint/ViewDisplayList.cpp b/Source/core/paint/ViewDisplayList.cpp |
index 4e64ec228643a6335bab7769fc9e846113cb0b48..0cf0f353726776d8d0e48b44063ce1e761a1e5cd 100644 |
--- a/Source/core/paint/ViewDisplayList.cpp |
+++ b/Source/core/paint/ViewDisplayList.cpp |
@@ -5,6 +5,9 @@ |
#include "config.h" |
#include "core/paint/ViewDisplayList.h" |
+#include "core/frame/LocalFrame.h" |
+#include "core/rendering/RenderLayer.h" |
+#include "core/rendering/RenderView.h" |
#include "platform/NotImplemented.h" |
#include "platform/RuntimeEnabledFeatures.h" |
@@ -55,6 +58,31 @@ void ViewDisplayList::updatePaintList() |
notImplemented(); |
} |
+ViewDisplayList& ViewDisplayList::fromRenderObject(const RenderObject* renderer) |
+{ |
+ ASSERT(renderer); |
+ |
+ RenderView* renderView = renderer->view(); |
+ ASSERT(renderView); |
+ |
+ FrameView* frameView = renderView->frameView(); |
+ ASSERT(frameView); |
+ |
+ LocalFrame* localRoot = frameView->frame().localRoot(); |
+ ASSERT(localRoot); |
+ |
+ FrameView* localRootView = localRoot->view(); |
+ ASSERT(localRootView); |
+ |
+ return localRootView->viewDisplayList(); |
+} |
+ |
+ViewDisplayList& ViewDisplayList::fromRenderLayer(const RenderLayer* layer) |
+{ |
+ ASSERT(layer); |
+ return fromRenderObject(layer->renderer()); |
+} |
+ |
#ifndef NDEBUG |
WTF::String DisplayItem::typeAsDebugString(DisplayItem::Type type) |
{ |