Remove the initial spv2 property tree code

The initial approach to property trees in slimming paint v2 was to
compute them after paint. Our new design [1] now computes property
tree data before paint which makes the initial implementation
obsolete. This patch removes the original property tree code and
plumbing of a composited display list.

The lifecycle phase for compositing in spv2 has not been removed yet
due to test dependencies.

[1] https://docs.google.com/document/d/12I3JD1-Jmnb59ZHKyntFTSsNUzQhPae8QpCECtZt5zs

BUG=537409
TBR=chrishtr

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

Cr-Commit-Position: refs/heads/master@{#354830}
diff --git a/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilder.cpp b/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilder.cpp
deleted file mode 100644
index 9b0b69d..0000000
--- a/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilder.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// 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 "core/compositing/DisplayListCompositingBuilder.h"
-
-#include "platform/graphics/paint/DisplayItemPropertyTreeBuilder.h"
-
-namespace blink {
-
-void DisplayListCompositingBuilder::build(CompositedDisplayList& compositedDisplayList)
-{
-    // TODO(pdr): Properly implement simple layer compositing here.
-    // See: https://docs.google.com/document/d/1qF7wpO_lhuxUO6YXKZ3CJuXi0grcb5gKZJBBgnoTd0k/view
-    DisplayItemPropertyTreeBuilder treeBuilder;
-    for (const auto& displayItem : m_paintController.displayItemList())
-        treeBuilder.processDisplayItem(displayItem);
-    compositedDisplayList.transformTree = treeBuilder.releaseTransformTree();
-    // TODO(pdr, jbroman): Also release other trees, and use range records to
-    // construct simple layers.
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilder.h b/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilder.h
deleted file mode 100644
index ef159c5..0000000
--- a/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilder.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// 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 DisplayListCompositingBuilder_h
-#define DisplayListCompositingBuilder_h
-
-#include "core/CoreExport.h"
-#include "platform/graphics/CompositedDisplayList.h"
-#include "platform/graphics/paint/PaintController.h"
-
-namespace blink {
-
-class CORE_EXPORT DisplayListCompositingBuilder {
-public:
-    DisplayListCompositingBuilder(const PaintController& paintController)
-        : m_paintController(paintController) { }
-
-    void build(CompositedDisplayList&);
-
-private:
-    const PaintController& m_paintController;
-};
-
-} // namespace blink
-
-#endif // DisplayListCompositingBuilder_h
diff --git a/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilderTest.cpp b/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilderTest.cpp
deleted file mode 100644
index bb3ae613..0000000
--- a/third_party/WebKit/Source/core/compositing/DisplayListCompositingBuilderTest.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// 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 "core/compositing/DisplayListCompositingBuilder.h"
-
-#include "platform/RuntimeEnabledFeatures.h"
-#include <gtest/gtest.h>
-
-namespace blink {
-
-class DisplayListCompositingBuilderTest : public ::testing::Test {
-public:
-    DisplayListCompositingBuilderTest()
-        : m_originalSlimmingPaintV2Enabled(RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { }
-
-private:
-    void SetUp() override
-    {
-        RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(true);
-    }
-
-    void TearDown() override
-    {
-        RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(m_originalSlimmingPaintV2Enabled);
-    }
-
-    bool m_originalSlimmingPaintV2Enabled;
-};
-
-TEST_F(DisplayListCompositingBuilderTest, BasicTransformPropertyTree)
-{
-    OwnPtr<PaintController> paintController = PaintController::create();
-    paintController->commitNewDisplayItems();
-
-    DisplayListCompositingBuilder compositingBuilder(*paintController);
-    CompositedDisplayList compositedDisplayList;
-    compositingBuilder.build(compositedDisplayList);
-
-    const auto& tree = *compositedDisplayList.transformTree;
-    ASSERT_EQ(1u, tree.nodeCount());
-    EXPECT_TRUE(tree.nodeAt(0).isRoot());
-    EXPECT_TRUE(tree.nodeAt(0).matrix.isIdentity());
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/core/compositing/DisplayListCompositingTest.cpp b/third_party/WebKit/Source/core/compositing/DisplayListCompositingTest.cpp
deleted file mode 100644
index 818d5887..0000000
--- a/third_party/WebKit/Source/core/compositing/DisplayListCompositingTest.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// 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 "core/layout/LayoutTestHelper.h"
-#include "core/page/Page.h"
-#include "core/paint/PaintLayer.h"
-#include "platform/graphics/CompositedDisplayList.h"
-#include "platform/graphics/GraphicsLayer.h"
-#include "platform/transforms/TransformTestHelper.h"
-#include "platform/transforms/TransformationMatrix.h"
-#include <gtest/gtest.h>
-
-namespace blink {
-namespace {
-
-class DisplayListCompositingTest : public RenderingTest {
-public:
-    DisplayListCompositingTest()
-        : m_page(nullptr)
-        , m_originalSlimmingPaintV2Enabled(RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { }
-
-protected:
-    Page& page() { return *m_page; }
-
-private:
-    void SetUp() override
-    {
-        RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(true);
-
-        RenderingTest::SetUp();
-        enableCompositing();
-
-        m_page = document().page();
-        ASSERT_TRUE(m_page);
-    }
-
-    void TearDown() override
-    {
-        RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(m_originalSlimmingPaintV2Enabled);
-    }
-
-    Page* m_page;
-    bool m_originalSlimmingPaintV2Enabled;
-};
-
-TEST_F(DisplayListCompositingTest, TransformTreeBuildingNoTransforms)
-{
-    setBodyInnerHTML("<style>* { margin: 0; padding: 0;}</style><div>A</div>");
-    auto* compositedDisplayList = page().compositedDisplayListForTesting();
-    ASSERT_TRUE(compositedDisplayList);
-    auto* tree = compositedDisplayList->transformTree.get();
-
-    // There should only be a root transform node.
-    ASSERT_EQ(1u, tree->nodeCount());
-    EXPECT_TRUE(tree->nodeAt(0).isRoot());
-    EXPECT_TRUE(tree->nodeAt(0).matrix.isIdentity());
-}
-
-TEST_F(DisplayListCompositingTest, TransformTreeBuildingMultipleTransforms)
-{
-    setBodyInnerHTML("<style>* { margin: 0; padding: 0;}</style><div style=\"transform: translate3d(2px,3px,4px);\">X</div>");
-    auto* compositedDisplayList = page().compositedDisplayListForTesting();
-    ASSERT_TRUE(compositedDisplayList);
-    auto* tree = compositedDisplayList->transformTree.get();
-
-    ASSERT_EQ(2u, tree->nodeCount());
-    EXPECT_TRUE(tree->nodeAt(0).isRoot());
-    EXPECT_FALSE(tree->nodeAt(1).isRoot());
-
-    TransformationMatrix matrix;
-    matrix.translate3d(2, 3, 4);
-    EXPECT_TRANSFORMS_ALMOST_EQ(matrix, tree->nodeAt(1).matrix);
-
-    // 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>");
-    compositedDisplayList = page().compositedDisplayListForTesting();
-    ASSERT_TRUE(compositedDisplayList);
-    tree = compositedDisplayList->transformTree.get();
-
-    ASSERT_EQ(3u, tree->nodeCount());
-    EXPECT_TRUE(tree->nodeAt(0).isRoot());
-    EXPECT_FALSE(tree->nodeAt(1).isRoot());
-    EXPECT_FALSE(tree->nodeAt(2).isRoot());
-
-    matrix.makeIdentity();
-    matrix.translate3d(2, 3, 4);
-    EXPECT_TRANSFORMS_ALMOST_EQ(matrix, tree->nodeAt(1).matrix);
-
-    matrix.makeIdentity();
-    matrix.translate3d(5, 6, 7);
-    EXPECT_TRANSFORMS_ALMOST_EQ(matrix, tree->nodeAt(2).matrix);
-}
-
-}
-} // namespace blink
diff --git a/third_party/WebKit/Source/core/core.gypi b/third_party/WebKit/Source/core/core.gypi
index 6ddfa80..99b0299b 100644
--- a/third_party/WebKit/Source/core/core.gypi
+++ b/third_party/WebKit/Source/core/core.gypi
@@ -1003,8 +1003,6 @@
             'animation/css/CSSTimingData.h',
             'animation/css/CSSTransitionData.cpp',
             'animation/css/CSSTransitionData.h',
-            'compositing/DisplayListCompositingBuilder.cpp',
-            'compositing/DisplayListCompositingBuilder.h',
             'clipboard/DataObject.cpp',
             'clipboard/DataObject.h',
             'clipboard/DataObjectItem.cpp',
@@ -3775,8 +3773,6 @@
             'animation/animatable/AnimatableValueTestHelper.h',
             'animation/animatable/AnimatableValueTestHelperTest.cpp',
             'clipboard/DataObjectTest.cpp',
-            'compositing/DisplayListCompositingBuilderTest.cpp',
-            'compositing/DisplayListCompositingTest.cpp',
             'css/AffectedByFocusTest.cpp',
             'css/CSSCalculationValueTest.cpp',
             'css/CSSFontFaceTest.cpp',
diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp
index 2a2aca8..e4351ba 100644
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
@@ -29,7 +29,6 @@
 
 #include "core/HTMLNames.h"
 #include "core/MediaTypeNames.h"
-#include "core/compositing/DisplayListCompositingBuilder.h"
 #include "core/css/FontFaceSet.h"
 #include "core/css/resolver/StyleResolver.h"
 #include "core/dom/AXObjectCache.h"
@@ -2526,15 +2525,9 @@
     forAllFrameViews([](FrameView& frameView) { frameView.lifecycle().advanceTo(DocumentLifecycle::InCompositingForSlimmingPaintV2); });
 
     // Detached frames can have no root graphics layer.
-    if (GraphicsLayer* rootGraphicsLayer = layoutView()->layer()->graphicsLayerBacking()) {
+    if (GraphicsLayer* rootGraphicsLayer = layoutView()->layer()->graphicsLayerBacking())
         rootGraphicsLayer->paintController()->commitNewDisplayItems(rootGraphicsLayer);
 
-        DisplayListCompositingBuilder compositingBuilder(*rootGraphicsLayer->paintController());
-        OwnPtr<CompositedDisplayList> compositedDisplayList = adoptPtr(new CompositedDisplayList());
-        compositingBuilder.build(*compositedDisplayList);
-        page()->setCompositedDisplayList(compositedDisplayList.release());
-    }
-
     forAllFrameViews([](FrameView& frameView) { frameView.lifecycle().advanceTo(DocumentLifecycle::CompositingForSlimmingPaintV2Clean); });
 }
 
diff --git a/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp b/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp
index ebe8d8d..702089fc 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp
@@ -8,7 +8,6 @@
 #include "core/loader/EmptyClients.h"
 #include "platform/graphics/GraphicsLayer.h"
 #include "platform/graphics/GraphicsLayerFactory.h"
-#include "public/platform/WebCompositedDisplayList.h"
 
 namespace blink {
 
@@ -29,19 +28,6 @@
         static FakeGraphicsLayerFactory* factory = adoptPtr(new FakeGraphicsLayerFactory).leakPtr();
         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()
diff --git a/third_party/WebKit/Source/core/layout/LayoutView.h b/third_party/WebKit/Source/core/layout/LayoutView.h
index 8c0e6c5..e43417f 100644
--- a/third_party/WebKit/Source/core/layout/LayoutView.h
+++ b/third_party/WebKit/Source/core/layout/LayoutView.h
@@ -23,7 +23,6 @@
 #define LayoutView_h
 
 #include "core/CoreExport.h"
-#include "core/compositing/DisplayListCompositingBuilder.h"
 #include "core/layout/HitTestCache.h"
 #include "core/layout/HitTestResult.h"
 #include "core/layout/LayoutBlockFlow.h"
diff --git a/third_party/WebKit/Source/core/page/ChromeClient.h b/third_party/WebKit/Source/core/page/ChromeClient.h
index b474502..9dcffe3 100644
--- a/third_party/WebKit/Source/core/page/ChromeClient.h
+++ b/third_party/WebKit/Source/core/page/ChromeClient.h
@@ -32,7 +32,6 @@
 #include "platform/Cursor.h"
 #include "platform/HostWindow.h"
 #include "platform/PopupMenu.h"
-#include "platform/graphics/CompositedDisplayList.h"
 #include "platform/heap/Handle.h"
 #include "platform/scroll/ScrollTypes.h"
 #include "public/platform/WebFocusType.h"
@@ -185,9 +184,6 @@
     // one. Otherwise it sets it for the WebViewImpl.
     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 detachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) { }
 
diff --git a/third_party/WebKit/Source/core/page/Page.cpp b/third_party/WebKit/Source/core/page/Page.cpp
index eac289d..201ae01 100644
--- a/third_party/WebKit/Source/core/page/Page.cpp
+++ b/third_party/WebKit/Source/core/page/Page.cpp
@@ -540,16 +540,6 @@
         frames[i]->localDOMWindow()->acceptLanguagesChanged();
 }
 
-void Page::setCompositedDisplayList(PassOwnPtr<CompositedDisplayList> compositedDisplayList)
-{
-    chromeClient().setCompositedDisplayList(compositedDisplayList);
-}
-
-CompositedDisplayList* Page::compositedDisplayListForTesting()
-{
-    return chromeClient().compositedDisplayListForTesting();
-}
-
 DEFINE_TRACE(Page)
 {
 #if ENABLE(OILPAN)
diff --git a/third_party/WebKit/Source/core/page/Page.h b/third_party/WebKit/Source/core/page/Page.h
index ec5f8def..5ef7ff1 100644
--- a/third_party/WebKit/Source/core/page/Page.h
+++ b/third_party/WebKit/Source/core/page/Page.h
@@ -46,7 +46,6 @@
 class AutoscrollController;
 class ChromeClient;
 class ClientRectList;
-class CompositedDisplayList;
 class ContextMenuClient;
 class ContextMenuController;
 class Document;
@@ -200,9 +199,6 @@
 
     void acceptLanguagesChanged();
 
-    void setCompositedDisplayList(PassOwnPtr<CompositedDisplayList>);
-    CompositedDisplayList* compositedDisplayListForTesting();
-
     static void networkStateChanged(bool online);
 
     MemoryPurgeController& memoryPurgeController();
diff --git a/third_party/WebKit/Source/platform/blink_platform.gypi b/third_party/WebKit/Source/platform/blink_platform.gypi
index b2776af..774d6a5 100644
--- a/third_party/WebKit/Source/platform/blink_platform.gypi
+++ b/third_party/WebKit/Source/platform/blink_platform.gypi
@@ -263,7 +263,6 @@
       'exported/WebAudioBus.cpp',
       'exported/WebAudioDevice.cpp',
       'exported/WebBlobData.cpp',
-      'exported/WebCompositedDisplayList.cpp',
       'exported/WebCompositorAnimationPlayerClient.cpp',
       'exported/WebContentDecryptionModule.cpp',
       'exported/WebContentDecryptionModuleAccess.cpp',
@@ -281,8 +280,6 @@
       'exported/WebDataConsumerHandle.cpp',
       'exported/WebDeviceMotionData.cpp',
       'exported/WebDeviceOrientationData.cpp',
-      'exported/WebDisplayItemClipTree.cpp',
-      'exported/WebDisplayItemTransformTree.cpp',
       'exported/WebDragData.cpp',
       'exported/WebEncryptedMediaClient.cpp',
       'exported/WebEncryptedMediaKeyInformation.cpp',
@@ -499,7 +496,6 @@
       'graphics/Color.h',
       'graphics/ColorSpace.cpp',
       'graphics/ColorSpace.h',
-      'graphics/CompositedDisplayList.h',
       'graphics/CompositingReasons.cpp',
       'graphics/CompositingReasons.h',
       'graphics/ContentLayerDelegate.cpp',
@@ -671,13 +667,7 @@
       'graphics/paint/DisplayItem.h',
       'graphics/paint/DisplayItemCacheSkipper.h',
       'graphics/paint/DisplayItemClient.h',
-      'graphics/paint/DisplayItemClipTree.cpp',
-      'graphics/paint/DisplayItemClipTree.h',
       'graphics/paint/DisplayItemList.h',
-      'graphics/paint/DisplayItemPropertyTreeBuilder.cpp',
-      'graphics/paint/DisplayItemPropertyTreeBuilder.h',
-      'graphics/paint/DisplayItemTransformTree.cpp',
-      'graphics/paint/DisplayItemTransformTree.h',
       'graphics/paint/DrawingDisplayItem.cpp',
       'graphics/paint/DrawingDisplayItem.h',
       'graphics/paint/DrawingRecorder.cpp',
@@ -1009,7 +999,6 @@
       'graphics/filters/FilterOperationsTest.cpp',
       'graphics/filters/ImageFilterBuilderTest.cpp',
       'graphics/gpu/DrawingBufferTest.cpp',
-      'graphics/paint/DisplayItemPropertyTreeBuilderTest.cpp',
       'graphics/paint/DisplayItemTest.cpp',
       'graphics/paint/PaintChunkerTest.cpp',
       'graphics/paint/PaintControllerTest.cpp',
diff --git a/third_party/WebKit/Source/platform/exported/WebCompositedDisplayList.cpp b/third_party/WebKit/Source/platform/exported/WebCompositedDisplayList.cpp
deleted file mode 100644
index 9eeb2f5..0000000
--- a/third_party/WebKit/Source/platform/exported/WebCompositedDisplayList.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// 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
diff --git a/third_party/WebKit/Source/platform/exported/WebDisplayItemClipTree.cpp b/third_party/WebKit/Source/platform/exported/WebDisplayItemClipTree.cpp
deleted file mode 100644
index 8625e18..0000000
--- a/third_party/WebKit/Source/platform/exported/WebDisplayItemClipTree.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// 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/WebDisplayItemClipTree.h"
-
-#include "platform/graphics/paint/DisplayItemClipTree.h"
-
-namespace blink {
-
-WebDisplayItemClipTree::WebDisplayItemClipTree()
-{
-}
-
-WebDisplayItemClipTree::WebDisplayItemClipTree(const PassOwnPtr<DisplayItemClipTree>& passImpl)
-    : m_private(passImpl)
-{
-}
-
-WebDisplayItemClipTree::~WebDisplayItemClipTree()
-{
-    // WebPrivateOwnPtr requires explicit clearing here.
-    m_private.reset(nullptr);
-}
-
-size_t WebDisplayItemClipTree::nodeCount() const
-{
-    return m_private->nodeCount();
-}
-
-const WebDisplayItemClipTree::ClipNode& WebDisplayItemClipTree::nodeAt(size_t index) const
-{
-    return m_private->nodeAt(index);
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/platform/exported/WebDisplayItemTransformTree.cpp b/third_party/WebKit/Source/platform/exported/WebDisplayItemTransformTree.cpp
deleted file mode 100644
index 9b823db..0000000
--- a/third_party/WebKit/Source/platform/exported/WebDisplayItemTransformTree.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// 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/WebDisplayItemTransformTree.h"
-
-#include "platform/graphics/paint/DisplayItemTransformTree.h"
-
-namespace blink {
-
-WebDisplayItemTransformTree::WebDisplayItemTransformTree()
-{
-}
-
-WebDisplayItemTransformTree::WebDisplayItemTransformTree(const PassOwnPtr<DisplayItemTransformTree>& passImpl)
-    : m_private(passImpl)
-{
-}
-
-WebDisplayItemTransformTree::~WebDisplayItemTransformTree()
-{
-    // WebPrivateOwnPtr requires explicit clearing here.
-    m_private.reset(nullptr);
-}
-
-size_t WebDisplayItemTransformTree::nodeCount() const
-{
-    return m_private->nodeCount();
-}
-
-const WebDisplayItemTransformTree::TransformNode& WebDisplayItemTransformTree::nodeAt(size_t index) const
-{
-    return m_private->nodeAt(index);
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/CompositedDisplayList.h b/third_party/WebKit/Source/platform/graphics/CompositedDisplayList.h
deleted file mode 100644
index d2f945d..0000000
--- a/third_party/WebKit/Source/platform/graphics/CompositedDisplayList.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// 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/DisplayItemTransformTree.h"
-#include "platform/graphics/paint/PaintController.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
diff --git a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemClipTree.cpp b/third_party/WebKit/Source/platform/graphics/paint/DisplayItemClipTree.cpp
deleted file mode 100644
index 6e7ddb8..0000000
--- a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemClipTree.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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 "platform/graphics/paint/DisplayItemClipTree.h"
-
-#include <limits>
-
-namespace blink {
-
-DisplayItemClipTree::DisplayItemClipTree()
-{
-    // There is always a root node.
-    // And it's always in the root transform space.
-    float infinity = std::numeric_limits<float>::infinity();
-    WebFloatRect infiniteRect(-infinity, -infinity, infinity, infinity);
-    m_nodes.append(ClipNode(kInvalidIndex, 0 /* root transform node */, infiniteRect));
-    ASSERT(m_nodes[0].isRoot());
-}
-
-DisplayItemClipTree::~DisplayItemClipTree()
-{
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemClipTree.h b/third_party/WebKit/Source/platform/graphics/paint/DisplayItemClipTree.h
deleted file mode 100644
index 8637847..0000000
--- a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemClipTree.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// 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 DisplayItemClipTree_h
-#define DisplayItemClipTree_h
-
-#include "platform/PlatformExport.h"
-#include "platform/geometry/FloatRect.h"
-#include "public/platform/WebDisplayItemClipTree.h"
-#include "wtf/Vector.h"
-
-namespace blink {
-
-// Represents a hierarchy of rectangular clips which apply to ranges of a
-// display list and may be of interest to the compositor.
-//
-// This class is also the private implementation of WebDisplayItemClipTree.
-// For more detail, see WebDisplayItemClipTree.h.
-class PLATFORM_EXPORT DisplayItemClipTree {
-public:
-    using ClipNode = WebDisplayItemClipTree::ClipNode;
-    enum : size_t { kInvalidIndex = WebDisplayItemClipTree::kInvalidIndex };
-
-    DisplayItemClipTree();
-    ~DisplayItemClipTree();
-
-    size_t nodeCount() const { return m_nodes.size(); }
-    ClipNode& nodeAt(size_t index) { return m_nodes[index]; }
-    const ClipNode& nodeAt(size_t index) const { return m_nodes[index]; }
-
-    // Returns the new node index.
-    size_t createNewNode(size_t parentNodeIndex, size_t transformNodeIndex, const FloatRect& clipRect)
-    {
-        ASSERT(parentNodeIndex != kInvalidIndex);
-        ASSERT(transformNodeIndex != kInvalidIndex);
-        m_nodes.append(ClipNode(parentNodeIndex, transformNodeIndex, clipRect));
-        return m_nodes.size() - 1;
-    }
-
-private:
-    Vector<ClipNode> m_nodes;
-};
-
-} // namespace blink
-
-#endif // DisplayItemClipTree_h
diff --git a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilder.cpp b/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilder.cpp
deleted file mode 100644
index b758a35..0000000
--- a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilder.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-// 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 "platform/graphics/paint/DisplayItemPropertyTreeBuilder.h"
-
-#include "platform/graphics/paint/DisplayItem.h"
-#include "platform/graphics/paint/DisplayItemClipTree.h"
-#include "platform/graphics/paint/DisplayItemTransformTree.h"
-#include "platform/graphics/paint/ScrollDisplayItem.h"
-#include "platform/graphics/paint/Transform3DDisplayItem.h"
-#include "platform/graphics/paint/TransformDisplayItem.h"
-
-namespace blink {
-
-DisplayItemPropertyTreeBuilder::DisplayItemPropertyTreeBuilder()
-    : m_transformTree(adoptPtr(new DisplayItemTransformTree))
-    , m_clipTree(adoptPtr(new DisplayItemClipTree))
-    , m_rangeBeginIndex(0)
-    , m_currentIndex(0)
-{
-    m_stateStack.append(BuilderState());
-}
-
-DisplayItemPropertyTreeBuilder::~DisplayItemPropertyTreeBuilder()
-{
-}
-
-PassOwnPtr<DisplayItemTransformTree> DisplayItemPropertyTreeBuilder::releaseTransformTree()
-{
-    ASSERT(m_stateStack.size() == 1);
-    ASSERT(currentState().ignoredBeginCount == 0);
-    finishRange();
-    return m_transformTree.release();
-}
-
-PassOwnPtr<DisplayItemClipTree> DisplayItemPropertyTreeBuilder::releaseClipTree()
-{
-    ASSERT(m_stateStack.size() == 1);
-    ASSERT(currentState().ignoredBeginCount == 0);
-    finishRange();
-    return m_clipTree.release();
-}
-
-Vector<DisplayItemPropertyTreeBuilder::RangeRecord> DisplayItemPropertyTreeBuilder::releaseRangeRecords()
-{
-    Vector<RangeRecord> output;
-    output.swap(m_rangeRecords);
-    return output;
-}
-
-void DisplayItemPropertyTreeBuilder::processDisplayItem(const DisplayItem& displayItem)
-{
-    if (displayItem.isBegin())
-        processBeginItem(displayItem);
-    else if (displayItem.isEnd())
-        processEndItem(displayItem);
-    m_currentIndex++;
-}
-
-namespace {
-
-enum TransformKind { NotATransform = 0, Only2DTranslation, RequiresTransformNode };
-enum ClipKind { NotAClip = 0, RequiresClipNode };
-
-struct BeginDisplayItemClassification {
-    // |transformOrigin| is irrelevant unless a non-translation matrix is
-    // provided.
-    TransformKind transformKind = NotATransform;
-    TransformationMatrix matrix;
-    FloatPoint3D transformOrigin;
-
-    ClipKind clipKind = NotAClip;
-    FloatRect clipRect;
-};
-
-// Classifies a begin display item based on how it affects the property trees.
-static BeginDisplayItemClassification classifyBeginItem(const DisplayItem& beginDisplayItem)
-{
-    ASSERT(beginDisplayItem.isBegin());
-
-    BeginDisplayItemClassification result;
-    DisplayItem::Type type = beginDisplayItem.type();
-    if (DisplayItem::isTransform3DType(type)) {
-        const auto& begin3D = static_cast<const BeginTransform3DDisplayItem&>(beginDisplayItem);
-        result.matrix = begin3D.transform();
-        result.transformOrigin = begin3D.transformOrigin();
-        result.transformKind = result.matrix.isIdentityOr2DTranslation() ? Only2DTranslation : RequiresTransformNode;
-    } else if (type == DisplayItem::BeginTransform) {
-        const auto& begin2D = static_cast<const BeginTransformDisplayItem&>(beginDisplayItem);
-        result.matrix = begin2D.transform();
-        result.transformKind = begin2D.transform().isIdentityOrTranslation() ? Only2DTranslation : RequiresTransformNode;
-    } else if (DisplayItem::isScrollType(type)) {
-        const auto& beginScroll = static_cast<const BeginScrollDisplayItem&>(beginDisplayItem);
-        const IntSize& offset = beginScroll.currentOffset();
-        result.matrix.translate(-offset.width(), -offset.height());
-        result.transformKind = Only2DTranslation;
-    }
-    return result;
-}
-
-} // namespace
-
-void DisplayItemPropertyTreeBuilder::processBeginItem(const DisplayItem& displayItem)
-{
-    BeginDisplayItemClassification classification = classifyBeginItem(displayItem);
-
-    if (!classification.transformKind && !classification.clipKind) {
-        currentState().ignoredBeginCount++;
-        return;
-    }
-
-    finishRange();
-    BuilderState newState(currentState());
-    newState.ignoredBeginCount = 0;
-
-    switch (classification.transformKind) {
-    case NotATransform:
-        break;
-    case Only2DTranslation:
-        // Adjust the offset associated with the current transform node.
-        newState.offset += classification.matrix.to2DTranslation();
-        break;
-    case RequiresTransformNode:
-        // Emit a transform node.
-        newState.transformNode = m_transformTree->createNewNode(
-            newState.transformNode, classification.matrix, classification.transformOrigin);
-        newState.offset = FloatSize();
-        break;
-    }
-
-    switch (classification.clipKind) {
-    case NotAClip:
-        break;
-    case RequiresClipNode:
-        // Emit a clip node.
-        FloatRect adjustedClipRect = classification.clipRect;
-        adjustedClipRect.move(newState.offset);
-        newState.clipNode = m_clipTree->createNewNode(
-            newState.clipNode, newState.transformNode, adjustedClipRect);
-        break;
-    }
-
-    m_stateStack.append(newState);
-}
-
-void DisplayItemPropertyTreeBuilder::processEndItem(const DisplayItem& displayItem)
-{
-    if (currentState().ignoredBeginCount) {
-        // Ignored this end display item.
-        currentState().ignoredBeginCount--;
-    } else {
-        // We've closed the scope of some property.
-        finishRange();
-        m_stateStack.removeLast();
-        ASSERT(!m_stateStack.isEmpty());
-    }
-}
-
-void DisplayItemPropertyTreeBuilder::finishRange()
-{
-    // Don't emit an empty range record.
-    if (m_rangeBeginIndex < m_currentIndex) {
-        const auto& current = currentState();
-        RangeRecord rangeRecord;
-        rangeRecord.displayListBeginIndex = m_rangeBeginIndex;
-        rangeRecord.displayListEndIndex = m_currentIndex;
-        rangeRecord.transformNodeIndex = current.transformNode;
-        rangeRecord.offset = current.offset;
-        rangeRecord.clipNodeIndex = current.clipNode;
-        m_rangeRecords.append(rangeRecord);
-    }
-
-    // The current display item is a boundary.
-    // The earliest the next range could begin is the next one.
-    m_rangeBeginIndex = m_currentIndex + 1;
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilder.h b/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilder.h
deleted file mode 100644
index 9026e07f..0000000
--- a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilder.h
+++ /dev/null
@@ -1,112 +0,0 @@
-// 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 DisplayItemPropertyTreeBuilder_h
-#define DisplayItemPropertyTreeBuilder_h
-
-#include "platform/PlatformExport.h"
-#include "platform/geometry/FloatSize.h"
-#include "wtf/OwnPtr.h"
-#include "wtf/PassOwnPtr.h"
-#include "wtf/Vector.h"
-
-namespace blink {
-
-class DisplayItem;
-class DisplayItemClipTree;
-class DisplayItemTransformTree;
-
-// Builds property trees from a sequence of (properly nested) display items.
-//
-// The produced trees are not independent (for example, the resultant clip tree
-// may have indicies into the transform tree's node list). Also produced is a
-// vector of "range records", which correspond to non-overlapping ranges of
-// display items in the list, in sorted order.
-//
-// Since the begin/end display items that create transform nodes are not
-// included in these ranges, and empty ranges are omitted, these are not a
-// partition of the display list. Rather, they constitute a partial map from
-// display item indices to property tree data (node indices, plus a content
-// offset from the origin of the transform node).
-//
-// Similarly, there may be property tree nodes with no associated range records.
-// This doesn't necessarily mean that they can be ignored. It may be the parent
-// of one or more other property nodes.
-//
-// See also the headers for the particular types of property tree.
-class PLATFORM_EXPORT DisplayItemPropertyTreeBuilder {
-public:
-    struct RangeRecord {
-        // Index of the first affected display item.
-        size_t displayListBeginIndex;
-
-        // Index of the first unaffected display item after |displayListBeginIndex|.
-        size_t displayListEndIndex;
-
-        // Index of the applicable transform node.
-        size_t transformNodeIndex;
-
-        // The offset of this range's drawing in the coordinate space of the
-        // transform node.
-        FloatSize offset;
-
-        // Index of the applicable clip node.
-        size_t clipNodeIndex;
-    };
-
-    DisplayItemPropertyTreeBuilder();
-    ~DisplayItemPropertyTreeBuilder();
-
-    // Detach the built property trees.
-    PassOwnPtr<DisplayItemTransformTree> releaseTransformTree();
-    PassOwnPtr<DisplayItemClipTree> releaseClipTree();
-    Vector<RangeRecord> releaseRangeRecords();
-
-    // Process another display item from the list.
-    void processDisplayItem(const DisplayItem&);
-
-private:
-    struct BuilderState {
-        // Initial state (root nodes, no display items seen).
-        BuilderState() : transformNode(0), clipNode(0), ignoredBeginCount(0) { }
-
-        // Index of the current transform node.
-        size_t transformNode;
-
-        // Offset from the current origin (i.e. where a drawing at (0, 0) would
-        // be) from the transform node's origin.
-        FloatSize offset;
-
-        // Index of the current clip node.
-        size_t clipNode;
-
-        // Number of "begin" display items that have been ignored, whose
-        // corresponding "end" display items should be skipped.
-        unsigned ignoredBeginCount;
-    };
-
-    // Used to manipulate the current transform node stack.
-    BuilderState& currentState() { return m_stateStack.last(); }
-
-    // Handle a begin display item.
-    void processBeginItem(const DisplayItem&);
-
-    // Handle an end display item.
-    void processEndItem(const DisplayItem&);
-
-    // Emit a range record, unless it would be empty.
-    void finishRange();
-
-    OwnPtr<DisplayItemTransformTree> m_transformTree;
-    OwnPtr<DisplayItemClipTree> m_clipTree;
-    Vector<RangeRecord> m_rangeRecords;
-    // TODO(jbroman): Experimentally select a less arbitrary inline capacity.
-    Vector<BuilderState, 40> m_stateStack;
-    size_t m_rangeBeginIndex;
-    size_t m_currentIndex;
-};
-
-} // namespace blink
-
-#endif // DisplayItemPropertyTreeBuilder_h
diff --git a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilderTest.cpp b/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilderTest.cpp
deleted file mode 100644
index a1f76c70..0000000
--- a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemPropertyTreeBuilderTest.cpp
+++ /dev/null
@@ -1,442 +0,0 @@
-// 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 "platform/graphics/paint/DisplayItemPropertyTreeBuilder.h"
-
-#include "platform/graphics/paint/DisplayItem.h"
-#include "platform/graphics/paint/DisplayItemClient.h"
-#include "platform/graphics/paint/DisplayItemClipTree.h"
-#include "platform/graphics/paint/DisplayItemTransformTree.h"
-#include "platform/graphics/paint/ScrollDisplayItem.h"
-#include "platform/graphics/paint/Transform3DDisplayItem.h"
-#include "platform/graphics/paint/TransformDisplayItem.h"
-#include "platform/transforms/TransformTestHelper.h"
-#include "platform/transforms/TransformationMatrix.h"
-#include "public/platform/WebDisplayItemTransformTree.h"
-#include "wtf/OwnPtr.h"
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-namespace blink {
-namespace {
-
-using ::testing::AllOf;
-using ::testing::ElementsAre;
-
-using RangeRecord = DisplayItemPropertyTreeBuilder::RangeRecord;
-
-MATCHER_P2(hasRange, begin, end, "")
-{
-    return arg.displayListBeginIndex == static_cast<size_t>(begin)
-        && arg.displayListEndIndex == static_cast<size_t>(end);
-}
-
-MATCHER_P(hasTransformNode, transformNode, "")
-{
-    return arg.transformNodeIndex == static_cast<size_t>(transformNode);
-}
-
-MATCHER_P(hasOffset, offset, "")
-{
-    return arg.offset == offset;
-}
-
-struct DummyClient {
-    DisplayItemClient displayItemClient() const { return toDisplayItemClient(this); }
-    String debugName() const { return "DummyClient"; }
-};
-
-class DummyDisplayItem final : public DisplayItem {
-public:
-    DummyDisplayItem(const DummyClient& client) : DisplayItem(client, DisplayItem::DrawingFirst, sizeof(*this)) { }
-};
-
-class DisplayItemPropertyTreeBuilderTest : public ::testing::Test {
-protected:
-    DisplayItemPropertyTreeBuilder& builder() { return m_builder; }
-    const DisplayItemTransformTree& transformTree() { return *m_transformTree; }
-    const DisplayItemClipTree& clipTree() { return *m_clipTree; }
-    const Vector<RangeRecord>& rangeRecords() { return m_rangeRecords; }
-    std::vector<RangeRecord> rangeRecordsAsStdVector() { return std::vector<RangeRecord>(m_rangeRecords.begin(), m_rangeRecords.end()); }
-
-    void processDisplayItem(const DisplayItem& displayItem) { m_builder.processDisplayItem(displayItem); }
-    void processDisplayItem(PassOwnPtr<DisplayItem> displayItem) { processDisplayItem(*displayItem); }
-    void processDummyDisplayItem() { processDisplayItem(DummyDisplayItem(newDummyClient())); }
-    const DummyClient& processBeginTransform3D(const TransformationMatrix& transform, const FloatPoint3D& transformOrigin = FloatPoint3D())
-    {
-        const DummyClient& client = newDummyClient();
-        processDisplayItem(BeginTransform3DDisplayItem(client, DisplayItem::Transform3DElementTransform, transform, transformOrigin));
-        return client;
-    }
-    void processEndTransform3D(const DummyClient& client)
-    {
-        processDisplayItem(EndTransform3DDisplayItem(client, DisplayItem::transform3DTypeToEndTransform3DType(DisplayItem::Transform3DElementTransform)));
-    }
-    const DummyClient& processBeginTransform(const AffineTransform& transform)
-    {
-        const DummyClient& client = newDummyClient();
-        processDisplayItem(BeginTransformDisplayItem(client, transform));
-        return client;
-    }
-    void processEndTransform(const DummyClient& client)
-    {
-        processDisplayItem(EndTransformDisplayItem(client));
-    }
-    const DummyClient& processBeginScroll(int offsetX, int offsetY)
-    {
-        const DummyClient& client = newDummyClient();
-        processDisplayItem(BeginScrollDisplayItem(client, DisplayItem::ScrollFirst, IntSize(offsetX, offsetY)));
-        return client;
-    }
-    void processEndScroll(const DummyClient& client)
-    {
-        processDisplayItem(EndScrollDisplayItem(client, DisplayItem::EndScrollFirst));
-    }
-
-    void finishPropertyTrees()
-    {
-        m_transformTree = m_builder.releaseTransformTree();
-        m_clipTree = m_builder.releaseClipTree();
-        m_rangeRecords = m_builder.releaseRangeRecords();
-    }
-
-private:
-    // This makes empty objects which can be used as display item clients.
-    const DummyClient& newDummyClient()
-    {
-        m_dummyClients.append(adoptPtr(new DummyClient));
-        return *m_dummyClients.last();
-    }
-
-    DisplayItemPropertyTreeBuilder m_builder;
-    OwnPtr<DisplayItemTransformTree> m_transformTree;
-    OwnPtr<DisplayItemClipTree> m_clipTree;
-    Vector<RangeRecord> m_rangeRecords;
-    Vector<OwnPtr<DummyClient>> m_dummyClients;
-};
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, NoDisplayItems)
-{
-    finishPropertyTrees();
-
-    // There should be a root transform node.
-    ASSERT_EQ(1u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-
-    // There should be no range records, because there are no non-empty
-    // transformed ranges.
-    ASSERT_EQ(0u, rangeRecords().size());
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, NoTransforms)
-{
-    // Three dummy display items.
-    processDummyDisplayItem();
-    processDummyDisplayItem();
-    processDummyDisplayItem();
-    finishPropertyTrees();
-
-    // There should only be a root transform node.
-    ASSERT_EQ(1u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-
-    // There should be one range record, for the entire list.
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(0, 3), hasTransformNode(0))));
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, IdentityTransform)
-{
-    TransformationMatrix identity;
-
-    // There's an identity transform here, but we should not make a node for it.
-    processDummyDisplayItem();
-    auto transformClient = processBeginTransform3D(identity);
-    processDummyDisplayItem();
-    processEndTransform3D(transformClient);
-    processDummyDisplayItem();
-    finishPropertyTrees();
-
-    // There should only be a root transform node.
-    ASSERT_EQ(1u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-
-    // There should be three range records.
-    // Since the transform is the identity, these could be combined, but there
-    // is not currently a special path for this case.
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(0, 1), hasTransformNode(0)),
-        AllOf(hasRange(2, 3), hasTransformNode(0)),
-        AllOf(hasRange(4, 5), hasTransformNode(0))));
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, Only2DTranslation)
-{
-    FloatSize offset(200.5, -100);
-    TransformationMatrix translation;
-    translation.translate(offset.width(), offset.height());
-
-    // There's a translation here, but we should not make a node for it.
-    processDummyDisplayItem();
-    auto transformClient = processBeginTransform3D(translation);
-    processDummyDisplayItem();
-    processEndTransform3D(transformClient);
-    processDummyDisplayItem();
-    finishPropertyTrees();
-
-    // There should only be a root transform node.
-    ASSERT_EQ(1u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-
-    // There should be three ranges, even though there's only one node.
-    // The middle one requires an offset.
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(0, 1), hasTransformNode(0)),
-        AllOf(hasRange(2, 3), hasTransformNode(0)),
-        AllOf(hasRange(4, 5), hasTransformNode(0))));
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, Nested2DTranslation)
-{
-    FloatSize offset1(10, -40);
-    TransformationMatrix translation1;
-    translation1.translate(offset1.width(), offset1.height());
-    FloatSize offset2(80, 80);
-    TransformationMatrix translation2;
-    translation2.translate(offset2.width(), offset2.height());
-
-    // These drawings should share a transform node but have different range
-    // record offsets.
-    processDummyDisplayItem();
-    auto transform1 = processBeginTransform3D(translation1);
-    processDummyDisplayItem();
-    auto transform2 = processBeginTransform3D(translation2);
-    processDummyDisplayItem();
-    processEndTransform3D(transform2);
-    processEndTransform3D(transform1);
-    finishPropertyTrees();
-
-    // There should only be a root transform node.
-    ASSERT_EQ(1u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-
-    // Check that the range records have the right offsets.
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(0, 1), hasTransformNode(0), hasOffset(FloatSize())),
-        AllOf(hasRange(2, 3), hasTransformNode(0), hasOffset(offset1)),
-        AllOf(hasRange(4, 5), hasTransformNode(0), hasOffset(offset1 + offset2))));
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, ZTranslation)
-{
-    TransformationMatrix zTranslation;
-    zTranslation.translate3d(0, 0, 1);
-
-    // Z translation: we expect another node.
-    processDummyDisplayItem();
-    auto transformClient = processBeginTransform3D(zTranslation);
-    processDummyDisplayItem();
-    processEndTransform3D(transformClient);
-    processDummyDisplayItem();
-    finishPropertyTrees();
-
-    // There should be two nodes here.
-    ASSERT_EQ(2u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-    EXPECT_EQ(0u, transformTree().nodeAt(1).parentNodeIndex);
-
-    // There should be three range records.
-    // The middle of these should be transformed, and the others should be
-    // attached to the root node.
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(0, 1), hasTransformNode(0)),
-        AllOf(hasRange(2, 3), hasTransformNode(1)),
-        AllOf(hasRange(4, 5), hasTransformNode(0))));
-}
-
-template <typename TreeType, typename NodeType>
-size_t nodeDepth(const TreeType& tree, const NodeType& node)
-{
-    const auto* currentNode = &node;
-    size_t depth = 0;
-    while (!currentNode->isRoot()) {
-        currentNode = &tree.nodeAt(currentNode->parentNodeIndex);
-        depth++;
-    }
-    return depth;
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, SkipUnnecessaryRangeRecords)
-{
-    TransformationMatrix rotation;
-    rotation.rotate(1 /* degrees */);
-
-    // The only drawing is in the second transform.
-    auto transform1 = processBeginTransform3D(rotation);
-    auto transform2 = processBeginTransform3D(rotation);
-    processDummyDisplayItem();
-    auto transform3 = processBeginTransform3D(rotation);
-    processEndTransform3D(transform3);
-    processDummyDisplayItem();
-    processEndTransform3D(transform2);
-    processEndTransform3D(transform1);
-    finishPropertyTrees();
-
-    // There should be only two ranges.
-    // They must both belong to the same grandchild of the root node.
-    ASSERT_EQ(2u, rangeRecords().size());
-    size_t transformNodeIndex = rangeRecords()[0].transformNodeIndex;
-    EXPECT_EQ(2u, nodeDepth(transformTree(), transformTree().nodeAt(transformNodeIndex)));
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(2, 3), hasTransformNode(transformNodeIndex)),
-        AllOf(hasRange(5, 6), hasTransformNode(transformNodeIndex))));
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, RootTransformNodeHasIdentityTransform)
-{
-    finishPropertyTrees();
-    ASSERT_EQ(1u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).matrix.isIdentity());
-    EXPECT_TRANSFORMS_ALMOST_EQ(TransformationMatrix(), transformTree().nodeAt(0).matrix);
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, Transform3DMatrix)
-{
-    TransformationMatrix matrix;
-    matrix.rotate3d(45, 45, 45);
-
-    auto transform1 = processBeginTransform3D(matrix);
-    processDummyDisplayItem();
-    processEndTransform3D(transform1);
-    finishPropertyTrees();
-
-    const auto& transformNode = transformTree().nodeAt(rangeRecords()[0].transformNodeIndex);
-    EXPECT_TRANSFORMS_ALMOST_EQ(matrix, transformNode.matrix);
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, NestedTransformsAreNotCombined)
-{
-    // It's up the consumer of the tree to multiply transformation matrices.
-
-    TransformationMatrix matrix1;
-    matrix1.rotate3d(45, 45, 45);
-    TransformationMatrix matrix2;
-    matrix2.translate3d(0, 10, 20);
-    EXPECT_NE(matrix2, matrix1 * matrix2);
-
-    auto transform1 = processBeginTransform3D(matrix1);
-    auto transform2 = processBeginTransform3D(matrix2);
-    processDummyDisplayItem();
-    processEndTransform3D(transform2);
-    processDummyDisplayItem();
-    processEndTransform3D(transform1);
-    finishPropertyTrees();
-
-    const auto& transformNode = transformTree().nodeAt(rangeRecords()[0].transformNodeIndex);
-    ASSERT_FALSE(transformNode.isRoot());
-    EXPECT_TRANSFORMS_ALMOST_EQ(matrix2, transformNode.matrix);
-    const auto& parentNode = transformTree().nodeAt(transformNode.parentNodeIndex);
-    EXPECT_TRANSFORMS_ALMOST_EQ(matrix1, parentNode.matrix);
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, TransformDisplayItemCreatesTransformNode)
-{
-    // 2D transform display items should create a transform node as well,
-    // unless the transform is a 2D translation only.
-    AffineTransform rotation;
-    rotation.rotate(45);
-
-    processDummyDisplayItem();
-    auto transformClient = processBeginTransform(rotation);
-    processDummyDisplayItem();
-    processEndTransform(transformClient);
-    processDummyDisplayItem();
-    finishPropertyTrees();
-
-    // There should be two transform nodes.
-    ASSERT_EQ(2u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-    EXPECT_EQ(0u, transformTree().nodeAt(1).parentNodeIndex);
-    EXPECT_TRANSFORMS_ALMOST_EQ(TransformationMatrix(rotation), transformTree().nodeAt(1).matrix);
-
-    // There should be three range records, the middle one affected by the
-    // rotation.
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(0, 1), hasTransformNode(0)),
-        AllOf(hasRange(2, 3), hasTransformNode(1)),
-        AllOf(hasRange(4, 5), hasTransformNode(0))));
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, TransformDisplayItemOnly2DTranslation)
-{
-    // In this case no transform node should be created for the 2D translation.
-    AffineTransform translation = AffineTransform::translation(10, -40);
-
-    processDummyDisplayItem();
-    auto transformClient = processBeginTransform(translation);
-    processDummyDisplayItem();
-    processEndTransform(transformClient);
-    processDummyDisplayItem();
-    finishPropertyTrees();
-
-    // There should be only one transform node.
-    ASSERT_EQ(1u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-
-    // There should be three range records, the middle one affected by the
-    // translation.
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(0, 1), hasTransformNode(0), hasOffset(FloatSize(0, 0))),
-        AllOf(hasRange(2, 3), hasTransformNode(0), hasOffset(FloatSize(10, -40))),
-        AllOf(hasRange(4, 5), hasTransformNode(0), hasOffset(FloatSize(0, 0)))));
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, ScrollDisplayItemIs2DTranslation)
-{
-    processDummyDisplayItem();
-    auto scrollClient = processBeginScroll(-90, 400);
-    processDummyDisplayItem();
-    processEndScroll(scrollClient);
-    processDummyDisplayItem();
-    finishPropertyTrees();
-
-    // There should be only one transform node.
-    ASSERT_EQ(1u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-
-    // There should be three range records, the middle one affected by the
-    // scroll. Note that the translation due to scroll is the negative of the
-    // scroll offset.
-    EXPECT_THAT(rangeRecordsAsStdVector(), ElementsAre(
-        AllOf(hasRange(0, 1), hasTransformNode(0), hasOffset(FloatSize(0, 0))),
-        AllOf(hasRange(2, 3), hasTransformNode(0), hasOffset(FloatSize(90, -400))),
-        AllOf(hasRange(4, 5), hasTransformNode(0), hasOffset(FloatSize(0, 0)))));
-}
-
-TEST_F(DisplayItemPropertyTreeBuilderTest, TransformTreeIncludesTransformOrigin)
-{
-    FloatPoint3D transformOrigin(1, 2, 3);
-    TransformationMatrix matrix;
-    matrix.scale3d(2, 2, 2);
-
-    auto transformClient = processBeginTransform3D(matrix, transformOrigin);
-    processDummyDisplayItem();
-    processEndTransform3D(transformClient);
-    finishPropertyTrees();
-
-    // There should be two transform nodes.
-    ASSERT_EQ(2u, transformTree().nodeCount());
-    EXPECT_TRUE(transformTree().nodeAt(0).isRoot());
-
-    // And the non-root node should have both the matrix and the origin,
-    // separately.
-    const auto& transformNode = transformTree().nodeAt(1);
-    EXPECT_EQ(0u, transformNode.parentNodeIndex);
-    EXPECT_EQ(TransformationMatrix::toSkMatrix44(matrix), transformNode.matrix);
-    EXPECT_EQ(transformOrigin, transformNode.transformOrigin);
-}
-
-} // namespace
-} // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemTransformTree.cpp b/third_party/WebKit/Source/platform/graphics/paint/DisplayItemTransformTree.cpp
deleted file mode 100644
index 484b3b6..0000000
--- a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemTransformTree.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// 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 "platform/graphics/paint/DisplayItemTransformTree.h"
-
-namespace blink {
-
-DisplayItemTransformTree::DisplayItemTransformTree()
-{
-    // There is always a root node.
-    m_nodes.append(TransformNode(kInvalidIndex, SkMatrix44::kIdentity_Constructor, FloatPoint3D()));
-    ASSERT(m_nodes[0].isRoot());
-}
-
-DisplayItemTransformTree::~DisplayItemTransformTree()
-{
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemTransformTree.h b/third_party/WebKit/Source/platform/graphics/paint/DisplayItemTransformTree.h
deleted file mode 100644
index 1c7d99b..0000000
--- a/third_party/WebKit/Source/platform/graphics/paint/DisplayItemTransformTree.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// 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 DisplayItemTransformTree_h
-#define DisplayItemTransformTree_h
-
-#include "platform/PlatformExport.h"
-#include "platform/geometry/FloatPoint3D.h"
-#include "platform/transforms/TransformationMatrix.h"
-#include "public/platform/WebDisplayItemTransformTree.h"
-#include "wtf/Vector.h"
-
-namespace blink {
-
-// Represents the hierarchy of transforms which apply to ranges of a display
-// item list and may be of interest to the compositor.
-//
-// This class is also the private implementation of WebDisplayItemTransformTree.
-// For more detail, see WebDisplayItemTransformTree.h.
-//
-// TODO(pdr): Remove this in favor of TransformPaintPropertyNode.
-class PLATFORM_EXPORT DisplayItemTransformTree {
-public:
-    using TransformNode = WebDisplayItemTransformTree::TransformNode;
-    enum : size_t { kInvalidIndex = WebDisplayItemTransformTree::kInvalidIndex };
-
-    DisplayItemTransformTree();
-    ~DisplayItemTransformTree();
-
-    size_t nodeCount() const { return m_nodes.size(); }
-    TransformNode& nodeAt(size_t index) { return m_nodes[index]; }
-    const TransformNode& nodeAt(size_t index) const { return m_nodes[index]; }
-
-    // Returns the new node index.
-    size_t createNewNode(size_t parentNodeIndex, const TransformationMatrix& matrix, const FloatPoint3D& transformOrigin)
-    {
-        ASSERT(parentNodeIndex != kInvalidIndex);
-        m_nodes.append(TransformNode(
-            parentNodeIndex,
-            TransformationMatrix::toSkMatrix44(matrix),
-            transformOrigin));
-        return m_nodes.size() - 1;
-    }
-
-private:
-    Vector<TransformNode> m_nodes;
-};
-
-} // namespace blink
-
-#endif // DisplayItemTransformTree_h
diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.cpp b/third_party/WebKit/Source/web/ChromeClientImpl.cpp
index b53773a..5c07b32 100644
--- a/third_party/WebKit/Source/web/ChromeClientImpl.cpp
+++ b/third_party/WebKit/Source/web/ChromeClientImpl.cpp
@@ -746,18 +746,6 @@
     }
 }
 
-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)
 {
     // FIXME: For top-level frames we still use the WebView as a WebWidget. This
diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.h b/third_party/WebKit/Source/web/ChromeClientImpl.h
index bed75e3..047371c 100644
--- a/third_party/WebKit/Source/web/ChromeClientImpl.h
+++ b/third_party/WebKit/Source/web/ChromeClientImpl.h
@@ -120,9 +120,6 @@
     // Pass 0 as the GraphicsLayer to detatch the root layer.
     void attachRootGraphicsLayer(GraphicsLayer*, LocalFrame* localRoot) override;
 
-    void setCompositedDisplayList(PassOwnPtr<CompositedDisplayList>) override;
-    CompositedDisplayList* compositedDisplayListForTesting() override;
-
     void attachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) override;
     void detachCompositorAnimationTimeline(WebCompositorAnimationTimeline*, LocalFrame* localRoot) override;
 
diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp
index 8328ce8..a6d65e7 100644
--- a/third_party/WebKit/Source/web/WebViewImpl.cpp
+++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
@@ -3316,16 +3316,6 @@
     return IntSize(widthScaled, heightScaled);
 }
 
-void WebViewImpl::setCompositedDisplayList(PassOwnPtr<CompositedDisplayList> compositedDisplayList)
-{
-    m_compositedDisplayList.assign(compositedDisplayList);
-}
-
-WebCompositedDisplayList* WebViewImpl::compositedDisplayList()
-{
-    return &m_compositedDisplayList;
-}
-
 void WebViewImpl::enableViewport()
 {
     settings()->setViewportEnabled(true);
diff --git a/third_party/WebKit/Source/web/WebViewImpl.h b/third_party/WebKit/Source/web/WebViewImpl.h
index febe2c0..177b04a5 100644
--- a/third_party/WebKit/Source/web/WebViewImpl.h
+++ b/third_party/WebKit/Source/web/WebViewImpl.h
@@ -35,10 +35,8 @@
 #include "core/page/EventWithHitTestResults.h"
 #include "platform/geometry/IntPoint.h"
 #include "platform/geometry/IntRect.h"
-#include "platform/graphics/CompositedDisplayList.h"
 #include "platform/graphics/GraphicsLayer.h"
 #include "platform/heap/Handle.h"
-#include "public/platform/WebCompositedDisplayList.h"
 #include "public/platform/WebCompositorAnimationTimeline.h"
 #include "public/platform/WebDisplayMode.h"
 #include "public/platform/WebFloatSize.h"
@@ -274,9 +272,6 @@
     void setShowScrollBottleneckRects(bool) override;
     void acceptLanguagesChanged() override;
 
-    void setCompositedDisplayList(PassOwnPtr<CompositedDisplayList>);
-    WebCompositedDisplayList* compositedDisplayList() override;
-
     // WebViewImpl
     void enableViewport();
     void disableViewport();
@@ -727,8 +722,6 @@
     bool m_recreatingGraphicsContext;
     static const WebInputEvent* m_currentInputEvent;
 
-    WebCompositedDisplayList m_compositedDisplayList;
-
     MediaKeysClientImpl m_mediaKeysClientImpl;
     OwnPtr<WebActiveGestureAnimation> m_gestureAnimation;
     WebPoint m_positionOnFlingStart;
diff --git a/third_party/WebKit/public/platform/WebCompositedDisplayList.h b/third_party/WebKit/public/platform/WebCompositedDisplayList.h
deleted file mode 100644
index f424fd1c..0000000
--- a/third_party/WebKit/public/platform/WebCompositedDisplayList.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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
diff --git a/third_party/WebKit/public/platform/WebDisplayItemClipTree.h b/third_party/WebKit/public/platform/WebDisplayItemClipTree.h
deleted file mode 100644
index 768b6d4..0000000
--- a/third_party/WebKit/public/platform/WebDisplayItemClipTree.h
+++ /dev/null
@@ -1,72 +0,0 @@
-// 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 WebDisplayItemClipTree_h
-#define WebDisplayItemClipTree_h
-
-#include "public/platform/WebCommon.h"
-#include "public/platform/WebFloatRect.h"
-#include "public/platform/WebPrivateOwnPtr.h"
-
-namespace blink {
-
-class DisplayItemClipTree;
-
-// Represents a hierarchy of rectangular clips which apply to ranges of a
-// display list and may be of interest to the compositor.
-//
-// It consists of a tree of "transform nodes", stored in a flattened
-// representation in which their order is not guaranteed. Each node has a
-// parent (whose clip, and those of its ancestors, also apply to content),
-// a transform node index (into an associated |WebDisplayItemTransformTree|
-// which defines the coordinate space in which this clip is interpreted),
-// and a rectangle representing the clip.
-//
-// Rounded-rect clips are represented here by their bounding rect; the rounded
-// clip should be represented outside the clip tree (e.g. as a mask).
-class BLINK_PLATFORM_EXPORT WebDisplayItemClipTree {
-public:
-    enum : size_t { kInvalidIndex = static_cast<size_t>(-1) };
-
-    struct ClipNode {
-        ClipNode(size_t parent, size_t transformNodeIndex, const WebFloatRect& clipRect)
-            : parentNodeIndex(parent)
-            , transformNodeIndex(transformNodeIndex)
-            , clipRect(clipRect)
-        {
-        }
-
-        bool isRoot() const { return parentNodeIndex == kInvalidIndex; }
-
-        // Index of parent in m_nodes (kInvalidIndex for root).
-        size_t parentNodeIndex;
-
-        // Index of transform node in which this clip should be interpreted.
-        // Cannot be WebDisplayItemTransformTree::kInvalidIndex.
-        size_t transformNodeIndex;
-
-        // Rectangular clip in the space of the transform node.
-        WebFloatRect clipRect;
-    };
-
-    WebDisplayItemClipTree();
-#if INSIDE_BLINK
-    WebDisplayItemClipTree(const WTF::PassOwnPtr<DisplayItemClipTree>&);
-#endif
-
-    ~WebDisplayItemClipTree();
-
-    // Returns the number of nodes in the clip tree.
-    size_t nodeCount() const;
-
-    // Returns a node in the clip tree by its index (from 0 to nodeCount() - 1).
-    const ClipNode& nodeAt(size_t index) const;
-
-private:
-    WebPrivateOwnPtr<const DisplayItemClipTree> m_private;
-};
-
-} // namespace blink
-
-#endif // WebDisplayItemClipTree_h
diff --git a/third_party/WebKit/public/platform/WebDisplayItemTransformTree.h b/third_party/WebKit/public/platform/WebDisplayItemTransformTree.h
deleted file mode 100644
index 179659fa..0000000
--- a/third_party/WebKit/public/platform/WebDisplayItemTransformTree.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// 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 WebDisplayItemTransformTree_h
-#define WebDisplayItemTransformTree_h
-
-#include "public/platform/WebCommon.h"
-#include "public/platform/WebFloatSize.h"
-#include "public/platform/WebPrivateOwnPtr.h"
-#include "third_party/skia/include/core/SkPoint3.h"
-#include "third_party/skia/include/utils/SkMatrix44.h"
-
-namespace blink {
-
-class DisplayItemTransformTree;
-
-// Represents the hierarchy of transforms which apply to ranges of a display
-// item list and may be of interest to the compositor.
-//
-// It consists of a tree of "transform nodes", stored in a flattened
-// representation in which their order is not guaranteed. Each node has a
-// parent, relative to whom its transform should be interpreted (i.e. the
-// total transform at a node is the product of its transform and its parent's
-// total transform).
-class BLINK_PLATFORM_EXPORT WebDisplayItemTransformTree {
-public:
-    enum : size_t { kInvalidIndex = static_cast<size_t>(-1) };
-
-    struct TransformNode {
-        TransformNode(size_t parent, const SkMatrix44& matrix44, const SkPoint3& origin)
-            : parentNodeIndex(parent)
-            , matrix(matrix44)
-            , transformOrigin(origin)
-        {
-        }
-
-        bool isRoot() const { return parentNodeIndex == kInvalidIndex; }
-
-        // Index of parent in m_nodes (kInvalidIndex for root).
-        size_t parentNodeIndex;
-
-        // Transformation matrix of this node, relative to its parent.
-        SkMatrix44 matrix;
-
-        // Origin of the transform given by |matrix|.
-        SkPoint3 transformOrigin;
-    };
-
-    WebDisplayItemTransformTree();
-#if INSIDE_BLINK
-    WebDisplayItemTransformTree(const WTF::PassOwnPtr<DisplayItemTransformTree>&);
-#endif
-
-    ~WebDisplayItemTransformTree();
-
-    // Returns the number of nodes in the transform tree.
-    size_t nodeCount() const;
-
-    // Returns a node in the transform tree by its index (from 0 to nodeCount() - 1).
-    const TransformNode& nodeAt(size_t index) const;
-
-private:
-    WebPrivateOwnPtr<const DisplayItemTransformTree> m_private;
-};
-
-} // namespace blink
-
-#endif // WebDisplayItemTransformTree_h