Commit 7cc0f9c4 authored by pdr@chromium.org's avatar pdr@chromium.org

Plumb CompositedDisplayList to WebViewImpl

This patch sets up the scaffolding for plumbing the new
composited display list to the compositor.

Review URL: https://codereview.chromium.org/1301033002

git-svn-id: svn://svn.chromium.org/blink/trunk@200945 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 1aa78974
...@@ -6,17 +6,11 @@ ...@@ -6,17 +6,11 @@
#define DisplayListCompositingBuilder_h #define DisplayListCompositingBuilder_h
#include "core/CoreExport.h" #include "core/CoreExport.h"
#include "platform/graphics/CompositedDisplayList.h"
#include "platform/graphics/paint/DisplayItemList.h" #include "platform/graphics/paint/DisplayItemList.h"
#include "platform/graphics/paint/DisplayItemTransformTree.h"
namespace blink { namespace blink {
struct CompositedDisplayList {
// TODO(pdr): Also add our SimpleLayers here.
// TODO(pdr): Add the additional property trees (e.g., clip, scroll, etc).
OwnPtr<const DisplayItemTransformTree> transformTree;
};
class CORE_EXPORT DisplayListCompositingBuilder { class CORE_EXPORT DisplayListCompositingBuilder {
public: public:
DisplayListCompositingBuilder(const DisplayItemList& displayItemList, const DisplayListDiff&) DisplayListCompositingBuilder(const DisplayItemList& displayItemList, const DisplayListDiff&)
......
...@@ -5,8 +5,9 @@ ...@@ -5,8 +5,9 @@
#include "config.h" #include "config.h"
#include "core/layout/LayoutTestHelper.h" #include "core/layout/LayoutTestHelper.h"
#include "core/layout/LayoutView.h" #include "core/page/Page.h"
#include "core/paint/DeprecatedPaintLayer.h" #include "core/paint/DeprecatedPaintLayer.h"
#include "platform/graphics/CompositedDisplayList.h"
#include "platform/graphics/GraphicsLayer.h" #include "platform/graphics/GraphicsLayer.h"
#include "platform/transforms/TransformTestHelper.h" #include "platform/transforms/TransformTestHelper.h"
#include "platform/transforms/TransformationMatrix.h" #include "platform/transforms/TransformationMatrix.h"
...@@ -18,11 +19,11 @@ namespace { ...@@ -18,11 +19,11 @@ namespace {
class DisplayListCompositingTest : public RenderingTest { class DisplayListCompositingTest : public RenderingTest {
public: public:
DisplayListCompositingTest() DisplayListCompositingTest()
: m_layoutView(nullptr) : m_page(nullptr)
, m_originalSlimmingPaintV2Enabled(RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { } , m_originalSlimmingPaintV2Enabled(RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { }
protected: protected:
LayoutView& layoutView() { return *m_layoutView; } Page& page() { return *m_page; }
private: private:
void SetUp() override void SetUp() override
...@@ -33,8 +34,8 @@ private: ...@@ -33,8 +34,8 @@ private:
RenderingTest::SetUp(); RenderingTest::SetUp();
enableCompositing(); enableCompositing();
m_layoutView = document().view()->layoutView(); m_page = document().page();
ASSERT_TRUE(m_layoutView); ASSERT_TRUE(m_page);
} }
void TearDown() override void TearDown() override
...@@ -42,14 +43,15 @@ private: ...@@ -42,14 +43,15 @@ private:
RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(m_originalSlimmingPaintV2Enabled); RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(m_originalSlimmingPaintV2Enabled);
} }
LayoutView* m_layoutView; Page* m_page;
bool m_originalSlimmingPaintV2Enabled; bool m_originalSlimmingPaintV2Enabled;
}; };
TEST_F(DisplayListCompositingTest, TransformTreeBuildingNoTransforms) TEST_F(DisplayListCompositingTest, TransformTreeBuildingNoTransforms)
{ {
setBodyInnerHTML("<style>* { margin: 0; padding: 0;}</style><div>A</div>"); setBodyInnerHTML("<style>* { margin: 0; padding: 0;}</style><div>A</div>");
const auto* compositedDisplayList = layoutView().compositedDisplayList(); auto* compositedDisplayList = page().compositedDisplayListForTesting();
ASSERT_TRUE(compositedDisplayList);
auto* tree = compositedDisplayList->transformTree.get(); auto* tree = compositedDisplayList->transformTree.get();
// There should only be a root transform node. // There should only be a root transform node.
...@@ -61,7 +63,8 @@ TEST_F(DisplayListCompositingTest, TransformTreeBuildingNoTransforms) ...@@ -61,7 +63,8 @@ TEST_F(DisplayListCompositingTest, TransformTreeBuildingNoTransforms)
TEST_F(DisplayListCompositingTest, TransformTreeBuildingMultipleTransforms) TEST_F(DisplayListCompositingTest, TransformTreeBuildingMultipleTransforms)
{ {
setBodyInnerHTML("<style>* { margin: 0; padding: 0;}</style><div style=\"transform: translate3d(2px,3px,4px);\">X</div>"); setBodyInnerHTML("<style>* { margin: 0; padding: 0;}</style><div style=\"transform: translate3d(2px,3px,4px);\">X</div>");
const auto* compositedDisplayList = layoutView().compositedDisplayList(); auto* compositedDisplayList = page().compositedDisplayListForTesting();
ASSERT_TRUE(compositedDisplayList);
auto* tree = compositedDisplayList->transformTree.get(); auto* tree = compositedDisplayList->transformTree.get();
ASSERT_EQ(2u, tree->nodeCount()); ASSERT_EQ(2u, tree->nodeCount());
...@@ -74,7 +77,8 @@ TEST_F(DisplayListCompositingTest, TransformTreeBuildingMultipleTransforms) ...@@ -74,7 +77,8 @@ TEST_F(DisplayListCompositingTest, TransformTreeBuildingMultipleTransforms)
// Add a nested 3d transform. // Add a nested 3d transform.
setBodyInnerHTML("<style>* { margin: 0; padding: 0;}</style><div style=\"transform: translate3d(2px,3px,4px);\"><div style=\"transform: translate3d(5px,6px,7px);\">X</div></div>"); setBodyInnerHTML("<style>* { margin: 0; padding: 0;}</style><div style=\"transform: translate3d(2px,3px,4px);\"><div style=\"transform: translate3d(5px,6px,7px);\">X</div></div>");
compositedDisplayList = layoutView().compositedDisplayList(); compositedDisplayList = page().compositedDisplayListForTesting();
ASSERT_TRUE(compositedDisplayList);
tree = compositedDisplayList->transformTree.get(); tree = compositedDisplayList->transformTree.get();
ASSERT_EQ(3u, tree->nodeCount()); ASSERT_EQ(3u, tree->nodeCount());
......
...@@ -2519,7 +2519,7 @@ void FrameView::compositeForSlimmingPaintV2() ...@@ -2519,7 +2519,7 @@ void FrameView::compositeForSlimmingPaintV2()
DisplayListCompositingBuilder compositingBuilder(*rootGraphicsLayer->displayItemList(), displayListDiff); DisplayListCompositingBuilder compositingBuilder(*rootGraphicsLayer->displayItemList(), displayListDiff);
OwnPtr<CompositedDisplayList> compositedDisplayList = adoptPtr(new CompositedDisplayList()); OwnPtr<CompositedDisplayList> compositedDisplayList = adoptPtr(new CompositedDisplayList());
compositingBuilder.build(*compositedDisplayList); compositingBuilder.build(*compositedDisplayList);
layoutView()->setCompositedDisplayList(compositedDisplayList.release()); page()->setCompositedDisplayList(compositedDisplayList.release());
lifecycle().advanceTo(DocumentLifecycle::CompositingForSlimmingPaintV2Clean); lifecycle().advanceTo(DocumentLifecycle::CompositingForSlimmingPaintV2Clean);
} }
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "core/loader/EmptyClients.h" #include "core/loader/EmptyClients.h"
#include "platform/graphics/GraphicsLayer.h" #include "platform/graphics/GraphicsLayer.h"
#include "platform/graphics/GraphicsLayerFactory.h" #include "platform/graphics/GraphicsLayerFactory.h"
#include "public/platform/WebCompositedDisplayList.h"
namespace blink { namespace blink {
...@@ -28,6 +29,19 @@ public: ...@@ -28,6 +29,19 @@ public:
static FakeGraphicsLayerFactory* factory = adoptPtr(new FakeGraphicsLayerFactory).leakPtr(); static FakeGraphicsLayerFactory* factory = adoptPtr(new FakeGraphicsLayerFactory).leakPtr();
return factory; return factory;
} }
void setCompositedDisplayList(PassOwnPtr<CompositedDisplayList> compositedDisplayList) override
{
m_compositedDisplayList.assign(compositedDisplayList);
}
CompositedDisplayList* compositedDisplayListForTesting() override
{
return m_compositedDisplayList.compositedDisplayListForTesting();
}
private:
WebCompositedDisplayList m_compositedDisplayList;
}; };
void RenderingTest::SetUp() void RenderingTest::SetUp()
......
...@@ -189,9 +189,6 @@ public: ...@@ -189,9 +189,6 @@ public:
// It is very likely you do not want to call this method. // It is very likely you do not want to call this method.
void setShouldDoFullPaintInvalidationForViewAndAllDescendants(); void setShouldDoFullPaintInvalidationForViewAndAllDescendants();
void setCompositedDisplayList(PassOwnPtr<const CompositedDisplayList> compositedDisplayList) { m_compositedDisplayList = compositedDisplayList; }
const CompositedDisplayList* compositedDisplayList() const { return m_compositedDisplayList.get(); }
private: private:
void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidationContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr, const PaintInvalidationState* = nullptr) const override; void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidationContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr, const PaintInvalidationState* = nullptr) const override;
...@@ -237,10 +234,6 @@ private: ...@@ -237,10 +234,6 @@ private:
OwnPtrWillBePersistent<HitTestCache> m_hitTestCache; OwnPtrWillBePersistent<HitTestCache> m_hitTestCache;
OwnPtrWillBePersistent<PendingSelection> m_pendingSelection; OwnPtrWillBePersistent<PendingSelection> m_pendingSelection;
// TODO(pdr): This is only temporarily here and will be moving
// when the API to cc is specified.
OwnPtr<const CompositedDisplayList> m_compositedDisplayList;
}; };
DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutView, isLayoutView()); DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutView, isLayoutView());
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "platform/Cursor.h" #include "platform/Cursor.h"
#include "platform/HostWindow.h" #include "platform/HostWindow.h"
#include "platform/PopupMenu.h" #include "platform/PopupMenu.h"
#include "platform/graphics/CompositedDisplayList.h"
#include "platform/heap/Handle.h" #include "platform/heap/Handle.h"
#include "platform/scroll/ScrollTypes.h" #include "platform/scroll/ScrollTypes.h"
#include "public/platform/WebFocusType.h" #include "public/platform/WebFocusType.h"
...@@ -183,6 +184,9 @@ public: ...@@ -183,6 +184,9 @@ public:
// one. Otherwise it sets it for the WebViewImpl. // one. Otherwise it sets it for the WebViewImpl.
virtual void attachRootGraphicsLayer(GraphicsLayer*, LocalFrame* localRoot) = 0; virtual void attachRootGraphicsLayer(GraphicsLayer*, LocalFrame* localRoot) = 0;
virtual void setCompositedDisplayList(PassOwnPtr<CompositedDisplayList>) { }
virtual CompositedDisplayList* compositedDisplayListForTesting() { return nullptr; }
virtual void attachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) { } virtual void attachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) { }
virtual void detachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) { } virtual void detachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) { }
......
...@@ -532,6 +532,16 @@ void Page::acceptLanguagesChanged() ...@@ -532,6 +532,16 @@ void Page::acceptLanguagesChanged()
frames[i]->localDOMWindow()->acceptLanguagesChanged(); frames[i]->localDOMWindow()->acceptLanguagesChanged();
} }
void Page::setCompositedDisplayList(PassOwnPtr<CompositedDisplayList> compositedDisplayList)
{
chromeClient().setCompositedDisplayList(compositedDisplayList);
}
CompositedDisplayList* Page::compositedDisplayListForTesting()
{
return chromeClient().compositedDisplayListForTesting();
}
DEFINE_TRACE(Page) DEFINE_TRACE(Page)
{ {
#if ENABLE(OILPAN) #if ENABLE(OILPAN)
......
...@@ -46,6 +46,7 @@ namespace blink { ...@@ -46,6 +46,7 @@ namespace blink {
class AutoscrollController; class AutoscrollController;
class ChromeClient; class ChromeClient;
class ClientRectList; class ClientRectList;
class CompositedDisplayList;
class ContextMenuClient; class ContextMenuClient;
class ContextMenuController; class ContextMenuController;
class Document; class Document;
...@@ -198,6 +199,9 @@ public: ...@@ -198,6 +199,9 @@ public:
void acceptLanguagesChanged(); void acceptLanguagesChanged();
void setCompositedDisplayList(PassOwnPtr<CompositedDisplayList>);
CompositedDisplayList* compositedDisplayListForTesting();
static void networkStateChanged(bool online); static void networkStateChanged(bool online);
DECLARE_TRACE(); DECLARE_TRACE();
......
...@@ -260,6 +260,7 @@ ...@@ -260,6 +260,7 @@
'exported/WebAudioBus.cpp', 'exported/WebAudioBus.cpp',
'exported/WebAudioDevice.cpp', 'exported/WebAudioDevice.cpp',
'exported/WebBlobData.cpp', 'exported/WebBlobData.cpp',
'exported/WebCompositedDisplayList.cpp',
'exported/WebCompositorAnimationPlayerClient.cpp', 'exported/WebCompositorAnimationPlayerClient.cpp',
'exported/WebContentDecryptionModule.cpp', 'exported/WebContentDecryptionModule.cpp',
'exported/WebContentDecryptionModuleAccess.cpp', 'exported/WebContentDecryptionModuleAccess.cpp',
...@@ -482,6 +483,7 @@ ...@@ -482,6 +483,7 @@
'graphics/Color.h', 'graphics/Color.h',
'graphics/ColorSpace.cpp', 'graphics/ColorSpace.cpp',
'graphics/ColorSpace.h', 'graphics/ColorSpace.h',
'graphics/CompositedDisplayList.h',
'graphics/CompositingReasons.cpp', 'graphics/CompositingReasons.cpp',
'graphics/CompositingReasons.h', 'graphics/CompositingReasons.h',
'graphics/ContentLayerDelegate.cpp', 'graphics/ContentLayerDelegate.cpp',
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "public/platform/WebCompositedDisplayList.h"
#include "platform/graphics/CompositedDisplayList.h"
namespace blink {
WebCompositedDisplayList::~WebCompositedDisplayList()
{
// WebPrivateOwnPtr requires explicit clearing here.
m_private.reset(nullptr);
}
void WebCompositedDisplayList::assign(PassOwnPtr<CompositedDisplayList> compositedDisplayList)
{
m_private.reset(compositedDisplayList);
}
CompositedDisplayList* WebCompositedDisplayList::compositedDisplayListForTesting()
{
return m_private.get();
}
} // namespace blink
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CompositedDisplayList_h
#define CompositedDisplayList_h
#include "platform/graphics/paint/DisplayItemList.h"
#include "platform/graphics/paint/DisplayItemTransformTree.h"
namespace blink {
// The result of running the simple layer compositing algorithm. See:
// https://docs.google.com/document/d/1qF7wpO_lhuxUO6YXKZ3CJuXi0grcb5gKZJBBgnoTd0k/view
class CompositedDisplayList {
public:
// TODO(pdr): Also add our SimpleLayers here.
// TODO(pdr): Add the additional property trees (e.g., clip, scroll, etc).
OwnPtr<const DisplayItemTransformTree> transformTree;
};
} // namespace blink
#endif // CompositedDisplayList_h
...@@ -721,6 +721,18 @@ void ChromeClientImpl::attachRootGraphicsLayer(GraphicsLayer* rootLayer, LocalFr ...@@ -721,6 +721,18 @@ void ChromeClientImpl::attachRootGraphicsLayer(GraphicsLayer* rootLayer, LocalFr
} }
} }
void ChromeClientImpl::setCompositedDisplayList(PassOwnPtr<CompositedDisplayList> compositedDisplayList)
{
m_webView->setCompositedDisplayList(compositedDisplayList);
}
CompositedDisplayList* ChromeClientImpl::compositedDisplayListForTesting()
{
if (WebCompositedDisplayList* compositedDisplayList = m_webView->compositedDisplayList())
return compositedDisplayList->compositedDisplayListForTesting();
return nullptr;
}
void ChromeClientImpl::attachCompositorAnimationTimeline(WebCompositorAnimationTimeline* compositorTimeline, LocalFrame* localRoot) void ChromeClientImpl::attachCompositorAnimationTimeline(WebCompositorAnimationTimeline* compositorTimeline, LocalFrame* localRoot)
{ {
// FIXME: For top-level frames we still use the WebView as a WebWidget. This // FIXME: For top-level frames we still use the WebView as a WebWidget. This
......
...@@ -119,6 +119,9 @@ public: ...@@ -119,6 +119,9 @@ public:
// Pass 0 as the GraphicsLayer to detatch the root layer. // Pass 0 as the GraphicsLayer to detatch the root layer.
void attachRootGraphicsLayer(GraphicsLayer*, LocalFrame* localRoot) override; void attachRootGraphicsLayer(GraphicsLayer*, LocalFrame* localRoot) override;
void setCompositedDisplayList(PassOwnPtr<CompositedDisplayList>) override;
CompositedDisplayList* compositedDisplayListForTesting() override;
void attachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) override; void attachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) override;
void detachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) override; void detachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) override;
......
...@@ -3379,6 +3379,16 @@ WebSize WebViewImpl::contentsPreferredMinimumSize() ...@@ -3379,6 +3379,16 @@ WebSize WebViewImpl::contentsPreferredMinimumSize()
return IntSize(widthScaled, heightScaled); return IntSize(widthScaled, heightScaled);
} }
void WebViewImpl::setCompositedDisplayList(PassOwnPtr<CompositedDisplayList> compositedDisplayList)
{
m_compositedDisplayList.assign(compositedDisplayList);
}
WebCompositedDisplayList* WebViewImpl::compositedDisplayList()
{
return &m_compositedDisplayList;
}
void WebViewImpl::enableViewport() void WebViewImpl::enableViewport()
{ {
settings()->setViewportEnabled(true); settings()->setViewportEnabled(true);
......
...@@ -35,8 +35,10 @@ ...@@ -35,8 +35,10 @@
#include "core/page/EventWithHitTestResults.h" #include "core/page/EventWithHitTestResults.h"
#include "platform/geometry/IntPoint.h" #include "platform/geometry/IntPoint.h"
#include "platform/geometry/IntRect.h" #include "platform/geometry/IntRect.h"
#include "platform/graphics/CompositedDisplayList.h"
#include "platform/graphics/GraphicsLayer.h" #include "platform/graphics/GraphicsLayer.h"
#include "platform/heap/Handle.h" #include "platform/heap/Handle.h"
#include "public/platform/WebCompositedDisplayList.h"
#include "public/platform/WebCompositorAnimationTimeline.h" #include "public/platform/WebCompositorAnimationTimeline.h"
#include "public/platform/WebDisplayMode.h" #include "public/platform/WebDisplayMode.h"
#include "public/platform/WebFloatSize.h" #include "public/platform/WebFloatSize.h"
...@@ -271,6 +273,9 @@ public: ...@@ -271,6 +273,9 @@ public:
void setShowScrollBottleneckRects(bool) override; void setShowScrollBottleneckRects(bool) override;
void acceptLanguagesChanged() override; void acceptLanguagesChanged() override;
void setCompositedDisplayList(PassOwnPtr<CompositedDisplayList>);
WebCompositedDisplayList* compositedDisplayList() override;
// WebViewImpl // WebViewImpl
void enableViewport(); void enableViewport();
void disableViewport(); void disableViewport();
...@@ -740,6 +745,8 @@ private: ...@@ -740,6 +745,8 @@ private:
bool m_recreatingGraphicsContext; bool m_recreatingGraphicsContext;
static const WebInputEvent* m_currentInputEvent; static const WebInputEvent* m_currentInputEvent;
WebCompositedDisplayList m_compositedDisplayList;
MediaKeysClientImpl m_mediaKeysClientImpl; MediaKeysClientImpl m_mediaKeysClientImpl;
OwnPtr<WebActiveGestureAnimation> m_gestureAnimation; OwnPtr<WebActiveGestureAnimation> m_gestureAnimation;
WebPoint m_positionOnFlingStart; WebPoint m_positionOnFlingStart;
......
...@@ -276,6 +276,7 @@ source_set("blink_headers") { ...@@ -276,6 +276,7 @@ source_set("blink_headers") {
"platform/WebRTCDataChannelHandler.h", "platform/WebRTCDataChannelHandler.h",
"platform/WebGestureCurveTarget.h", "platform/WebGestureCurveTarget.h",
"platform/WebBlendMode.h", "platform/WebBlendMode.h",
"platform/WebCompositedDisplayList.h",
"platform/WebDisplayItemClipTree.h", "platform/WebDisplayItemClipTree.h",
"platform/WebDisplayItemTransformTree.h", "platform/WebDisplayItemTransformTree.h",
"platform/WebConvertableToTraceFormat.h", "platform/WebConvertableToTraceFormat.h",
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef WebCompositedDisplayList_h
#define WebCompositedDisplayList_h
#include "public/platform/WebCommon.h"
#include "public/platform/WebPrivateOwnPtr.h"
namespace blink {
class CompositedDisplayList;
class BLINK_PLATFORM_EXPORT WebCompositedDisplayList {
public:
WebCompositedDisplayList() {}
~WebCompositedDisplayList();
#if INSIDE_BLINK
void assign(WTF::PassOwnPtr<CompositedDisplayList>);
CompositedDisplayList* compositedDisplayListForTesting();
#endif
// TODO(pdr): Add accessor functions for the data in m_private as needed.
private:
WebPrivateOwnPtr<CompositedDisplayList> m_private;
};
} // namespace blink
#endif // WebCompositedDisplayList_h
...@@ -46,6 +46,7 @@ namespace blink { ...@@ -46,6 +46,7 @@ namespace blink {
class WebAXObject; class WebAXObject;
class WebAutofillClient; class WebAutofillClient;
class WebCompositedDisplayList;
class WebCredentialManagerClient; class WebCredentialManagerClient;
class WebDragData; class WebDragData;
class WebFrame; class WebFrame;
...@@ -452,6 +453,10 @@ public: ...@@ -452,6 +453,10 @@ public:
virtual void setVisibilityState(WebPageVisibilityState visibilityState, virtual void setVisibilityState(WebPageVisibilityState visibilityState,
bool isInitialState) { } bool isInitialState) { }
// Graphics -------------------------------------------------------------
virtual WebCompositedDisplayList* compositedDisplayList() { return nullptr; }
// PageOverlay ---------------------------------------------------------- // PageOverlay ----------------------------------------------------------
// Overlay this WebView with a solid color. // Overlay this WebView with a solid color.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment