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