Title: [270752] trunk/Source/WebCore
Revision
270752
Author
[email protected]
Date
2020-12-13 15:42:09 -0800 (Sun, 13 Dec 2020)

Log Message

[LFC Display] The display tree should be owned by the display view
https://bugs.webkit.org/show_bug.cgi?id=219840

Reviewed by Sam Weinig.

Move ownership of the Display::Tree from Display::LayerController to Display::View,
because this ownership model makes more sense.

* display/DisplayView.cpp:
(WebCore::Display::View::prepareForDisplay):
* display/DisplayView.h:
(WebCore::Display::View::tree const):
* display/compositing/DisplayLayerController.cpp:
(WebCore::Display::LayerController::RootLayerClient::paintContents):
(WebCore::Display::LayerController::prepareForDisplay):
* display/compositing/DisplayLayerController.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (270751 => 270752)


--- trunk/Source/WebCore/ChangeLog	2020-12-13 21:49:06 UTC (rev 270751)
+++ trunk/Source/WebCore/ChangeLog	2020-12-13 23:42:09 UTC (rev 270752)
@@ -1,3 +1,22 @@
+2020-12-13  Simon Fraser  <[email protected]>
+
+        [LFC Display] The display tree should be owned by the display view
+        https://bugs.webkit.org/show_bug.cgi?id=219840
+
+        Reviewed by Sam Weinig.
+
+        Move ownership of the Display::Tree from Display::LayerController to Display::View,
+        because this ownership model makes more sense.
+
+        * display/DisplayView.cpp:
+        (WebCore::Display::View::prepareForDisplay):
+        * display/DisplayView.h:
+        (WebCore::Display::View::tree const):
+        * display/compositing/DisplayLayerController.cpp:
+        (WebCore::Display::LayerController::RootLayerClient::paintContents):
+        (WebCore::Display::LayerController::prepareForDisplay):
+        * display/compositing/DisplayLayerController.h:
+
 2020-12-13  Don Olmstead  <[email protected]>
 
         Move createAppHighlightRangeData into AppHighlightStorage source file

Modified: trunk/Source/WebCore/display/DisplayView.cpp (270751 => 270752)


--- trunk/Source/WebCore/display/DisplayView.cpp	2020-12-13 21:49:06 UTC (rev 270751)
+++ trunk/Source/WebCore/display/DisplayView.cpp	2020-12-13 23:42:09 UTC (rev 270752)
@@ -73,9 +73,9 @@
         return;
 
     auto treeBuilder = TreeBuilder { deviceScaleFactor() };
-    auto displayTree = treeBuilder.build(*layoutState);
+    m_displayTree = treeBuilder.build(*layoutState);
 
-    m_layerController.prepareForDisplay(WTFMove(displayTree));
+    m_layerController.prepareForDisplay(*m_displayTree);
 }
 
 void View::flushLayers()

Modified: trunk/Source/WebCore/display/DisplayView.h (270751 => 270752)


--- trunk/Source/WebCore/display/DisplayView.h	2020-12-13 21:49:06 UTC (rev 270751)
+++ trunk/Source/WebCore/display/DisplayView.h	2020-12-13 23:42:09 UTC (rev 270752)
@@ -50,7 +50,9 @@
 public:
     explicit View(FrameView&);
     ~View();
-    
+
+    const Tree* tree() const { return m_displayTree.get(); }
+
     void prepareForDisplay();
     void flushLayers();
     
@@ -67,6 +69,7 @@
 
     FrameView& m_frameView;
     LayerController m_layerController;
+    std::unique_ptr<Display::Tree> m_displayTree;
 };
 
 } // namespace Display

Modified: trunk/Source/WebCore/display/compositing/DisplayLayerController.cpp (270751 => 270752)


--- trunk/Source/WebCore/display/compositing/DisplayLayerController.cpp	2020-12-13 21:49:06 UTC (rev 270751)
+++ trunk/Source/WebCore/display/compositing/DisplayLayerController.cpp	2020-12-13 23:42:09 UTC (rev 270752)
@@ -60,7 +60,7 @@
 {
     ASSERT_UNUSED(layer, layer == m_layerController.contentLayer());
 
-    if (auto* displayTree = m_layerController.m_displayTree.get()) {
+    if (auto* displayTree = m_layerController.view().tree()) {
         PaintingContext paintingContext { context, deviceScaleFactor() };
         CSSPainter::paintTree(*displayTree, paintingContext, enclosingIntRect(dirtyRect));
     }
@@ -79,12 +79,9 @@
 
 LayerController::~LayerController() = default;
 
-void LayerController::prepareForDisplay(std::unique_ptr<Display::Tree>&& displayTree)
+void LayerController::prepareForDisplay(Tree& displayTree)
 {
-    ASSERT(displayTree);
-    m_displayTree = WTFMove(displayTree);
-
-    auto viewSize = m_displayTree->rootBox().absoluteBorderBoxRect().size();
+    auto viewSize = displayTree.rootBox().absoluteBorderBoxRect().size();
     // FIXME: Do overflow etc.
     auto contentSize = viewSize;
 

Modified: trunk/Source/WebCore/display/compositing/DisplayLayerController.h (270751 => 270752)


--- trunk/Source/WebCore/display/compositing/DisplayLayerController.h	2020-12-13 21:49:06 UTC (rev 270751)
+++ trunk/Source/WebCore/display/compositing/DisplayLayerController.h	2020-12-13 23:42:09 UTC (rev 270752)
@@ -47,7 +47,7 @@
     explicit LayerController(View&);
     ~LayerController();
     
-    void prepareForDisplay(std::unique_ptr<Display::Tree>&&);
+    void prepareForDisplay(Tree&);
     void flushLayers();
 
     void setIsInWindow(bool);
@@ -90,8 +90,6 @@
     RefPtr<GraphicsLayer> m_rootLayer;
     RefPtr<GraphicsLayer> m_contentHostLayer;
     RefPtr<GraphicsLayer> m_contentLayer;
-
-    std::unique_ptr<Display::Tree> m_displayTree;
 };
 
 } // namespace Display
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to