[go: nahoru, domu]

Move cc::DisplayItemList and related classes into cc/paint/

Also:

* The other classes in cc/playback/ have been moved into other directories
appropriate to their purpose.
* Add a component for cc/debug/ because otherwise cc/paint/ will depend on cc/
* Add a component for cc/base/ because otherwise cc/paint/ will depend on cc/
* Move cc/base/cc_export.h to cc/cc_export.h. This is the source of most of the
changes in this CL.

TBR=dcheng

BUG=665259
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2748263002
Cr-Commit-Position: refs/heads/master@{#457689}
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 2df1e018..89e78ee19 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -844,6 +844,7 @@
     "//base:i18n",
     "//base/third_party/dynamic_annotations",
     "//cc",
+    "//cc/debug",
     "//cc/surfaces",
     "//chromeos",
     "//chromeos:power_manager_proto",
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index 83658571..67ed133 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -7,10 +7,9 @@
 
 cc_component("cc") {
   sources = [
+    # TODO(chrishtr): move these to cc/benchmarks/
     "debug/benchmark_instrumentation.cc",
     "debug/benchmark_instrumentation.h",
-    "debug/debug_colors.cc",
-    "debug/debug_colors.h",
     "debug/debug_rect_history.cc",
     "debug/debug_rect_history.h",
     "debug/devtools_instrumentation.cc",
@@ -23,8 +22,6 @@
     "debug/invalidation_benchmark.h",
     "debug/lap_timer.cc",
     "debug/lap_timer.h",
-    "debug/layer_tree_debug_state.cc",
-    "debug/layer_tree_debug_state.h",
     "debug/micro_benchmark.cc",
     "debug/micro_benchmark.h",
     "debug/micro_benchmark_controller.cc",
@@ -33,19 +30,11 @@
     "debug/micro_benchmark_controller_impl.h",
     "debug/micro_benchmark_impl.cc",
     "debug/micro_benchmark_impl.h",
-    "debug/picture_debug_util.cc",
-    "debug/picture_debug_util.h",
     "debug/rasterize_and_record_benchmark.cc",
     "debug/rasterize_and_record_benchmark.h",
     "debug/rasterize_and_record_benchmark_impl.cc",
     "debug/rasterize_and_record_benchmark_impl.h",
-    "debug/rendering_stats.cc",
-    "debug/rendering_stats.h",
-    "debug/rendering_stats_instrumentation.cc",
-    "debug/rendering_stats_instrumentation.h",
     "debug/ring_buffer.h",
-    "debug/traced_value.cc",
-    "debug/traced_value.h",
     "debug/unittest_only_benchmark.cc",
     "debug/unittest_only_benchmark.h",
     "debug/unittest_only_benchmark_impl.cc",
@@ -115,6 +104,8 @@
     "layers/picture_layer.h",
     "layers/picture_layer_impl.cc",
     "layers/picture_layer_impl.h",
+    "layers/recording_source.cc",
+    "layers/recording_source.h",
     "layers/render_surface_impl.cc",
     "layers/render_surface_impl.h",
     "layers/scrollbar_layer_impl_base.cc",
@@ -183,10 +174,6 @@
     "output/direct_renderer.h",
     "output/dynamic_geometry_binding.cc",
     "output/dynamic_geometry_binding.h",
-    "output/filter_operation.cc",
-    "output/filter_operation.h",
-    "output/filter_operations.cc",
-    "output/filter_operations.h",
     "output/geometry_binding.cc",
     "output/geometry_binding.h",
     "output/gl_renderer.cc",
@@ -221,8 +208,6 @@
     "output/overlay_strategy_underlay_cast.h",
     "output/program_binding.cc",
     "output/program_binding.h",
-    "output/render_surface_filters.cc",
-    "output/render_surface_filters.h",
     "output/renderer_settings.cc",
     "output/renderer_settings.h",
     "output/shader.cc",
@@ -239,40 +224,6 @@
     "output/vulkan_context_provider.h",
     "output/vulkan_in_process_context_provider.cc",
     "output/vulkan_in_process_context_provider.h",
-    "playback/clip_display_item.cc",
-    "playback/clip_display_item.h",
-    "playback/clip_path_display_item.cc",
-    "playback/clip_path_display_item.h",
-    "playback/compositing_display_item.cc",
-    "playback/compositing_display_item.h",
-    "playback/decoded_draw_image.cc",
-    "playback/decoded_draw_image.h",
-    "playback/discardable_image_map.cc",
-    "playback/discardable_image_map.h",
-    "playback/display_item.h",
-    "playback/display_item_list.cc",
-    "playback/display_item_list.h",
-    "playback/draw_image.cc",
-    "playback/draw_image.h",
-    "playback/drawing_display_item.cc",
-    "playback/drawing_display_item.h",
-    "playback/filter_display_item.cc",
-    "playback/filter_display_item.h",
-    "playback/float_clip_display_item.cc",
-    "playback/float_clip_display_item.h",
-    "playback/image_hijack_canvas.cc",
-    "playback/image_hijack_canvas.h",
-    "playback/image_id.h",
-    "playback/largest_display_item.cc",
-    "playback/largest_display_item.h",
-    "playback/raster_source.cc",
-    "playback/raster_source.h",
-    "playback/recording_source.cc",
-    "playback/recording_source.h",
-    "playback/skip_image_canvas.cc",
-    "playback/skip_image_canvas.h",
-    "playback/transform_display_item.cc",
-    "playback/transform_display_item.h",
     "quads/content_draw_quad_base.cc",
     "quads/content_draw_quad_base.h",
     "quads/debug_border_draw_quad.cc",
@@ -309,16 +260,22 @@
     "raster/bitmap_raster_buffer_provider.h",
     "raster/gpu_raster_buffer_provider.cc",
     "raster/gpu_raster_buffer_provider.h",
+    "raster/image_hijack_canvas.cc",
+    "raster/image_hijack_canvas.h",
     "raster/one_copy_raster_buffer_provider.cc",
     "raster/one_copy_raster_buffer_provider.h",
     "raster/raster_buffer.cc",
     "raster/raster_buffer.h",
     "raster/raster_buffer_provider.cc",
     "raster/raster_buffer_provider.h",
+    "raster/raster_source.cc",
+    "raster/raster_source.h",
     "raster/scoped_gpu_raster.cc",
     "raster/scoped_gpu_raster.h",
     "raster/single_thread_task_graph_runner.cc",
     "raster/single_thread_task_graph_runner.h",
+    "raster/skip_image_canvas.cc",
+    "raster/skip_image_canvas.h",
     "raster/staging_buffer_pool.cc",
     "raster/staging_buffer_pool.h",
     "raster/synchronous_task_graph_runner.cc",
@@ -395,6 +352,8 @@
     "scheduler/video_frame_controller.h",
     "tiles/checker_image_tracker.cc",
     "tiles/checker_image_tracker.h",
+    "tiles/decoded_draw_image.cc",
+    "tiles/decoded_draw_image.h",
     "tiles/decoded_image_tracker.cc",
     "tiles/decoded_image_tracker.h",
     "tiles/eviction_tile_priority_queue.cc",
@@ -741,6 +700,7 @@
   sources = [
     "base/contiguous_container_unittest.cc",
     "base/delayed_unique_notifier_unittest.cc",
+    "base/filter_operations_unittest.cc",
     "base/float_quad_unittest.cc",
     "base/histograms_unittest.cc",
     "base/index_rect_unittest.cc",
@@ -777,6 +737,7 @@
     "layers/picture_image_layer_unittest.cc",
     "layers/picture_layer_impl_unittest.cc",
     "layers/picture_layer_unittest.cc",
+    "layers/recording_source_unittest.cc",
     "layers/render_surface_impl_unittest.cc",
     "layers/render_surface_unittest.cc",
     "layers/scrollbar_layer_unittest.cc",
@@ -796,7 +757,6 @@
     "output/buffer_to_texture_target_map_unittest.cc",
     "output/compositor_frame_sink_unittest.cc",
     "output/context_cache_controller_unittest.cc",
-    "output/filter_operations_unittest.cc",
     "output/gl_renderer_unittest.cc",
     "output/layer_quad_unittest.cc",
     "output/overlay_unittest.cc",
@@ -804,16 +764,15 @@
     "output/shader_unittest.cc",
     "output/software_renderer_unittest.cc",
     "output/texture_mailbox_deleter_unittest.cc",
-    "playback/discardable_image_map_unittest.cc",
-    "playback/display_item_list_unittest.cc",
-    "playback/image_hijack_canvas_unittest.cc",
-    "playback/raster_source_unittest.cc",
-    "playback/recording_source_unittest.cc",
+    "paint/discardable_image_map_unittest.cc",
+    "paint/display_item_list_unittest.cc",
     "quads/draw_polygon_unittest.cc",
     "quads/draw_quad_unittest.cc",
     "quads/nine_patch_generator_unittest.cc",
     "quads/render_pass_unittest.cc",
+    "raster/image_hijack_canvas_unittest.cc",
     "raster/raster_buffer_provider_unittest.cc",
+    "raster/raster_source_unittest.cc",
     "raster/scoped_gpu_raster_unittest.cc",
     "raster/single_thread_task_graph_runner_unittest.cc",
     "raster/synchronous_task_graph_runner_unittest.cc",
@@ -974,6 +933,7 @@
     "//base/test:test_support",
     "//cc/ipc",
     "//cc/ipc:interfaces",
+    "//cc/paint",
     "//cc/surfaces",
     "//cc/surfaces:surface_id",
     "//gpu",
diff --git a/cc/animation/DEPS b/cc/animation/DEPS
index 3b405773..e4afe36 100644
--- a/cc/animation/DEPS
+++ b/cc/animation/DEPS
@@ -3,6 +3,7 @@
   "+cc/animation",
   "+cc/base",
   "+cc/debug",
+  "+cc/paint",
   "+cc/output/filter_operations.h",
   "+cc/test",
   "+cc/trees/element_id.h",
diff --git a/cc/animation/animation_curve.h b/cc/animation/animation_curve.h
index 4564446a..72b8e63 100644
--- a/cc/animation/animation_curve.h
+++ b/cc/animation/animation_curve.h
@@ -9,7 +9,7 @@
 
 #include "base/time/time.h"
 #include "cc/animation/animation_export.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 #include "ui/gfx/transform.h"
 
 namespace gfx {
diff --git a/cc/animation/animation_events.h b/cc/animation/animation_events.h
index d0f4709..65a7ae6 100644
--- a/cc/animation/animation_events.h
+++ b/cc/animation/animation_events.h
@@ -11,7 +11,7 @@
 #include "cc/animation/animation.h"
 #include "cc/animation/animation_curve.h"
 #include "cc/animation/animation_export.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 #include "cc/trees/element_id.h"
 #include "cc/trees/mutator_host.h"
 #include "ui/gfx/transform.h"
diff --git a/cc/animation/element_animations.cc b/cc/animation/element_animations.cc
index 5e30ac1..ebb9c3f 100644
--- a/cc/animation/element_animations.cc
+++ b/cc/animation/element_animations.cc
@@ -15,7 +15,7 @@
 #include "cc/animation/animation_host.h"
 #include "cc/animation/animation_player.h"
 #include "cc/animation/keyframed_animation_curve.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 #include "cc/trees/mutator_host_client.h"
 #include "ui/gfx/geometry/box_f.h"
 
diff --git a/cc/base/BUILD.gn b/cc/base/BUILD.gn
index ee72bb2..e155d84 100644
--- a/cc/base/BUILD.gn
+++ b/cc/base/BUILD.gn
@@ -4,16 +4,20 @@
 
 import("//cc/cc.gni")
 
-cc_source_set("base") {
-  visibility = [ "//cc" ]
-
+component("base") {
+  output_name = "cc_base"
   sources = [
+    "base_export.h",
     "completion_event.h",
     "container_util.h",
     "contiguous_container.cc",
     "contiguous_container.h",
     "delayed_unique_notifier.cc",
     "delayed_unique_notifier.h",
+    "filter_operation.cc",
+    "filter_operation.h",
+    "filter_operations.cc",
+    "filter_operations.h",
     "histograms.cc",
     "histograms.h",
     "index_rect.cc",
@@ -28,6 +32,8 @@
     "random_access_list_container.h",
     "region.cc",
     "region.h",
+    "render_surface_filters.cc",
+    "render_surface_filters.h",
     "resource_id.h",
     "reverse_spiral_iterator.cc",
     "reverse_spiral_iterator.h",
@@ -53,9 +59,10 @@
     "//base",
     "//base/third_party/dynamic_annotations",
     "//skia",
-    "//ui/gfx",
+    "//ui/gfx:geometry_skia",
+    "//ui/gfx/animation",
     "//ui/gfx/geometry",
   ]
 
-  defines = [ "CC_IMPLEMENTATION=1" ]
+  defines = [ "CC_BASE_IMPLEMENTATION=1" ]
 }
diff --git a/cc/base/base_export.h b/cc/base/base_export.h
new file mode 100644
index 0000000..3d7e0243
--- /dev/null
+++ b/cc/base/base_export.h
@@ -0,0 +1,29 @@
+// Copyright 2017 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 CC_BASE_BASE_EXPORT_H_
+#define CC_BASE_BASE_EXPORT_H_
+
+#if defined(COMPONENT_BUILD)
+#if defined(WIN32)
+
+#if defined(CC_BASE_IMPLEMENTATION)
+#define CC_BASE_EXPORT __declspec(dllexport)
+#else
+#define CC_BASE_EXPORT __declspec(dllimport)
+#endif  // defined(CC_BASE_IMPLEMENTATION)
+
+#else  // defined(WIN32)
+#if defined(CC_BASE_IMPLEMENTATION)
+#define CC_BASE_EXPORT __attribute__((visibility("default")))
+#else
+#define CC_BASE_EXPORT
+#endif
+#endif
+
+#else  // defined(COMPONENT_BUILD)
+#define CC_BASE_EXPORT
+#endif
+
+#endif  // CC_BASE_BASE_EXPORT_H_
diff --git a/cc/base/contiguous_container.h b/cc/base/contiguous_container.h
index 2fbbae4..3dd3fec 100644
--- a/cc/base/contiguous_container.h
+++ b/cc/base/contiguous_container.h
@@ -14,7 +14,7 @@
 #include "base/compiler_specific.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 
 namespace cc {
 
@@ -36,7 +36,7 @@
 // Clients should instantiate ContiguousContainer; ContiguousContainerBase is an
 // artifact of the implementation.
 
-class CC_EXPORT ContiguousContainerBase {
+class CC_BASE_EXPORT ContiguousContainerBase {
  protected:
   explicit ContiguousContainerBase(size_t max_object_size);
   ContiguousContainerBase(size_t max_object_size, size_t initial_size_bytes);
diff --git a/cc/base/delayed_unique_notifier.h b/cc/base/delayed_unique_notifier.h
index 8272d34..86d2e37 100644
--- a/cc/base/delayed_unique_notifier.h
+++ b/cc/base/delayed_unique_notifier.h
@@ -8,7 +8,7 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 
 namespace base {
 class SequencedTaskRunner;
@@ -16,7 +16,7 @@
 
 namespace cc {
 
-class CC_EXPORT DelayedUniqueNotifier {
+class CC_BASE_EXPORT DelayedUniqueNotifier {
  public:
   // Configure this notifier to issue the |closure| notification in |delay| time
   // from Schedule() call.
diff --git a/cc/output/filter_operation.cc b/cc/base/filter_operation.cc
similarity index 88%
rename from cc/output/filter_operation.cc
rename to cc/base/filter_operation.cc
index e75b4170..aed4b02 100644
--- a/cc/output/filter_operation.cc
+++ b/cc/base/filter_operation.cc
@@ -8,8 +8,8 @@
 
 #include "base/trace_event/trace_event_argument.h"
 #include "base/values.h"
+#include "cc/base/filter_operation.h"
 #include "cc/base/math_util.h"
-#include "cc/output/filter_operation.h"
 #include "ui/gfx/animation/tween.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_conversions.h"
@@ -31,9 +31,8 @@
     return image_filter_.get() == other.image_filter_.get();
   }
   if (type_ == ALPHA_THRESHOLD) {
-    return region_ == other.region_ &&
-        amount_ == other.amount_ &&
-        outer_threshold_ == other.outer_threshold_;
+    return region_ == other.region_ && amount_ == other.amount_ &&
+           outer_threshold_ == other.outer_threshold_;
   }
   return amount_ == other.amount_;
 }
@@ -129,8 +128,7 @@
   memcpy(matrix_, other.matrix_, sizeof(matrix_));
 }
 
-FilterOperation::~FilterOperation() {
-}
+FilterOperation::~FilterOperation() {}
 
 static FilterOperation CreateNoOpFilter(FilterOperation::FilterType type) {
   switch (type) {
@@ -153,8 +151,8 @@
     case FilterOperation::BLUR:
       return FilterOperation::CreateBlurFilter(0.f);
     case FilterOperation::DROP_SHADOW:
-      return FilterOperation::CreateDropShadowFilter(
-          gfx::Point(0, 0), 0.f, SK_ColorTRANSPARENT);
+      return FilterOperation::CreateDropShadowFilter(gfx::Point(0, 0), 0.f,
+                                                     SK_ColorTRANSPARENT);
     case FilterOperation::COLOR_MATRIX: {
       SkScalar matrix[20];
       memset(matrix, 0, 20 * sizeof(SkScalar));
@@ -234,13 +232,12 @@
       to_op.type()));
 
   if (to_op.type() == FilterOperation::DROP_SHADOW) {
-    gfx::Point blended_offset(
-        gfx::Tween::LinearIntValueBetween(progress,
-                                          from_op.drop_shadow_offset().x(),
-                                          to_op.drop_shadow_offset().x()),
-        gfx::Tween::LinearIntValueBetween(progress,
-                                          from_op.drop_shadow_offset().y(),
-                                          to_op.drop_shadow_offset().y()));
+    gfx::Point blended_offset(gfx::Tween::LinearIntValueBetween(
+                                  progress, from_op.drop_shadow_offset().x(),
+                                  to_op.drop_shadow_offset().x()),
+                              gfx::Tween::LinearIntValueBetween(
+                                  progress, from_op.drop_shadow_offset().y(),
+                                  to_op.drop_shadow_offset().y()));
     blended_filter.set_drop_shadow_offset(blended_offset);
     blended_filter.set_drop_shadow_color(gfx::Tween::ColorValueBetween(
         progress, from_op.drop_shadow_color(), to_op.drop_shadow_color()));
@@ -251,10 +248,9 @@
                  0));
   } else if (to_op.type() == FilterOperation::ALPHA_THRESHOLD) {
     blended_filter.set_outer_threshold(ClampAmountForFilterType(
-            gfx::Tween::FloatValueBetween(progress,
-                                          from_op.outer_threshold(),
-                                          to_op.outer_threshold()),
-            to_op.type()));
+        gfx::Tween::FloatValueBetween(progress, from_op.outer_threshold(),
+                                      to_op.outer_threshold()),
+        to_op.type()));
     blended_filter.set_region(to_op.region());
   }
 
@@ -302,19 +298,18 @@
       break;
     }
     case FilterOperation::ALPHA_THRESHOLD: {
-        value->SetDouble("inner_threshold", amount_);
-        value->SetDouble("outer_threshold", outer_threshold_);
-        std::unique_ptr<base::ListValue> region_value(new base::ListValue());
-        value->BeginArray("region");
-        for (SkRegion::Iterator it(region_); !it.done(); it.next()) {
-          value->AppendInteger(it.rect().x());
-          value->AppendInteger(it.rect().y());
-          value->AppendInteger(it.rect().width());
-          value->AppendInteger(it.rect().height());
-        }
-        value->EndArray();
+      value->SetDouble("inner_threshold", amount_);
+      value->SetDouble("outer_threshold", outer_threshold_);
+      std::unique_ptr<base::ListValue> region_value(new base::ListValue());
+      value->BeginArray("region");
+      for (SkRegion::Iterator it(region_); !it.done(); it.next()) {
+        value->AppendInteger(it.rect().x());
+        value->AppendInteger(it.rect().y());
+        value->AppendInteger(it.rect().width());
+        value->AppendInteger(it.rect().height());
       }
-      break;
+      value->EndArray();
+    } break;
   }
 }
 
diff --git a/cc/output/filter_operation.h b/cc/base/filter_operation.h
similarity index 94%
rename from cc/output/filter_operation.h
rename to cc/base/filter_operation.h
index 63edc3a..2508870 100644
--- a/cc/output/filter_operation.h
+++ b/cc/base/filter_operation.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_OUTPUT_FILTER_OPERATION_H_
-#define CC_OUTPUT_FILTER_OPERATION_H_
+#ifndef CC_BASE_FILTER_OPERATION_H_
+#define CC_BASE_FILTER_OPERATION_H_
 
 #include <memory>
 
 #include "base/logging.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "third_party/skia/include/core/SkImageFilter.h"
 #include "third_party/skia/include/core/SkRegion.h"
@@ -27,7 +27,7 @@
 
 namespace cc {
 
-class CC_EXPORT FilterOperation {
+class CC_BASE_EXPORT FilterOperation {
  public:
   enum FilterType {
     GRAYSCALE,
@@ -44,7 +44,7 @@
     ZOOM,
     REFERENCE,
     SATURATING_BRIGHTNESS,  // Not used in CSS/SVG.
-    ALPHA_THRESHOLD,  // Not used in CSS/SVG.
+    ALPHA_THRESHOLD,        // Not used in CSS/SVG.
     FILTER_TYPE_LAST = ALPHA_THRESHOLD
   };
 
@@ -159,8 +159,8 @@
   static FilterOperation CreateAlphaThresholdFilter(const SkRegion& region,
                                                     float inner_threshold,
                                                     float outer_threshold) {
-    return FilterOperation(ALPHA_THRESHOLD, region,
-                           inner_threshold, outer_threshold);
+    return FilterOperation(ALPHA_THRESHOLD, region, inner_threshold,
+                           outer_threshold);
   }
 
   bool operator==(const FilterOperation& other) const;
@@ -270,4 +270,4 @@
 
 }  // namespace cc
 
-#endif  // CC_OUTPUT_FILTER_OPERATION_H_
+#endif  // CC_BASE_FILTER_OPERATION_H_
diff --git a/cc/output/filter_operations.cc b/cc/base/filter_operations.cc
similarity index 96%
rename from cc/output/filter_operations.cc
rename to cc/base/filter_operations.cc
index dc18a22..b9ccb8d 100644
--- a/cc/output/filter_operations.cc
+++ b/cc/base/filter_operations.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 
 #include <stddef.h>
 
@@ -11,7 +11,7 @@
 
 #include "base/trace_event/trace_event_argument.h"
 #include "base/values.h"
-#include "cc/output/filter_operation.h"
+#include "cc/base/filter_operation.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace cc {
@@ -164,10 +164,7 @@
         return true;
       case FilterOperation::COLOR_MATRIX: {
         const SkScalar* matrix = op.matrix();
-        if (matrix[15] ||
-            matrix[16] ||
-            matrix[17] ||
-            matrix[18] != 1 ||
+        if (matrix[15] || matrix[16] || matrix[17] || matrix[18] != 1 ||
             matrix[19])
           return true;
         break;
@@ -204,7 +201,7 @@
   size_t shorter_size, longer_size;
   if (size() == from.size()) {
     shorter_size = longer_size = size();
-  } else if  (from_is_longer) {
+  } else if (from_is_longer) {
     longer_size = from.size();
     shorter_size = size();
   } else {
diff --git a/cc/output/filter_operations.h b/cc/base/filter_operations.h
similarity index 91%
rename from cc/output/filter_operations.h
rename to cc/base/filter_operations.h
index b5eb780..a7be88d 100644
--- a/cc/output/filter_operations.h
+++ b/cc/base/filter_operations.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_OUTPUT_FILTER_OPERATIONS_H_
-#define CC_OUTPUT_FILTER_OPERATIONS_H_
+#ifndef CC_BASE_FILTER_OPERATIONS_H_
+#define CC_BASE_FILTER_OPERATIONS_H_
 
 #include <stddef.h>
 
@@ -11,7 +11,7 @@
 #include <vector>
 
 #include "base/logging.h"
-#include "cc/output/filter_operation.h"
+#include "cc/base/filter_operation.h"
 
 namespace base {
 namespace trace_event {
@@ -26,7 +26,7 @@
 namespace cc {
 
 // An ordered list of filter operations.
-class CC_EXPORT FilterOperations {
+class CC_BASE_EXPORT FilterOperations {
  public:
   FilterOperations();
 
@@ -66,9 +66,7 @@
   bool HasFilterThatAffectsOpacity() const;
   bool HasReferenceFilter() const;
 
-  size_t size() const {
-    return operations_.size();
-  }
+  size_t size() const { return operations_.size(); }
 
   const std::vector<FilterOperation>& operations() const { return operations_; }
 
@@ -98,4 +96,4 @@
 
 }  // namespace cc
 
-#endif  // CC_OUTPUT_FILTER_OPERATIONS_H_
+#endif  // CC_BASE_FILTER_OPERATIONS_H_
diff --git a/cc/output/filter_operations_unittest.cc b/cc/base/filter_operations_unittest.cc
similarity index 98%
rename from cc/output/filter_operations_unittest.cc
rename to cc/base/filter_operations_unittest.cc
index fe86feb..9eb852d 100644
--- a/cc/output/filter_operations_unittest.cc
+++ b/cc/base/filter_operations_unittest.cc
@@ -4,7 +4,7 @@
 
 #include <stddef.h>
 
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/skia/include/effects/SkBlurImageFilter.h"
 #include "third_party/skia/include/effects/SkDropShadowImageFilter.h"
@@ -396,11 +396,11 @@
   SAVE_RESTORE_AMOUNT(Opacity, OPACITY, 0.6f);
   SAVE_RESTORE_AMOUNT(Blur, BLUR, 0.6f);
   SAVE_RESTORE_AMOUNT(SaturatingBrightness, SATURATING_BRIGHTNESS, 0.6f);
-  SAVE_RESTORE_OFFSET_AMOUNT_COLOR(
-      DropShadow, DROP_SHADOW, gfx::Point(3, 4), 0.4f, 0xffffff00);
+  SAVE_RESTORE_OFFSET_AMOUNT_COLOR(DropShadow, DROP_SHADOW, gfx::Point(3, 4),
+                                   0.4f, 0xffffff00);
 
-  SkScalar matrix[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-                         17, 18, 19, 20};
+  SkScalar matrix[20] = {1,  2,  3,  4,  5,  6,  7,  8,  9,  10,
+                         11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
   SAVE_RESTORE_MATRIX(ColorMatrix, COLOR_MATRIX, matrix);
 
   SAVE_RESTORE_AMOUNT_INSET(Zoom, ZOOM, 0.5f, 32);
diff --git a/cc/base/histograms.h b/cc/base/histograms.h
index 16e059c..5c634b9c 100644
--- a/cc/base/histograms.h
+++ b/cc/base/histograms.h
@@ -13,7 +13,7 @@
 #include "base/strings/stringprintf.h"
 #include "base/time/time.h"
 #include "base/timer/elapsed_timer.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 
 namespace cc {
 
@@ -22,7 +22,7 @@
 //
 // We currently assume that there is only one distinct client per process.
 // Not thread-safe. If called multiple times, warns and skips metrics.
-CC_EXPORT void SetClientNameForMetrics(const char* client_name);
+CC_BASE_EXPORT void SetClientNameForMetrics(const char* client_name);
 
 // Returns the client name, for use by applicable cc metrics code.
 // May return null, in which case no clients, or at least two clients, set the
@@ -30,7 +30,7 @@
 //
 // This method guarantees that it will never return two distinct non-null
 // values over the lifetime of the process.
-const char* GetClientNameForMetrics();
+CC_BASE_EXPORT const char* GetClientNameForMetrics();
 
 // Emits UMA histogram trackers for time spent as well as area (in pixels)
 // processed per unit time. Time is measured in microseconds, and work in
@@ -90,7 +90,7 @@
     }                                                                       \
   }
 
-class CC_EXPORT ScopedUMAHistogramAreaTimerBase {
+class CC_BASE_EXPORT ScopedUMAHistogramAreaTimerBase {
  public:
   void AddArea(const base::CheckedNumeric<int>& area) { area_ += area; }
   void SetArea(const base::CheckedNumeric<int>& area) { area_ = area; }
diff --git a/cc/base/index_rect.h b/cc/base/index_rect.h
index d6d2d917..ea25283 100644
--- a/cc/base/index_rect.h
+++ b/cc/base/index_rect.h
@@ -7,7 +7,7 @@
 
 #include <string>
 
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 
 namespace cc {
 
@@ -58,7 +58,7 @@
 //    ├───┼───┼───┼───┼───┤
 //  4 │   │   │   │   │   │
 //    └───┴───┴───┴───┴───┘
-class CC_EXPORT IndexRect {
+class CC_BASE_EXPORT IndexRect {
  public:
   constexpr IndexRect(int left, int right, int top, int bottom)
       : left_(left), right_(right), top_(top), bottom_(bottom) {}
diff --git a/cc/base/invalidation_region.h b/cc/base/invalidation_region.h
index a9a0762b..1c137e8 100644
--- a/cc/base/invalidation_region.h
+++ b/cc/base/invalidation_region.h
@@ -7,7 +7,7 @@
 
 #include <vector>
 
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "cc/base/region.h"
 #include "ui/gfx/geometry/rect.h"
 
@@ -16,7 +16,7 @@
 // This class behaves similarly to Region, but it may have false positives. That
 // is, InvalidationRegion can be simplified to encompass a larger area than the
 // collection of rects unioned.
-class CC_EXPORT InvalidationRegion {
+class CC_BASE_EXPORT InvalidationRegion {
  public:
   InvalidationRegion();
   ~InvalidationRegion();
diff --git a/cc/base/list_container.h b/cc/base/list_container.h
index 07e7d321f..cb386f9 100644
--- a/cc/base/list_container.h
+++ b/cc/base/list_container.h
@@ -11,7 +11,6 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/list_container_helper.h"
 
 namespace cc {
diff --git a/cc/base/list_container_helper.h b/cc/base/list_container_helper.h
index d4f5ead..ce98c1e 100644
--- a/cc/base/list_container_helper.h
+++ b/cc/base/list_container_helper.h
@@ -10,14 +10,14 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 
 namespace cc {
 
 // Helper class for ListContainer non-templated logic. All methods are private,
 // and only exposed to friend classes.
 // For usage, see comments in ListContainer (list_container.h).
-class CC_EXPORT ListContainerHelper final {
+class CC_BASE_EXPORT ListContainerHelper final {
  private:
   template <typename T>
   friend class ListContainer;
@@ -36,7 +36,7 @@
 
   // This class points to a certain position inside memory of
   // CharAllocator. It is a base class for ListContainer iterators.
-  struct CC_EXPORT PositionInCharAllocator {
+  struct CC_BASE_EXPORT PositionInCharAllocator {
     CharAllocator* ptr_to_container;
     size_t vector_index;
     char* item_iterator;
@@ -56,7 +56,7 @@
 
   // Iterator classes that can be used to access data.
   /////////////////////////////////////////////////////////////////
-  class CC_EXPORT Iterator : public PositionInCharAllocator {
+  class CC_BASE_EXPORT Iterator : public PositionInCharAllocator {
     // This class is only defined to forward iterate through
     // CharAllocator.
    public:
@@ -76,7 +76,7 @@
     size_t index_;
   };
 
-  class CC_EXPORT ConstIterator : public PositionInCharAllocator {
+  class CC_BASE_EXPORT ConstIterator : public PositionInCharAllocator {
     // This class is only defined to forward iterate through
     // CharAllocator.
    public:
@@ -97,7 +97,7 @@
     size_t index_;
   };
 
-  class CC_EXPORT ReverseIterator : public PositionInCharAllocator {
+  class CC_BASE_EXPORT ReverseIterator : public PositionInCharAllocator {
     // This class is only defined to reverse iterate through
     // CharAllocator.
    public:
@@ -117,7 +117,7 @@
     size_t index_;
   };
 
-  class CC_EXPORT ConstReverseIterator : public PositionInCharAllocator {
+  class CC_BASE_EXPORT ConstReverseIterator : public PositionInCharAllocator {
     // This class is only defined to reverse iterate through
     // CharAllocator.
    public:
diff --git a/cc/base/math_util.h b/cc/base/math_util.h
index 59f28ec..c7d4a0e7 100644
--- a/cc/base/math_util.h
+++ b/cc/base/math_util.h
@@ -11,7 +11,7 @@
 #include <vector>
 
 #include "base/logging.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "ui/gfx/geometry/box_f.h"
 #include "ui/gfx/geometry/point3_f.h"
 #include "ui/gfx/geometry/point_f.h"
@@ -79,7 +79,7 @@
   SkMScalar vec[4];
 };
 
-class CC_EXPORT MathUtil {
+class CC_BASE_EXPORT MathUtil {
  public:
   static const double kPiDouble;
   static const float kPiFloat;
@@ -325,7 +325,7 @@
   }
 };
 
-class ScopedSubnormalFloatDisabler {
+class CC_BASE_EXPORT ScopedSubnormalFloatDisabler {
  public:
   ScopedSubnormalFloatDisabler();
   ~ScopedSubnormalFloatDisabler();
diff --git a/cc/base/region.h b/cc/base/region.h
index 87d7973..6b5ceaf6 100644
--- a/cc/base/region.h
+++ b/cc/base/region.h
@@ -8,7 +8,7 @@
 #include <memory>
 #include <string>
 
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "third_party/skia/include/core/SkRegion.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/skia_util.h"
@@ -23,7 +23,7 @@
 namespace cc {
 class SimpleEnclosedRegion;
 
-class CC_EXPORT Region {
+class CC_BASE_EXPORT Region {
  public:
   Region();
   Region(const Region& region);
@@ -65,7 +65,7 @@
   std::unique_ptr<base::Value> AsValue() const;
   void AsValueInto(base::trace_event::TracedValue* array) const;
 
-  class CC_EXPORT Iterator {
+  class CC_BASE_EXPORT Iterator {
    public:
     Iterator();
     explicit Iterator(const Region& region);
diff --git a/cc/output/render_surface_filters.cc b/cc/base/render_surface_filters.cc
similarity index 98%
rename from cc/output/render_surface_filters.cc
rename to cc/base/render_surface_filters.cc
index efbdff3..9eea63b 100644
--- a/cc/output/render_surface_filters.cc
+++ b/cc/base/render_surface_filters.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/output/render_surface_filters.h"
+#include "cc/base/render_surface_filters.h"
 
 #include <stddef.h>
 
 #include <algorithm>
 
-#include "cc/output/filter_operation.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operation.h"
+#include "cc/base/filter_operations.h"
 #include "third_party/skia/include/core/SkImageFilter.h"
 #include "third_party/skia/include/effects/SkAlphaThresholdFilter.h"
 #include "third_party/skia/include/effects/SkBlurImageFilter.h"
diff --git a/cc/output/render_surface_filters.h b/cc/base/render_surface_filters.h
similarity index 82%
rename from cc/output/render_surface_filters.h
rename to cc/base/render_surface_filters.h
index 6882b0b5..1a5a5ec 100644
--- a/cc/output/render_surface_filters.h
+++ b/cc/base/render_surface_filters.h
@@ -2,12 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-
-#ifndef CC_OUTPUT_RENDER_SURFACE_FILTERS_H_
-#define CC_OUTPUT_RENDER_SURFACE_FILTERS_H_
+#ifndef CC_BASE_RENDER_SURFACE_FILTERS_H_
+#define CC_BASE_RENDER_SURFACE_FILTERS_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "ui/gfx/geometry/vector2d_f.h"
 
@@ -23,7 +22,7 @@
 
 class FilterOperations;
 
-class CC_EXPORT RenderSurfaceFilters {
+class CC_BASE_EXPORT RenderSurfaceFilters {
  public:
   static SkBitmap Apply(const FilterOperations& filters,
                         unsigned texture_id,
@@ -42,4 +41,4 @@
 
 }  // namespace cc
 
-#endif  // CC_OUTPUT_RENDER_SURFACE_FILTERS_H_
+#endif  // CC_BASE_RENDER_SURFACE_FILTERS_H_
diff --git a/cc/base/reverse_spiral_iterator.h b/cc/base/reverse_spiral_iterator.h
index d6c5d9e..3fef3648 100644
--- a/cc/base/reverse_spiral_iterator.h
+++ b/cc/base/reverse_spiral_iterator.h
@@ -6,7 +6,7 @@
 #define CC_BASE_REVERSE_SPIRAL_ITERATOR_H_
 
 #include "base/logging.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "cc/base/index_rect.h"
 
 namespace cc {
@@ -27,7 +27,7 @@
 //    ├───┼───┼───┼───┼───┤
 //  4 │  5│  4│  3│  2│  1│
 //    └───┴───┴───┴───┴───┘
-class CC_EXPORT ReverseSpiralIterator {
+class CC_BASE_EXPORT ReverseSpiralIterator {
  public:
   ReverseSpiralIterator();
   ReverseSpiralIterator(const IndexRect& around_index_rect,
@@ -36,6 +36,8 @@
 
   ~ReverseSpiralIterator() = default;
 
+  ReverseSpiralIterator& operator=(ReverseSpiralIterator&& other) = default;
+
   operator bool() const;
   ReverseSpiralIterator& operator++();
   int index_x() const { return index_x_; }
diff --git a/cc/base/rolling_time_delta_history.h b/cc/base/rolling_time_delta_history.h
index 61ed339..b45be0e5 100644
--- a/cc/base/rolling_time_delta_history.h
+++ b/cc/base/rolling_time_delta_history.h
@@ -12,13 +12,13 @@
 
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 
 namespace cc {
 
 // Stores a limited number of samples. When the maximum size is reached, each
 // insertion results in the deletion of the oldest remaining sample.
-class CC_EXPORT RollingTimeDeltaHistory {
+class CC_BASE_EXPORT RollingTimeDeltaHistory {
  public:
   explicit RollingTimeDeltaHistory(size_t max_size);
 
diff --git a/cc/base/rtree.h b/cc/base/rtree.h
index 31250b2..3a19c29 100644
--- a/cc/base/rtree.h
+++ b/cc/base/rtree.h
@@ -10,7 +10,7 @@
 
 #include <vector>
 
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace cc {
@@ -35,7 +35,7 @@
 //  Beckmann, N.; Kriegel, H. P.; Schneider, R.; Seeger, B. (1990).
 //  "The R*-tree: an efficient and robust access method for points and
 //  rectangles"
-class CC_EXPORT RTree {
+class CC_BASE_EXPORT RTree {
  public:
   RTree();
   ~RTree();
@@ -135,6 +135,8 @@
   size_t num_data_elements_;
   Branch root_;
   std::vector<Node> nodes_;
+
+  DISALLOW_COPY_AND_ASSIGN(RTree);
 };
 
 }  // namespace cc
diff --git a/cc/base/simple_enclosed_region.h b/cc/base/simple_enclosed_region.h
index e7bb995..51c137a 100644
--- a/cc/base/simple_enclosed_region.h
+++ b/cc/base/simple_enclosed_region.h
@@ -9,7 +9,7 @@
 
 #include <string>
 
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace cc {
@@ -19,7 +19,7 @@
 // A constant-sized approximation of a Region. The SimpleEnclosedRegion may
 // exclude points in its approximation (may have false negatives) but will never
 // include a point that would not be in the actual Region (no false positives).
-class CC_EXPORT SimpleEnclosedRegion {
+class CC_BASE_EXPORT SimpleEnclosedRegion {
  public:
   SimpleEnclosedRegion() : rect_() {}
   SimpleEnclosedRegion(const SimpleEnclosedRegion& region)
diff --git a/cc/base/spiral_iterator.h b/cc/base/spiral_iterator.h
index d30176d..af64b76 100644
--- a/cc/base/spiral_iterator.h
+++ b/cc/base/spiral_iterator.h
@@ -6,7 +6,7 @@
 #define CC_BASE_SPIRAL_ITERATOR_H_
 
 #include "base/logging.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "cc/base/index_rect.h"
 
 namespace cc {
@@ -27,7 +27,7 @@
 //    ├───┼───┼───┼───┼───┤
 //  4 │ 20│ 21│ 22│ 23│ 24│
 //    └───┴───┴───┴───┴───┘
-class CC_EXPORT SpiralIterator {
+class CC_BASE_EXPORT SpiralIterator {
  public:
   SpiralIterator();
   SpiralIterator(const IndexRect& around_index_rect,
diff --git a/cc/base/switches.h b/cc/base/switches.h
index 1bd124c..b723477b 100644
--- a/cc/base/switches.h
+++ b/cc/base/switches.h
@@ -7,7 +7,7 @@
 #ifndef CC_BASE_SWITCHES_H_
 #define CC_BASE_SWITCHES_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 
 // Since cc is used from the render process, anything that goes here also needs
 // to be added to render_process_host_impl.cc.
@@ -16,44 +16,44 @@
 namespace switches {
 
 // Switches for the renderer compositor only.
-CC_EXPORT extern const char kDisableThreadedAnimation[];
-CC_EXPORT extern const char kDisableCompositedAntialiasing[];
-CC_EXPORT extern const char kDisableMainFrameBeforeActivation[];
-CC_EXPORT extern const char kEnableCheckerImaging[];
-CC_EXPORT extern const char kEnableMainFrameBeforeActivation[];
-CC_EXPORT extern const char kBrowserControlsHideThreshold[];
-CC_EXPORT extern const char kBrowserControlsShowThreshold[];
-CC_EXPORT extern const char kSlowDownRasterScaleFactor[];
-CC_EXPORT extern const char kStrictLayerPropertyChangeChecking[];
-CC_EXPORT extern const char kEnableTileCompression[];
+CC_BASE_EXPORT extern const char kDisableThreadedAnimation[];
+CC_BASE_EXPORT extern const char kDisableCompositedAntialiasing[];
+CC_BASE_EXPORT extern const char kDisableMainFrameBeforeActivation[];
+CC_BASE_EXPORT extern const char kEnableMainFrameBeforeActivation[];
+CC_BASE_EXPORT extern const char kEnableCheckerImaging[];
+CC_BASE_EXPORT extern const char kBrowserControlsHideThreshold[];
+CC_BASE_EXPORT extern const char kBrowserControlsShowThreshold[];
+CC_BASE_EXPORT extern const char kSlowDownRasterScaleFactor[];
+CC_BASE_EXPORT extern const char kStrictLayerPropertyChangeChecking[];
+CC_BASE_EXPORT extern const char kEnableTileCompression[];
 
 // Switches for both the renderer and ui compositors.
-CC_EXPORT extern const char kEnableColorCorrectRendering[];
-CC_EXPORT extern const char kEnableGpuBenchmarking[];
-CC_EXPORT extern const char kEnableSurfaceSynchronization[];
+CC_BASE_EXPORT extern const char kEnableColorCorrectRendering[];
+CC_BASE_EXPORT extern const char kEnableGpuBenchmarking[];
+CC_BASE_EXPORT extern const char kEnableSurfaceSynchronization[];
 
 // Debug visualizations.
-CC_EXPORT extern const char kShowCompositedLayerBorders[];
-CC_EXPORT extern const char kUIShowCompositedLayerBorders[];
-CC_EXPORT extern const char kGlCompositedTextureQuadBorder[];
-CC_EXPORT extern const char kShowFPSCounter[];
-CC_EXPORT extern const char kUIShowFPSCounter[];
-CC_EXPORT extern const char kShowLayerAnimationBounds[];
-CC_EXPORT extern const char kUIShowLayerAnimationBounds[];
-CC_EXPORT extern const char kShowPropertyChangedRects[];
-CC_EXPORT extern const char kUIShowPropertyChangedRects[];
-CC_EXPORT extern const char kShowSurfaceDamageRects[];
-CC_EXPORT extern const char kUIShowSurfaceDamageRects[];
-CC_EXPORT extern const char kShowScreenSpaceRects[];
-CC_EXPORT extern const char kUIShowScreenSpaceRects[];
-CC_EXPORT extern const char kEnableLayerLists[];
-CC_EXPORT extern const char kUIEnableLayerLists[];
-CC_EXPORT extern const char kShowOverdrawFeedback[];
+CC_BASE_EXPORT extern const char kShowCompositedLayerBorders[];
+CC_BASE_EXPORT extern const char kUIShowCompositedLayerBorders[];
+CC_BASE_EXPORT extern const char kGlCompositedTextureQuadBorder[];
+CC_BASE_EXPORT extern const char kShowFPSCounter[];
+CC_BASE_EXPORT extern const char kUIShowFPSCounter[];
+CC_BASE_EXPORT extern const char kShowLayerAnimationBounds[];
+CC_BASE_EXPORT extern const char kUIShowLayerAnimationBounds[];
+CC_BASE_EXPORT extern const char kShowPropertyChangedRects[];
+CC_BASE_EXPORT extern const char kUIShowPropertyChangedRects[];
+CC_BASE_EXPORT extern const char kShowSurfaceDamageRects[];
+CC_BASE_EXPORT extern const char kUIShowSurfaceDamageRects[];
+CC_BASE_EXPORT extern const char kShowScreenSpaceRects[];
+CC_BASE_EXPORT extern const char kUIShowScreenSpaceRects[];
+CC_BASE_EXPORT extern const char kEnableLayerLists[];
+CC_BASE_EXPORT extern const char kUIEnableLayerLists[];
+CC_BASE_EXPORT extern const char kShowOverdrawFeedback[];
 
 // Unit test related.
-CC_EXPORT extern const char kCCLayerTreeTestNoTimeout[];
-CC_EXPORT extern const char kCCLayerTreeTestLongTimeout[];
-CC_EXPORT extern const char kCCRebaselinePixeltests[];
+CC_BASE_EXPORT extern const char kCCLayerTreeTestNoTimeout[];
+CC_BASE_EXPORT extern const char kCCLayerTreeTestLongTimeout[];
+CC_BASE_EXPORT extern const char kCCRebaselinePixeltests[];
 
 }  // namespace switches
 }  // namespace cc
diff --git a/cc/base/tiling_data.h b/cc/base/tiling_data.h
index 645193b5..a8b9ee7 100644
--- a/cc/base/tiling_data.h
+++ b/cc/base/tiling_data.h
@@ -8,7 +8,7 @@
 #include <utility>
 
 #include "base/logging.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 #include "cc/base/index_rect.h"
 #include "cc/base/reverse_spiral_iterator.h"
 #include "cc/base/spiral_iterator.h"
@@ -22,7 +22,7 @@
 
 namespace cc {
 
-class CC_EXPORT TilingData {
+class CC_BASE_EXPORT TilingData {
  public:
   TilingData();
   TilingData(const gfx::Size& max_texture_size,
@@ -72,7 +72,7 @@
   // Difference between TileBound's and TileBoundWithBorder's origin().
   gfx::Vector2d TextureOffset(int x_index, int y_index) const;
 
-  class CC_EXPORT BaseIterator {
+  class CC_BASE_EXPORT BaseIterator {
    public:
     operator bool() const { return index_x_ != -1 && index_y_ != -1; }
 
@@ -94,7 +94,7 @@
   };
 
   // Iterate through tiles whose bounds + optional border intersect with |rect|.
-  class CC_EXPORT Iterator : public BaseIterator {
+  class CC_BASE_EXPORT Iterator : public BaseIterator {
    public:
     Iterator();
     Iterator(const TilingData* tiling_data,
@@ -106,7 +106,7 @@
     IndexRect index_rect_;
   };
 
-  class CC_EXPORT BaseDifferenceIterator : public BaseIterator {
+  class CC_BASE_EXPORT BaseDifferenceIterator : public BaseIterator {
    protected:
     BaseDifferenceIterator();
     BaseDifferenceIterator(const TilingData* tiling_data,
@@ -121,7 +121,7 @@
 
   // Iterate through all indices whose bounds (not including borders) intersect
   // with |consider| but which also do not intersect with |ignore|.
-  class CC_EXPORT DifferenceIterator : public BaseDifferenceIterator {
+  class CC_BASE_EXPORT DifferenceIterator : public BaseDifferenceIterator {
    public:
     DifferenceIterator();
     DifferenceIterator(const TilingData* tiling_data,
@@ -133,7 +133,8 @@
   // Iterate through all indices whose bounds + border intersect with
   // |consider| but which also do not intersect with |ignore|. The iterator
   // order is a counterclockwise spiral around the given center.
-  class CC_EXPORT SpiralDifferenceIterator : public BaseDifferenceIterator {
+  class CC_BASE_EXPORT SpiralDifferenceIterator
+      : public BaseDifferenceIterator {
    public:
     SpiralDifferenceIterator();
     SpiralDifferenceIterator(const TilingData* tiling_data,
@@ -146,7 +147,7 @@
     SpiralIterator spiral_iterator_;
   };
 
-  class CC_EXPORT ReverseSpiralDifferenceIterator
+  class CC_BASE_EXPORT ReverseSpiralDifferenceIterator
       : public BaseDifferenceIterator {
    public:
     ReverseSpiralDifferenceIterator();
diff --git a/cc/base/unique_notifier.h b/cc/base/unique_notifier.h
index fc0e392d..e4fb7b55 100644
--- a/cc/base/unique_notifier.h
+++ b/cc/base/unique_notifier.h
@@ -8,7 +8,7 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/base_export.h"
 
 namespace base {
 class SequencedTaskRunner;
@@ -16,7 +16,7 @@
 
 namespace cc {
 
-class CC_EXPORT UniqueNotifier {
+class CC_BASE_EXPORT UniqueNotifier {
  public:
   // Configure this notifier to issue the |closure| notification when scheduled.
   UniqueNotifier(base::SequencedTaskRunner* task_runner,
diff --git a/cc/blink/web_display_item_list_impl.cc b/cc/blink/web_display_item_list_impl.cc
index 8dc3e064..586feeb 100644
--- a/cc/blink/web_display_item_list_impl.cc
+++ b/cc/blink/web_display_item_list_impl.cc
@@ -9,14 +9,14 @@
 
 #include <vector>
 
+#include "cc/paint/clip_display_item.h"
+#include "cc/paint/clip_path_display_item.h"
+#include "cc/paint/compositing_display_item.h"
+#include "cc/paint/drawing_display_item.h"
+#include "cc/paint/filter_display_item.h"
+#include "cc/paint/float_clip_display_item.h"
 #include "cc/paint/paint_record.h"
-#include "cc/playback/clip_display_item.h"
-#include "cc/playback/clip_path_display_item.h"
-#include "cc/playback/compositing_display_item.h"
-#include "cc/playback/drawing_display_item.h"
-#include "cc/playback/filter_display_item.h"
-#include "cc/playback/float_clip_display_item.h"
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/transform_display_item.h"
 #include "third_party/WebKit/public/platform/WebFloatRect.h"
 #include "third_party/WebKit/public/platform/WebRect.h"
 #include "third_party/skia/include/core/SkColorFilter.h"
diff --git a/cc/blink/web_display_item_list_impl.h b/cc/blink/web_display_item_list_impl.h
index ecccb63..72c2119 100644
--- a/cc/blink/web_display_item_list_impl.h
+++ b/cc/blink/web_display_item_list_impl.h
@@ -8,8 +8,8 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "cc/blink/cc_blink_export.h"
+#include "cc/paint/display_item_list.h"
 #include "cc/paint/paint_record.h"
-#include "cc/playback/display_item_list.h"
 #include "third_party/WebKit/public/platform/WebDisplayItemList.h"
 #include "third_party/WebKit/public/platform/WebVector.h"
 #include "third_party/skia/include/core/SkBlendMode.h"
diff --git a/cc/base/cc_export.h b/cc/cc_export.h
similarity index 86%
rename from cc/base/cc_export.h
rename to cc/cc_export.h
index fe0e0e3..87e3c9b 100644
--- a/cc/base/cc_export.h
+++ b/cc/cc_export.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_BASE_CC_EXPORT_H_
-#define CC_BASE_CC_EXPORT_H_
+#ifndef CC_CC_EXPORT_H_
+#define CC_CC_EXPORT_H_
 
 #if defined(COMPONENT_BUILD)
 #if defined(WIN32)
@@ -26,4 +26,4 @@
 #define CC_EXPORT
 #endif
 
-#endif  // CC_BASE_CC_EXPORT_H_
+#endif  // CC_CC_EXPORT_H_
diff --git a/cc/debug/BUILD.gn b/cc/debug/BUILD.gn
new file mode 100644
index 0000000..b1de28c
--- /dev/null
+++ b/cc/debug/BUILD.gn
@@ -0,0 +1,30 @@
+# Copyright 2017 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.
+
+import("//cc/cc.gni")
+cc_component("debug") {
+  output_name = "cc_debug"
+  sources = [
+    "debug_colors.cc",
+    "debug_colors.h",
+    "debug_export.h",
+    "layer_tree_debug_state.cc",
+    "layer_tree_debug_state.h",
+    "picture_debug_util.cc",
+    "picture_debug_util.h",
+    "rendering_stats.cc",
+    "rendering_stats.h",
+    "rendering_stats_instrumentation.cc",
+    "rendering_stats_instrumentation.h",
+    "traced_value.cc",
+    "traced_value.h",
+  ]
+  deps = [
+    "//base",
+    "//skia",
+    "//ui/gfx/codec",
+  ]
+
+  defines = [ "CC_DEBUG_IMPLEMENTATION=1" ]
+}
diff --git a/cc/debug/benchmark_instrumentation.h b/cc/debug/benchmark_instrumentation.h
index af70156e..6e8ac6b 100644
--- a/cc/debug/benchmark_instrumentation.h
+++ b/cc/debug/benchmark_instrumentation.h
@@ -6,7 +6,7 @@
 #define CC_DEBUG_BENCHMARK_INSTRUMENTATION_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/debug/rendering_stats.h"
 
 namespace cc {
diff --git a/cc/debug/debug_colors.cc b/cc/debug/debug_colors.cc
index 1590c04..db0fbd7 100644
--- a/cc/debug/debug_colors.cc
+++ b/cc/debug/debug_colors.cc
@@ -2,16 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "base/logging.h"
 #include "base/macros.h"
 
 #include "cc/debug/debug_colors.h"
 
-#include "cc/trees/layer_tree_impl.h"
-
 namespace cc {
 
-static float Scale(float width, const LayerTreeImpl* tree_impl) {
-  return width * (tree_impl ? tree_impl->device_scale_factor() : 1);
+static float Scale(float width, float device_scale_factor) {
+  return width * device_scale_factor;
 }
 
 // ======= Layer border colors =======
@@ -20,56 +19,56 @@
 SkColor DebugColors::TiledContentLayerBorderColor() {
   return SkColorSetARGB(128, 255, 128, 0);
 }
-int DebugColors::TiledContentLayerBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::TiledContentLayerBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // Image layers are olive.
 SkColor DebugColors::ImageLayerBorderColor() {
   return SkColorSetARGB(128, 128, 128, 0);
 }
-int DebugColors::ImageLayerBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::ImageLayerBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // Non-tiled content layers area green.
 SkColor DebugColors::ContentLayerBorderColor() {
   return SkColorSetARGB(128, 0, 128, 32);
 }
-int DebugColors::ContentLayerBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::ContentLayerBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // Masking layers are pale blue and wide.
 SkColor DebugColors::MaskingLayerBorderColor() {
   return SkColorSetARGB(48, 128, 255, 255);
 }
-int DebugColors::MaskingLayerBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(20, tree_impl);
+int DebugColors::MaskingLayerBorderWidth(float device_scale_factor) {
+  return Scale(20, device_scale_factor);
 }
 
 // Other container layers are yellow.
 SkColor DebugColors::ContainerLayerBorderColor() {
   return SkColorSetARGB(192, 255, 255, 0);
 }
-int DebugColors::ContainerLayerBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::ContainerLayerBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // Surface layers are a blue-ish green.
 SkColor DebugColors::SurfaceLayerBorderColor() {
   return SkColorSetARGB(128, 0, 255, 136);
 }
-int DebugColors::SurfaceLayerBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::SurfaceLayerBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // Render surfaces are blue.
 SkColor DebugColors::SurfaceBorderColor() {
   return SkColorSetARGB(100, 0, 0, 255);
 }
-int DebugColors::SurfaceBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::SurfaceBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // ======= Tile colors =======
@@ -78,64 +77,64 @@
 SkColor DebugColors::HighResTileBorderColor() {
   return SkColorSetARGB(100, 80, 200, 200);
 }
-int DebugColors::HighResTileBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(1, tree_impl);
+int DebugColors::HighResTileBorderWidth(float device_scale_factor) {
+  return Scale(1, device_scale_factor);
 }
 
 // Low-res tile borders are purple.
 SkColor DebugColors::LowResTileBorderColor() {
   return SkColorSetARGB(100, 212, 83, 192);
 }
-int DebugColors::LowResTileBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::LowResTileBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // Other high-resolution tile borders are yellow.
 SkColor DebugColors::ExtraHighResTileBorderColor() {
   return SkColorSetARGB(100, 239, 231, 20);
 }
-int DebugColors::ExtraHighResTileBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::ExtraHighResTileBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // Other low-resolution tile borders are green.
 SkColor DebugColors::ExtraLowResTileBorderColor() {
   return SkColorSetARGB(100, 93, 186, 18);
 }
-int DebugColors::ExtraLowResTileBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::ExtraLowResTileBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // Missing tile borders are dark grey.
 SkColor DebugColors::MissingTileBorderColor() {
   return SkColorSetARGB(64, 64, 64, 0);
 }
-int DebugColors::MissingTileBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(1, tree_impl);
+int DebugColors::MissingTileBorderWidth(float device_scale_factor) {
+  return Scale(1, device_scale_factor);
 }
 
 // Solid color tile borders are grey.
 SkColor DebugColors::SolidColorTileBorderColor() {
   return SkColorSetARGB(128, 128, 128, 128);
 }
-int DebugColors::SolidColorTileBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(1, tree_impl);
+int DebugColors::SolidColorTileBorderWidth(float device_scale_factor) {
+  return Scale(1, device_scale_factor);
 }
 
 // OOM tile borders are red.
 SkColor DebugColors::OOMTileBorderColor() {
   return SkColorSetARGB(100, 255, 0, 0);
 }
-int DebugColors::OOMTileBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(1, tree_impl);
+int DebugColors::OOMTileBorderWidth(float device_scale_factor) {
+  return Scale(1, device_scale_factor);
 }
 
 // Direct picture borders are chartreuse.
 SkColor DebugColors::DirectPictureBorderColor() {
   return SkColorSetARGB(255, 127, 255, 0);
 }
-int DebugColors::DirectPictureBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(1, tree_impl);
+int DebugColors::DirectPictureBorderWidth(float device_scale_factor) {
+  return Scale(1, device_scale_factor);
 }
 
 // Borders added to GL composited draw quads. This is useful to debug HW
@@ -155,8 +154,8 @@
 SkColor DebugColors::CompressedTileBorderColor() {
   return SkColorSetARGB(100, 20, 20, 240);
 }
-int DebugColors::CompressedTileBorderWidth(const LayerTreeImpl* tree_impl) {
-  return Scale(2, tree_impl);
+int DebugColors::CompressedTileBorderWidth(float device_scale_factor) {
+  return Scale(2, device_scale_factor);
 }
 
 // ======= Checkerboard colors =======
diff --git a/cc/debug/debug_colors.h b/cc/debug/debug_colors.h
index 154766fd..cdb62dc 100644
--- a/cc/debug/debug_colors.h
+++ b/cc/debug/debug_colors.h
@@ -6,61 +6,60 @@
 #define CC_DEBUG_DEBUG_COLORS_H_
 
 #include "base/macros.h"
+#include "cc/debug/debug_export.h"
 #include "third_party/skia/include/core/SkColor.h"
 
 namespace cc {
 
-class LayerTreeImpl;
-
-class DebugColors {
+class CC_DEBUG_EXPORT DebugColors {
  public:
   static SkColor TiledContentLayerBorderColor();
-  static int TiledContentLayerBorderWidth(const LayerTreeImpl* tree_impl);
+  static int TiledContentLayerBorderWidth(float device_scale_factor);
 
   static SkColor ImageLayerBorderColor();
-  static int ImageLayerBorderWidth(const LayerTreeImpl* tree_impl);
+  static int ImageLayerBorderWidth(float device_scale_factor);
 
   static SkColor ContentLayerBorderColor();
-  static int ContentLayerBorderWidth(const LayerTreeImpl* tree_impl);
+  static int ContentLayerBorderWidth(float device_scale_factor);
 
   static SkColor MaskingLayerBorderColor();
-  static int MaskingLayerBorderWidth(const LayerTreeImpl* tree_impl);
+  static int MaskingLayerBorderWidth(float device_scale_factor);
 
   static SkColor ContainerLayerBorderColor();
-  static int ContainerLayerBorderWidth(const LayerTreeImpl* tree_impl);
+  static int ContainerLayerBorderWidth(float device_scale_factor);
 
   static SkColor SurfaceLayerBorderColor();
-  static int SurfaceLayerBorderWidth(const LayerTreeImpl* tree_impl);
+  static int SurfaceLayerBorderWidth(float device_scale_factor);
 
   static SkColor SurfaceBorderColor();
-  static int SurfaceBorderWidth(const LayerTreeImpl* tree_impl);
+  static int SurfaceBorderWidth(float device_scale_factor);
 
   static SkColor HighResTileBorderColor();
-  static int HighResTileBorderWidth(const LayerTreeImpl* tree_impl);
+  static int HighResTileBorderWidth(float device_scale_factor);
 
   static SkColor LowResTileBorderColor();
-  static int LowResTileBorderWidth(const LayerTreeImpl* tree_impl);
+  static int LowResTileBorderWidth(float device_scale_factor);
 
   static SkColor ExtraHighResTileBorderColor();
-  static int ExtraHighResTileBorderWidth(const LayerTreeImpl* tree_impl);
+  static int ExtraHighResTileBorderWidth(float device_scale_factor);
 
   static SkColor ExtraLowResTileBorderColor();
-  static int ExtraLowResTileBorderWidth(const LayerTreeImpl* tree_impl);
+  static int ExtraLowResTileBorderWidth(float device_scale_factor);
 
   static SkColor MissingTileBorderColor();
-  static int MissingTileBorderWidth(const LayerTreeImpl* tree_impl);
+  static int MissingTileBorderWidth(float device_scale_factor);
 
   static SkColor SolidColorTileBorderColor();
-  static int SolidColorTileBorderWidth(const LayerTreeImpl* tree_impl);
+  static int SolidColorTileBorderWidth(float device_scale_factor);
 
   static SkColor OOMTileBorderColor();
-  static int OOMTileBorderWidth(const LayerTreeImpl* tree_impl);
+  static int OOMTileBorderWidth(float device_scale_factor);
 
   static SkColor DirectPictureBorderColor();
-  static int DirectPictureBorderWidth(const LayerTreeImpl* tree_impl);
+  static int DirectPictureBorderWidth(float device_scale_factor);
 
   static SkColor CompressedTileBorderColor();
-  static int CompressedTileBorderWidth(const LayerTreeImpl* tree_impl);
+  static int CompressedTileBorderWidth(float device_scale_factor);
 
   static SkColor DefaultCheckerboardColor();
   static SkColor EvictedTileCheckerboardColor();
diff --git a/cc/debug/debug_export.h b/cc/debug/debug_export.h
new file mode 100644
index 0000000..67d446d
--- /dev/null
+++ b/cc/debug/debug_export.h
@@ -0,0 +1,29 @@
+// Copyright 2017 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 CC_DEBUG_DEBUG_EXPORT_H_
+#define CC_DEBUG_DEBUG_EXPORT_H_
+
+#if defined(COMPONENT_BUILD)
+#if defined(WIN32)
+
+#if defined(CC_DEBUG_IMPLEMENTATION)
+#define CC_DEBUG_EXPORT __declspec(dllexport)
+#else
+#define CC_DEBUG_EXPORT __declspec(dllimport)
+#endif  // defined(CC_DEBUG_IMPLEMENTATION)
+
+#else  // defined(WIN32)
+#if defined(CC_DEBUG_IMPLEMENTATION)
+#define CC_DEBUG_EXPORT __attribute__((visibility("default")))
+#else
+#define CC_DEBUG_EXPORT
+#endif
+#endif
+
+#else  // defined(COMPONENT_BUILD)
+#define CC_DEBUG_EXPORT
+#endif
+
+#endif  // CC_DEBUG_DEBUG_EXPORT_H_
diff --git a/cc/debug/lap_timer.h b/cc/debug/lap_timer.h
index bd1ba4f..bdba8ac 100644
--- a/cc/debug/lap_timer.h
+++ b/cc/debug/lap_timer.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/debug/layer_tree_debug_state.h b/cc/debug/layer_tree_debug_state.h
index 09ac66d..45cb77c6 100644
--- a/cc/debug/layer_tree_debug_state.h
+++ b/cc/debug/layer_tree_debug_state.h
@@ -5,7 +5,7 @@
 #ifndef CC_DEBUG_LAYER_TREE_DEBUG_STATE_H_
 #define CC_DEBUG_LAYER_TREE_DEBUG_STATE_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/debug/debug_export.h"
 
 namespace cc {
 
@@ -13,7 +13,7 @@
 class LayerTreeDebugState;
 }  // namespace proto
 
-class CC_EXPORT LayerTreeDebugState {
+class CC_DEBUG_EXPORT LayerTreeDebugState {
  public:
   LayerTreeDebugState();
   LayerTreeDebugState(const LayerTreeDebugState& other);
diff --git a/cc/debug/micro_benchmark.h b/cc/debug/micro_benchmark.h
index 6703bf4..80302b7 100644
--- a/cc/debug/micro_benchmark.h
+++ b/cc/debug/micro_benchmark.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/callback.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 class SingleThreadTaskRunner;
diff --git a/cc/debug/micro_benchmark_impl.h b/cc/debug/micro_benchmark_impl.h
index 457eb4d..dbbecd8 100644
--- a/cc/debug/micro_benchmark_impl.h
+++ b/cc/debug/micro_benchmark_impl.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/callback.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 class SingleThreadTaskRunner;
diff --git a/cc/debug/picture_debug_util.h b/cc/debug/picture_debug_util.h
index 1719ea2..3c149c2 100644
--- a/cc/debug/picture_debug_util.h
+++ b/cc/debug/picture_debug_util.h
@@ -7,11 +7,13 @@
 
 #include <string>
 
+#include "cc/debug/debug_export.h"
+
 class SkPicture;
 
 namespace cc {
 
-class PictureDebugUtil {
+class CC_DEBUG_EXPORT PictureDebugUtil {
  public:
   static void SerializeAsBase64(const SkPicture* picture, std::string* output);
 };
diff --git a/cc/debug/rasterize_and_record_benchmark.cc b/cc/debug/rasterize_and_record_benchmark.cc
index 85661d4..0e13b01 100644
--- a/cc/debug/rasterize_and_record_benchmark.cc
+++ b/cc/debug/rasterize_and_record_benchmark.cc
@@ -18,8 +18,8 @@
 #include "cc/layers/content_layer_client.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/picture_layer.h"
-#include "cc/playback/display_item_list.h"
-#include "cc/playback/recording_source.h"
+#include "cc/layers/recording_source.h"
+#include "cc/paint/display_item_list.h"
 #include "cc/trees/layer_tree_host.h"
 #include "cc/trees/layer_tree_host_common.h"
 #include "skia/ext/analysis_canvas.h"
diff --git a/cc/debug/rasterize_and_record_benchmark.h b/cc/debug/rasterize_and_record_benchmark.h
index 91734a50..d4ba6a6 100644
--- a/cc/debug/rasterize_and_record_benchmark.h
+++ b/cc/debug/rasterize_and_record_benchmark.h
@@ -15,7 +15,7 @@
 #include "base/single_thread_task_runner.h"
 #include "base/time/time.h"
 #include "cc/debug/micro_benchmark_controller.h"
-#include "cc/playback/recording_source.h"
+#include "cc/layers/recording_source.h"
 
 namespace base {
 class DictionaryValue;
diff --git a/cc/debug/rendering_stats.h b/cc/debug/rendering_stats.h
index 2585639..dfbc926 100644
--- a/cc/debug/rendering_stats.h
+++ b/cc/debug/rendering_stats.h
@@ -13,14 +13,14 @@
 #include "base/time/time.h"
 #include "base/trace_event/trace_event_argument.h"
 #include "base/values.h"
-#include "cc/base/cc_export.h"
+#include "cc/debug/debug_export.h"
 #include "cc/debug/traced_value.h"
 
 namespace cc {
 
-struct CC_EXPORT RenderingStats {
+struct CC_DEBUG_EXPORT RenderingStats {
   // Stores a sequence of TimeDelta objects.
-  class CC_EXPORT TimeDeltaList {
+  class CC_DEBUG_EXPORT TimeDeltaList {
    public:
     TimeDeltaList();
     TimeDeltaList(const TimeDeltaList& other);
diff --git a/cc/debug/rendering_stats_instrumentation.h b/cc/debug/rendering_stats_instrumentation.h
index 9a588af..35a07e8 100644
--- a/cc/debug/rendering_stats_instrumentation.h
+++ b/cc/debug/rendering_stats_instrumentation.h
@@ -17,7 +17,7 @@
 
 // RenderingStatsInstrumentation is shared among threads and manages conditional
 // recording of rendering stats into a private RenderingStats instance.
-class CC_EXPORT RenderingStatsInstrumentation {
+class CC_DEBUG_EXPORT RenderingStatsInstrumentation {
  public:
   static std::unique_ptr<RenderingStatsInstrumentation> Create();
   virtual ~RenderingStatsInstrumentation();
diff --git a/cc/debug/traced_value.h b/cc/debug/traced_value.h
index 34e79a7..c5c4b0ce 100644
--- a/cc/debug/traced_value.h
+++ b/cc/debug/traced_value.h
@@ -5,6 +5,8 @@
 #ifndef CC_DEBUG_TRACED_VALUE_H_
 #define CC_DEBUG_TRACED_VALUE_H_
 
+#include "cc/debug/debug_export.h"
+
 namespace base {
 namespace trace_event {
 class TracedValue;
@@ -13,7 +15,7 @@
 
 namespace cc {
 
-class TracedValue {
+class CC_DEBUG_EXPORT TracedValue {
  public:
   static void AppendIDRef(const void* id,
                           base::trace_event::TracedValue* array);
diff --git a/cc/input/input_handler.h b/cc/input/input_handler.h
index 7e6124c..9b86409 100644
--- a/cc/input/input_handler.h
+++ b/cc/input/input_handler.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/event_listener_properties.h"
 #include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/input/scroll_state.h"
diff --git a/cc/input/layer_selection_bound.h b/cc/input/layer_selection_bound.h
index be40a562..abadc3c 100644
--- a/cc/input/layer_selection_bound.h
+++ b/cc/input/layer_selection_bound.h
@@ -5,7 +5,7 @@
 #ifndef CC_INPUT_LAYER_SELECTION_BOUND_H_
 #define CC_INPUT_LAYER_SELECTION_BOUND_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/selection.h"
 #include "ui/gfx/geometry/point.h"
 #include "ui/gfx/selection_bound.h"
diff --git a/cc/input/page_scale_animation.h b/cc/input/page_scale_animation.h
index b58f50b..9d66923e 100644
--- a/cc/input/page_scale_animation.h
+++ b/cc/input/page_scale_animation.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/geometry/cubic_bezier.h"
 #include "ui/gfx/geometry/size_f.h"
 #include "ui/gfx/geometry/vector2d.h"
diff --git a/cc/input/scroll_elasticity_helper.h b/cc/input/scroll_elasticity_helper.h
index 3ad28fb..0952bd0 100644
--- a/cc/input/scroll_elasticity_helper.h
+++ b/cc/input/scroll_elasticity_helper.h
@@ -6,7 +6,7 @@
 #define CC_INPUT_SCROLL_ELASTICITY_HELPER_H_
 
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/geometry/scroll_offset.h"
 #include "ui/gfx/geometry/vector2d_f.h"
 
diff --git a/cc/input/scroll_state.h b/cc/input/scroll_state.h
index 384a934..74823e4 100644
--- a/cc/input/scroll_state.h
+++ b/cc/input/scroll_state.h
@@ -8,7 +8,7 @@
 #include <list>
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/scroll_state_data.h"
 #include "ui/gfx/geometry/point.h"
 #include "ui/gfx/geometry/vector2d.h"
diff --git a/cc/input/scroll_state_data.h b/cc/input/scroll_state_data.h
index 9033964..f3559a8 100644
--- a/cc/input/scroll_state_data.h
+++ b/cc/input/scroll_state_data.h
@@ -9,7 +9,7 @@
 
 #include <list>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/trees/property_tree.h"
 
 namespace cc {
diff --git a/cc/input/scrollbar.h b/cc/input/scrollbar.h
index d159dba7..e0302bf 100644
--- a/cc/input/scrollbar.h
+++ b/cc/input/scrollbar.h
@@ -5,7 +5,7 @@
 #ifndef CC_INPUT_SCROLLBAR_H_
 #define CC_INPUT_SCROLLBAR_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/paint/paint_canvas.h"
 #include "ui/gfx/geometry/point.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/cc/input/scrollbar_animation_controller.h b/cc/input/scrollbar_animation_controller.h
index 02f8e97..e00d6ac 100644
--- a/cc/input/scrollbar_animation_controller.h
+++ b/cc/input/scrollbar_animation_controller.h
@@ -8,7 +8,7 @@
 #include "base/cancelable_callback.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/single_scrollbar_animation_controller_thinning.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/layers/scrollbar_layer_impl_base.h"
diff --git a/cc/input/selection.h b/cc/input/selection.h
index bbd189a..1b95ec9 100644
--- a/cc/input/selection.h
+++ b/cc/input/selection.h
@@ -5,7 +5,7 @@
 #ifndef CC_INPUT_SELECTION_H_
 #define CC_INPUT_SELECTION_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/input/single_scrollbar_animation_controller_thinning.h b/cc/input/single_scrollbar_animation_controller_thinning.h
index 1437ccde..32ba069 100644
--- a/cc/input/single_scrollbar_animation_controller_thinning.h
+++ b/cc/input/single_scrollbar_animation_controller_thinning.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/scrollbar.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/layers/scrollbar_layer_impl_base.h"
diff --git a/cc/ipc/cc_param_traits.cc b/cc/ipc/cc_param_traits.cc
index 216af8f2..3b04eb6 100644
--- a/cc/ipc/cc_param_traits.cc
+++ b/cc/ipc/cc_param_traits.cc
@@ -10,8 +10,8 @@
 #include "base/numerics/safe_conversions.h"
 #include "base/time/time.h"
 #include "base/unguessable_token.h"
+#include "cc/base/filter_operations.h"
 #include "cc/output/compositor_frame.h"
-#include "cc/output/filter_operations.h"
 #include "cc/quads/debug_border_draw_quad.h"
 #include "cc/quads/draw_quad.h"
 #include "cc/quads/largest_draw_quad.h"
diff --git a/cc/ipc/cc_param_traits.h b/cc/ipc/cc_param_traits.h
index 292c1f53..14e3dba 100644
--- a/cc/ipc/cc_param_traits.h
+++ b/cc/ipc/cc_param_traits.h
@@ -7,10 +7,10 @@
 #ifndef CC_IPC_CC_PARAM_TRAITS_H_
 #define CC_IPC_CC_PARAM_TRAITS_H_
 
+#include "cc/base/filter_operation.h"
 #include "cc/ipc/cc_ipc_export.h"
 #include "cc/ipc/cc_param_traits_macros.h"
 #include "cc/output/compositor_frame.h"
-#include "cc/output/filter_operation.h"
 #include "cc/quads/draw_quad.h"
 #include "cc/quads/stream_video_draw_quad.h"
 #include "cc/quads/texture_draw_quad.h"
diff --git a/cc/ipc/cc_param_traits_macros.h b/cc/ipc/cc_param_traits_macros.h
index 7f7d35f9..d2d5ef7 100644
--- a/cc/ipc/cc_param_traits_macros.h
+++ b/cc/ipc/cc_param_traits_macros.h
@@ -5,9 +5,9 @@
 #ifndef CC_IPC_CC_PARAM_TRAITS_MACROS_H_
 #define CC_IPC_CC_PARAM_TRAITS_MACROS_H_
 
+#include "cc/base/filter_operation.h"
 #include "cc/output/begin_frame_args.h"
 #include "cc/output/compositor_frame.h"
-#include "cc/output/filter_operation.h"
 #include "cc/quads/debug_border_draw_quad.h"
 #include "cc/quads/draw_quad.h"
 #include "cc/quads/render_pass.h"
diff --git a/cc/ipc/filter_operation.mojom b/cc/ipc/filter_operation.mojom
index 9afefd91a..06bca2a 100644
--- a/cc/ipc/filter_operation.mojom
+++ b/cc/ipc/filter_operation.mojom
@@ -26,7 +26,7 @@
   FILTER_TYPE_LAST = ALPHA_THRESHOLD
 };
 
-// See cc/output/filter_operation.h.
+// See cc/base/filter_operation.h.
 struct FilterOperation {
   FilterType type;
   float amount;
diff --git a/cc/ipc/filter_operation.typemap b/cc/ipc/filter_operation.typemap
index 1acfef0..b892dc3 100644
--- a/cc/ipc/filter_operation.typemap
+++ b/cc/ipc/filter_operation.typemap
@@ -3,6 +3,6 @@
 # found in the LICENSE file.
 
 mojom = "//cc/ipc/filter_operation.mojom"
-public_headers = [ "//cc/output/filter_operation.h" ]
+public_headers = [ "//cc/base/filter_operation.h" ]
 traits_headers = [ "//cc/ipc/filter_operation_struct_traits.h" ]
 type_mappings = [ "cc.mojom.FilterOperation=cc::FilterOperation" ]
diff --git a/cc/ipc/filter_operation_struct_traits.h b/cc/ipc/filter_operation_struct_traits.h
index 9687d96..6ec2a669 100644
--- a/cc/ipc/filter_operation_struct_traits.h
+++ b/cc/ipc/filter_operation_struct_traits.h
@@ -5,8 +5,8 @@
 #ifndef CC_IPC_FILTER_OPERATION_STRUCT_TRAITS_H_
 #define CC_IPC_FILTER_OPERATION_STRUCT_TRAITS_H_
 
+#include "cc/base/filter_operation.h"
 #include "cc/ipc/filter_operation.mojom-shared.h"
-#include "cc/output/filter_operation.h"
 #include "skia/public/interfaces/image_filter_struct_traits.h"
 
 namespace mojo {
diff --git a/cc/ipc/filter_operations.mojom b/cc/ipc/filter_operations.mojom
index 9e94216a..6e62890f 100644
--- a/cc/ipc/filter_operations.mojom
+++ b/cc/ipc/filter_operations.mojom
@@ -6,7 +6,7 @@
 
 import "cc/ipc/filter_operation.mojom";
 
-// See cc/output/filter_operations.h.
+// See cc/base/filter_operations.h.
 struct FilterOperations {
   array<cc.mojom.FilterOperation> operations;
 };
diff --git a/cc/ipc/filter_operations.typemap b/cc/ipc/filter_operations.typemap
index 5c0cc0e..e675a1a 100644
--- a/cc/ipc/filter_operations.typemap
+++ b/cc/ipc/filter_operations.typemap
@@ -3,6 +3,6 @@
 # found in the LICENSE file.
 
 mojom = "//cc/ipc/filter_operations.mojom"
-public_headers = [ "//cc/output/filter_operations.h" ]
+public_headers = [ "//cc/base/filter_operations.h" ]
 traits_headers = [ "//cc/ipc/filter_operations_struct_traits.h" ]
 type_mappings = [ "cc.mojom.FilterOperations=cc::FilterOperations" ]
diff --git a/cc/ipc/filter_operations_struct_traits.h b/cc/ipc/filter_operations_struct_traits.h
index 4d188cb..5e77f81 100644
--- a/cc/ipc/filter_operations_struct_traits.h
+++ b/cc/ipc/filter_operations_struct_traits.h
@@ -5,8 +5,8 @@
 #ifndef CC_IPC_FILTER_OPERATIONS_STRUCT_TRAITS_H_
 #define CC_IPC_FILTER_OPERATIONS_STRUCT_TRAITS_H_
 
+#include "cc/base/filter_operations.h"
 #include "cc/ipc/filter_operations.mojom-shared.h"
-#include "cc/output/filter_operations.h"
 
 namespace mojo {
 
diff --git a/cc/layers/content_layer_client.h b/cc/layers/content_layer_client.h
index 26602805..c5d005f 100644
--- a/cc/layers/content_layer_client.h
+++ b/cc/layers/content_layer_client.h
@@ -7,8 +7,8 @@
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/display_item_list.h"
+#include "cc/cc_export.h"
+#include "cc/paint/display_item_list.h"
 
 namespace gfx {
 class Rect;
diff --git a/cc/layers/heads_up_display_layer.h b/cc/layers/heads_up_display_layer.h
index 2cde7e8..4cb2946 100644
--- a/cc/layers/heads_up_display_layer.h
+++ b/cc/layers/heads_up_display_layer.h
@@ -9,7 +9,7 @@
 #include <string>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "third_party/skia/include/core/SkTypeface.h"
diff --git a/cc/layers/heads_up_display_layer_impl.h b/cc/layers/heads_up_display_layer_impl.h
index 68175009..c7f0577 100644
--- a/cc/layers/heads_up_display_layer_impl.h
+++ b/cc/layers/heads_up_display_layer_impl.h
@@ -12,7 +12,7 @@
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/debug/debug_rect_history.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/resources/memory_history.h"
diff --git a/cc/layers/layer.h b/cc/layers/layer.h
index d21cc8c..0b6b8b4 100644
--- a/cc/layers/layer.h
+++ b/cc/layers/layer.h
@@ -17,14 +17,14 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/observer_list.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/region.h"
+#include "cc/cc_export.h"
 #include "cc/debug/micro_benchmark.h"
 #include "cc/input/input_handler.h"
 #include "cc/layers/layer_collections.h"
 #include "cc/layers/layer_position_constraint.h"
 #include "cc/layers/paint_properties.h"
-#include "cc/output/filter_operations.h"
 #include "cc/paint/paint_record.h"
 #include "cc/trees/element_id.h"
 #include "cc/trees/mutator_host_client.h"
diff --git a/cc/layers/layer_client.h b/cc/layers/layer_client.h
index 165c4367..85c9772 100644
--- a/cc/layers/layer_client.h
+++ b/cc/layers/layer_client.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 namespace trace_event {
diff --git a/cc/layers/layer_collections.h b/cc/layers/layer_collections.h
index 23c6c10..c7a2b74 100644
--- a/cc/layers/layer_collections.h
+++ b/cc/layers/layer_collections.h
@@ -10,7 +10,7 @@
 #include <vector>
 
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 class Layer;
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index 1a024ea4..d6ebeec9 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -192,20 +192,23 @@
 }
 
 void LayerImpl::GetDebugBorderProperties(SkColor* color, float* width) const {
+  float device_scale_factor =
+      layer_tree_impl() ? layer_tree_impl()->device_scale_factor() : 1;
+
   if (draws_content_) {
     *color = DebugColors::ContentLayerBorderColor();
-    *width = DebugColors::ContentLayerBorderWidth(layer_tree_impl());
+    *width = DebugColors::ContentLayerBorderWidth(device_scale_factor);
     return;
   }
 
   if (masks_to_bounds_) {
     *color = DebugColors::MaskingLayerBorderColor();
-    *width = DebugColors::MaskingLayerBorderWidth(layer_tree_impl());
+    *width = DebugColors::MaskingLayerBorderWidth(device_scale_factor);
     return;
   }
 
   *color = DebugColors::ContainerLayerBorderColor();
-  *width = DebugColors::ContainerLayerBorderWidth(layer_tree_impl());
+  *width = DebugColors::ContainerLayerBorderWidth(device_scale_factor);
 }
 
 void LayerImpl::AppendDebugBorderQuad(
diff --git a/cc/layers/layer_impl.h b/cc/layers/layer_impl.h
index d107566..ee1b3ae0 100644
--- a/cc/layers/layer_impl.h
+++ b/cc/layers/layer_impl.h
@@ -18,9 +18,9 @@
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "base/values.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/region.h"
 #include "cc/base/synced_property.h"
+#include "cc/cc_export.h"
 #include "cc/input/input_handler.h"
 #include "cc/layers/draw_properties.h"
 #include "cc/layers/layer_collections.h"
diff --git a/cc/layers/layer_impl_test_properties.h b/cc/layers/layer_impl_test_properties.h
index 6ca6d75..2035bbd 100644
--- a/cc/layers/layer_impl_test_properties.h
+++ b/cc/layers/layer_impl_test_properties.h
@@ -9,10 +9,10 @@
 #include <vector>
 
 #include "base/memory/ptr_util.h"
+#include "cc/base/filter_operations.h"
 #include "cc/layers/layer_collections.h"
 #include "cc/layers/layer_position_constraint.h"
 #include "cc/layers/layer_sticky_position_constraint.h"
-#include "cc/output/filter_operations.h"
 #include "third_party/skia/include/core/SkBlendMode.h"
 #include "ui/gfx/geometry/point3_f.h"
 #include "ui/gfx/transform.h"
diff --git a/cc/layers/layer_impl_unittest.cc b/cc/layers/layer_impl_unittest.cc
index b51fae00..9001b64 100644
--- a/cc/layers/layer_impl_unittest.cc
+++ b/cc/layers/layer_impl_unittest.cc
@@ -4,10 +4,10 @@
 
 #include "cc/layers/layer_impl.h"
 
+#include "cc/base/filter_operation.h"
+#include "cc/base/filter_operations.h"
 #include "cc/layers/painted_scrollbar_layer_impl.h"
 #include "cc/layers/solid_color_scrollbar_layer_impl.h"
-#include "cc/output/filter_operation.h"
-#include "cc/output/filter_operations.h"
 #include "cc/test/animation_test_common.h"
 #include "cc/test/fake_compositor_frame_sink.h"
 #include "cc/test/fake_impl_task_runner_provider.h"
diff --git a/cc/layers/layer_iterator.h b/cc/layers/layer_iterator.h
index 9eb8224..4a6cbb3a 100644
--- a/cc/layers/layer_iterator.h
+++ b/cc/layers/layer_iterator.h
@@ -7,7 +7,7 @@
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/trees/layer_tree_host_common.h"
 
diff --git a/cc/layers/layer_list_iterator.h b/cc/layers/layer_list_iterator.h
index bde0ffb..ff9f186e 100644
--- a/cc/layers/layer_list_iterator.h
+++ b/cc/layers/layer_list_iterator.h
@@ -8,7 +8,7 @@
 #include <stdlib.h>
 #include <vector>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/layers/layer_position_constraint.h b/cc/layers/layer_position_constraint.h
index 9a57513..9fef26b 100644
--- a/cc/layers/layer_position_constraint.h
+++ b/cc/layers/layer_position_constraint.h
@@ -5,7 +5,7 @@
 #ifndef CC_LAYERS_LAYER_POSITION_CONSTRAINT_H_
 #define CC_LAYERS_LAYER_POSITION_CONSTRAINT_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/layers/layer_sticky_position_constraint.h b/cc/layers/layer_sticky_position_constraint.h
index 3f43bc7..2082a2b2 100644
--- a/cc/layers/layer_sticky_position_constraint.h
+++ b/cc/layers/layer_sticky_position_constraint.h
@@ -5,7 +5,7 @@
 #ifndef CC_LAYERS_LAYER_STICKY_POSITION_CONSTRAINT_H_
 #define CC_LAYERS_LAYER_STICKY_POSITION_CONSTRAINT_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 #include "ui/gfx/geometry/rect.h"
 
diff --git a/cc/layers/layer_utils.h b/cc/layers/layer_utils.h
index bef37f4..e4a2088 100644
--- a/cc/layers/layer_utils.h
+++ b/cc/layers/layer_utils.h
@@ -5,7 +5,7 @@
 #ifndef CC_LAYERS_LAYER_UTILS_H_
 #define CC_LAYERS_LAYER_UTILS_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace gfx {
 class BoxF;
diff --git a/cc/layers/nine_patch_layer.h b/cc/layers/nine_patch_layer.h
index cf9edf99..ca9fb92 100644
--- a/cc/layers/nine_patch_layer.h
+++ b/cc/layers/nine_patch_layer.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/ui_resource_layer.h"
 #include "cc/resources/ui_resource_client.h"
diff --git a/cc/layers/nine_patch_layer_impl.h b/cc/layers/nine_patch_layer_impl.h
index 69b039a5..1422d967 100644
--- a/cc/layers/nine_patch_layer_impl.h
+++ b/cc/layers/nine_patch_layer_impl.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/layers/ui_resource_layer_impl.h"
 #include "cc/quads/nine_patch_generator.h"
diff --git a/cc/layers/painted_overlay_scrollbar_layer.h b/cc/layers/painted_overlay_scrollbar_layer.h
index 6888bec7..f7cd66e 100644
--- a/cc/layers/painted_overlay_scrollbar_layer.h
+++ b/cc/layers/painted_overlay_scrollbar_layer.h
@@ -6,7 +6,7 @@
 #define CC_LAYERS_PAINTED_OVERLAY_SCROLLBAR_LAYER_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/scrollbar.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/scrollbar_layer_interface.h"
diff --git a/cc/layers/painted_overlay_scrollbar_layer_impl.h b/cc/layers/painted_overlay_scrollbar_layer_impl.h
index fef3120..5185894 100644
--- a/cc/layers/painted_overlay_scrollbar_layer_impl.h
+++ b/cc/layers/painted_overlay_scrollbar_layer_impl.h
@@ -6,7 +6,7 @@
 #define CC_LAYERS_PAINTED_OVERLAY_SCROLLBAR_LAYER_IMPL_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/scrollbar.h"
 #include "cc/layers/scrollbar_layer_impl_base.h"
 #include "cc/quads/nine_patch_generator.h"
diff --git a/cc/layers/painted_scrollbar_layer.h b/cc/layers/painted_scrollbar_layer.h
index 8446a390..8e1884f 100644
--- a/cc/layers/painted_scrollbar_layer.h
+++ b/cc/layers/painted_scrollbar_layer.h
@@ -6,7 +6,7 @@
 #define CC_LAYERS_PAINTED_SCROLLBAR_LAYER_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/scrollbar.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/scrollbar_layer_interface.h"
diff --git a/cc/layers/painted_scrollbar_layer_impl.h b/cc/layers/painted_scrollbar_layer_impl.h
index 4e12371..9ff7e89 100644
--- a/cc/layers/painted_scrollbar_layer_impl.h
+++ b/cc/layers/painted_scrollbar_layer_impl.h
@@ -6,7 +6,7 @@
 #define CC_LAYERS_PAINTED_SCROLLBAR_LAYER_IMPL_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/scrollbar.h"
 #include "cc/layers/scrollbar_layer_impl_base.h"
 #include "cc/resources/ui_resource_client.h"
diff --git a/cc/layers/picture_image_layer.cc b/cc/layers/picture_image_layer.cc
index 0e909d6b..b595f93 100644
--- a/cc/layers/picture_image_layer.cc
+++ b/cc/layers/picture_image_layer.cc
@@ -7,9 +7,9 @@
 #include <stddef.h>
 
 #include "cc/layers/picture_layer_impl.h"
+#include "cc/paint/drawing_display_item.h"
 #include "cc/paint/paint_canvas.h"
 #include "cc/paint/paint_recorder.h"
-#include "cc/playback/drawing_display_item.h"
 #include "cc/trees/layer_tree_host.h"
 #include "cc/trees/layer_tree_settings.h"
 
diff --git a/cc/layers/picture_image_layer.h b/cc/layers/picture_image_layer.h
index 7c27fd89..d07e6ca 100644
--- a/cc/layers/picture_image_layer.h
+++ b/cc/layers/picture_image_layer.h
@@ -8,7 +8,7 @@
 #include <stddef.h>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/content_layer_client.h"
 #include "cc/layers/picture_layer.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
diff --git a/cc/layers/picture_image_layer_unittest.cc b/cc/layers/picture_image_layer_unittest.cc
index 0a9f7a1..8701d316 100644
--- a/cc/layers/picture_image_layer_unittest.cc
+++ b/cc/layers/picture_image_layer_unittest.cc
@@ -5,7 +5,7 @@
 #include "cc/layers/picture_image_layer.h"
 
 #include "cc/animation/animation_host.h"
-#include "cc/playback/display_item.h"
+#include "cc/paint/display_item.h"
 #include "cc/test/fake_layer_tree_host.h"
 #include "cc/test/skia_common.h"
 #include "cc/test/test_task_graph_runner.h"
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc
index 04cc395..c9786e7 100644
--- a/cc/layers/picture_layer.cc
+++ b/cc/layers/picture_layer.cc
@@ -8,8 +8,8 @@
 #include "base/trace_event/trace_event.h"
 #include "cc/layers/content_layer_client.h"
 #include "cc/layers/picture_layer_impl.h"
+#include "cc/layers/recording_source.h"
 #include "cc/paint/paint_record.h"
-#include "cc/playback/recording_source.h"
 #include "cc/trees/layer_tree_host.h"
 #include "cc/trees/layer_tree_impl.h"
 #include "ui/gfx/geometry/rect_conversions.h"
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index f112497..2848810 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -201,6 +201,8 @@
     return;
   }
 
+  float device_scale_factor =
+      layer_tree_impl() ? layer_tree_impl()->device_scale_factor() : 1;
   float max_contents_scale = MaximumTilingContentsScale();
   PopulateScaledSharedQuadState(shared_quad_state, max_contents_scale,
                                 max_contents_scale);
@@ -213,7 +215,7 @@
     AppendDebugBorderQuad(
         render_pass, shared_quad_state->quad_layer_bounds, shared_quad_state,
         append_quads_data, DebugColors::DirectPictureBorderColor(),
-        DebugColors::DirectPictureBorderWidth(layer_tree_impl()));
+        DebugColors::DirectPictureBorderWidth(device_scale_factor));
 
     gfx::Rect geometry_rect = shared_quad_state->visible_quad_layer_rect;
     gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect();
@@ -260,29 +262,29 @@
         TileDrawInfo::Mode mode = iter->draw_info().mode();
         if (mode == TileDrawInfo::SOLID_COLOR_MODE) {
           color = DebugColors::SolidColorTileBorderColor();
-          width = DebugColors::SolidColorTileBorderWidth(layer_tree_impl());
+          width = DebugColors::SolidColorTileBorderWidth(device_scale_factor);
         } else if (mode == TileDrawInfo::OOM_MODE) {
           color = DebugColors::OOMTileBorderColor();
-          width = DebugColors::OOMTileBorderWidth(layer_tree_impl());
+          width = DebugColors::OOMTileBorderWidth(device_scale_factor);
         } else if (iter->draw_info().has_compressed_resource()) {
           color = DebugColors::CompressedTileBorderColor();
-          width = DebugColors::CompressedTileBorderWidth(layer_tree_impl());
+          width = DebugColors::CompressedTileBorderWidth(device_scale_factor);
         } else if (iter.resolution() == HIGH_RESOLUTION) {
           color = DebugColors::HighResTileBorderColor();
-          width = DebugColors::HighResTileBorderWidth(layer_tree_impl());
+          width = DebugColors::HighResTileBorderWidth(device_scale_factor);
         } else if (iter.resolution() == LOW_RESOLUTION) {
           color = DebugColors::LowResTileBorderColor();
-          width = DebugColors::LowResTileBorderWidth(layer_tree_impl());
+          width = DebugColors::LowResTileBorderWidth(device_scale_factor);
         } else if (iter->contents_scale() > max_contents_scale) {
           color = DebugColors::ExtraHighResTileBorderColor();
-          width = DebugColors::ExtraHighResTileBorderWidth(layer_tree_impl());
+          width = DebugColors::ExtraHighResTileBorderWidth(device_scale_factor);
         } else {
           color = DebugColors::ExtraLowResTileBorderColor();
-          width = DebugColors::ExtraLowResTileBorderWidth(layer_tree_impl());
+          width = DebugColors::ExtraLowResTileBorderWidth(device_scale_factor);
         }
       } else {
         color = DebugColors::MissingTileBorderColor();
-        width = DebugColors::MissingTileBorderWidth(layer_tree_impl());
+        width = DebugColors::MissingTileBorderWidth(device_scale_factor);
       }
 
       DebugBorderDrawQuad* debug_border_quad =
@@ -1268,12 +1270,15 @@
 void PictureLayerImpl::GetDebugBorderProperties(
     SkColor* color,
     float* width) const {
+  float device_scale_factor =
+      layer_tree_impl() ? layer_tree_impl()->device_scale_factor() : 1;
+
   if (is_directly_composited_image_) {
     *color = DebugColors::ImageLayerBorderColor();
-    *width = DebugColors::ImageLayerBorderWidth(layer_tree_impl());
+    *width = DebugColors::ImageLayerBorderWidth(device_scale_factor);
   } else {
     *color = DebugColors::TiledContentLayerBorderColor();
-    *width = DebugColors::TiledContentLayerBorderWidth(layer_tree_impl());
+    *width = DebugColors::TiledContentLayerBorderWidth(device_scale_factor);
   }
 }
 
diff --git a/cc/layers/picture_layer_impl.h b/cc/layers/picture_layer_impl.h
index 93a703e0..9380b27 100644
--- a/cc/layers/picture_layer_impl.h
+++ b/cc/layers/picture_layer_impl.h
@@ -13,10 +13,10 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/layer_impl.h"
-#include "cc/playback/image_id.h"
+#include "cc/paint/image_id.h"
 #include "cc/tiles/picture_layer_tiling.h"
 #include "cc/tiles/picture_layer_tiling_set.h"
 #include "cc/tiles/tiling_set_eviction_queue.h"
diff --git a/cc/playback/recording_source.cc b/cc/layers/recording_source.cc
similarity index 97%
rename from cc/playback/recording_source.cc
rename to cc/layers/recording_source.cc
index abb7b0af..9b1efbd7 100644
--- a/cc/playback/recording_source.cc
+++ b/cc/layers/recording_source.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/recording_source.h"
+#include "cc/layers/recording_source.h"
 
 #include <stdint.h>
 
@@ -11,8 +11,8 @@
 #include "base/numerics/safe_math.h"
 #include "cc/base/region.h"
 #include "cc/layers/content_layer_client.h"
-#include "cc/playback/display_item_list.h"
-#include "cc/playback/raster_source.h"
+#include "cc/paint/display_item_list.h"
+#include "cc/raster/raster_source.h"
 #include "skia/ext/analysis_canvas.h"
 
 namespace {
diff --git a/cc/playback/recording_source.h b/cc/layers/recording_source.h
similarity index 94%
rename from cc/playback/recording_source.h
rename to cc/layers/recording_source.h
index 802aaf6..dadb0e77 100644
--- a/cc/playback/recording_source.h
+++ b/cc/layers/recording_source.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_RECORDING_SOURCE_H_
-#define CC_PLAYBACK_RECORDING_SOURCE_H_
+#ifndef CC_LAYERS_RECORDING_SOURCE_H_
+#define CC_LAYERS_RECORDING_SOURCE_H_
 
 #include <stddef.h>
 
@@ -11,8 +11,8 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/invalidation_region.h"
+#include "cc/cc_export.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/size.h"
@@ -90,4 +90,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_RECORDING_SOURCE_H_
+#endif  // CC_LAYERS_RECORDING_SOURCE_H_
diff --git a/cc/playback/recording_source_unittest.cc b/cc/layers/recording_source_unittest.cc
similarity index 99%
rename from cc/playback/recording_source_unittest.cc
rename to cc/layers/recording_source_unittest.cc
index 2cbe3c8..6de3854 100644
--- a/cc/playback/recording_source_unittest.cc
+++ b/cc/layers/recording_source_unittest.cc
@@ -6,7 +6,7 @@
 
 #include "base/memory/ptr_util.h"
 #include "cc/base/region.h"
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 #include "cc/test/fake_content_layer_client.h"
 #include "cc/test/fake_recording_source.h"
 #include "cc/test/skia_common.h"
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc
index f67b6d1b..cd7f05a 100644
--- a/cc/layers/render_surface_impl.cc
+++ b/cc/layers/render_surface_impl.cc
@@ -10,10 +10,10 @@
 
 #include "base/logging.h"
 #include "base/strings/stringprintf.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/math_util.h"
 #include "cc/debug/debug_colors.h"
 #include "cc/layers/layer_impl.h"
-#include "cc/output/filter_operations.h"
 #include "cc/quads/debug_border_draw_quad.h"
 #include "cc/quads/render_pass.h"
 #include "cc/quads/render_pass_draw_quad.h"
@@ -113,7 +113,8 @@
 }
 
 float RenderSurfaceImpl::GetDebugBorderWidth() const {
-  return DebugColors::SurfaceBorderWidth(layer_tree_impl_);
+  return DebugColors::SurfaceBorderWidth(
+      layer_tree_impl_ ? layer_tree_impl_->device_scale_factor() : 1);
 }
 
 LayerImpl* RenderSurfaceImpl::MaskLayer() {
diff --git a/cc/layers/render_surface_impl.h b/cc/layers/render_surface_impl.h
index 547e0fcf..40e15f13 100644
--- a/cc/layers/render_surface_impl.h
+++ b/cc/layers/render_surface_impl.h
@@ -12,7 +12,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_collections.h"
 #include "cc/quads/render_pass.h"
 #include "cc/quads/shared_quad_state.h"
diff --git a/cc/layers/scrollbar_layer_impl_base.h b/cc/layers/scrollbar_layer_impl_base.h
index 7ec930a2..05c2891 100644
--- a/cc/layers/scrollbar_layer_impl_base.h
+++ b/cc/layers/scrollbar_layer_impl_base.h
@@ -6,7 +6,7 @@
 #define CC_LAYERS_SCROLLBAR_LAYER_IMPL_BASE_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/scrollbar.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/layer_impl.h"
diff --git a/cc/layers/scrollbar_layer_interface.h b/cc/layers/scrollbar_layer_interface.h
index acb7392..30c335b 100644
--- a/cc/layers/scrollbar_layer_interface.h
+++ b/cc/layers/scrollbar_layer_interface.h
@@ -6,7 +6,7 @@
 #define CC_LAYERS_SCROLLBAR_LAYER_INTERFACE_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/scrollbar.h"
 
 namespace cc {
diff --git a/cc/layers/scrollbar_theme_painter.h b/cc/layers/scrollbar_theme_painter.h
index 8f3e68d..2733f44 100644
--- a/cc/layers/scrollbar_theme_painter.h
+++ b/cc/layers/scrollbar_theme_painter.h
@@ -5,7 +5,7 @@
 #ifndef CC_LAYERS_SCROLLBAR_THEME_PAINTER_H_
 #define CC_LAYERS_SCROLLBAR_THEME_PAINTER_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 class SkCanvas;
 
diff --git a/cc/layers/solid_color_layer.h b/cc/layers/solid_color_layer.h
index 66a6ad8e..653dd8a 100644
--- a/cc/layers/solid_color_layer.h
+++ b/cc/layers/solid_color_layer.h
@@ -7,7 +7,7 @@
 #define CC_LAYERS_SOLID_COLOR_LAYER_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 
 namespace cc {
diff --git a/cc/layers/solid_color_layer_impl.h b/cc/layers/solid_color_layer_impl.h
index 1f6aaf5a..ed0b2de0 100644
--- a/cc/layers/solid_color_layer_impl.h
+++ b/cc/layers/solid_color_layer_impl.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_impl.h"
 
 namespace cc {
diff --git a/cc/layers/solid_color_scrollbar_layer.h b/cc/layers/solid_color_scrollbar_layer.h
index f29117a..319674c 100644
--- a/cc/layers/solid_color_scrollbar_layer.h
+++ b/cc/layers/solid_color_scrollbar_layer.h
@@ -6,7 +6,7 @@
 #define CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/scrollbar_layer_interface.h"
 
diff --git a/cc/layers/solid_color_scrollbar_layer_impl.h b/cc/layers/solid_color_scrollbar_layer_impl.h
index a7b776e..1306391 100644
--- a/cc/layers/solid_color_scrollbar_layer_impl.h
+++ b/cc/layers/solid_color_scrollbar_layer_impl.h
@@ -5,7 +5,7 @@
 #ifndef CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_IMPL_H_
 #define CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_IMPL_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/scrollbar_layer_impl_base.h"
 
 namespace cc {
diff --git a/cc/layers/surface_layer.h b/cc/layers/surface_layer.h
index ed8289b..56f8d61 100644
--- a/cc/layers/surface_layer.h
+++ b/cc/layers/surface_layer.h
@@ -6,7 +6,7 @@
 #define CC_LAYERS_SURFACE_LAYER_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "cc/surfaces/surface_info.h"
 #include "cc/surfaces/surface_reference_factory.h"
diff --git a/cc/layers/surface_layer_impl.cc b/cc/layers/surface_layer_impl.cc
index 1e07256..167cd71 100644
--- a/cc/layers/surface_layer_impl.cc
+++ b/cc/layers/surface_layer_impl.cc
@@ -123,7 +123,8 @@
 void SurfaceLayerImpl::GetDebugBorderProperties(SkColor* color,
                                                 float* width) const {
   *color = DebugColors::SurfaceLayerBorderColor();
-  *width = DebugColors::SurfaceLayerBorderWidth(layer_tree_impl());
+  *width = DebugColors::SurfaceLayerBorderWidth(
+      layer_tree_impl() ? layer_tree_impl()->device_scale_factor() : 1);
 }
 
 void SurfaceLayerImpl::AppendRainbowDebugBorder(RenderPass* render_pass) {
diff --git a/cc/layers/surface_layer_impl.h b/cc/layers/surface_layer_impl.h
index a8523cdc..a5bb8c5 100644
--- a/cc/layers/surface_layer_impl.h
+++ b/cc/layers/surface_layer_impl.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/quads/surface_draw_quad.h"
 #include "cc/surfaces/surface_id.h"
diff --git a/cc/layers/texture_layer.h b/cc/layers/texture_layer.h
index 1b42e97..05f7367f 100644
--- a/cc/layers/texture_layer.h
+++ b/cc/layers/texture_layer.h
@@ -11,7 +11,7 @@
 #include "base/macros.h"
 #include "base/synchronization/lock.h"
 #include "base/threading/thread_checker.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "cc/resources/texture_mailbox.h"
 
diff --git a/cc/layers/texture_layer_impl.h b/cc/layers/texture_layer_impl.h
index 2fc7cd3..035463bc 100644
--- a/cc/layers/texture_layer_impl.h
+++ b/cc/layers/texture_layer_impl.h
@@ -10,7 +10,7 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_impl.h"
 
 namespace cc {
diff --git a/cc/layers/ui_resource_layer.h b/cc/layers/ui_resource_layer.h
index 0dbe6d0..57d2f03 100644
--- a/cc/layers/ui_resource_layer.h
+++ b/cc/layers/ui_resource_layer.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "cc/resources/ui_resource_client.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/cc/layers/ui_resource_layer_impl.h b/cc/layers/ui_resource_layer_impl.h
index 36bcdd5..e7d8b6f 100644
--- a/cc/layers/ui_resource_layer_impl.h
+++ b/cc/layers/ui_resource_layer_impl.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/resources/resource_provider.h"
 #include "cc/resources/ui_resource_client.h"
diff --git a/cc/layers/video_frame_provider.h b/cc/layers/video_frame_provider.h
index a6789c1..e610d4d 100644
--- a/cc/layers/video_frame_provider.h
+++ b/cc/layers/video_frame_provider.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace media {
 class VideoFrame;
diff --git a/cc/layers/video_frame_provider_client_impl.h b/cc/layers/video_frame_provider_client_impl.h
index f7892ee..f7c91c9 100644
--- a/cc/layers/video_frame_provider_client_impl.h
+++ b/cc/layers/video_frame_provider_client_impl.h
@@ -9,7 +9,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/synchronization/lock.h"
 #include "base/threading/thread_checker.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/video_frame_provider.h"
 #include "cc/scheduler/video_frame_controller.h"
 #include "ui/gfx/transform.h"
diff --git a/cc/layers/video_layer.h b/cc/layers/video_layer.h
index 9bd7565..02919b1 100644
--- a/cc/layers/video_layer.h
+++ b/cc/layers/video_layer.h
@@ -7,7 +7,7 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "media/base/video_rotation.h"
 
diff --git a/cc/layers/video_layer_impl.h b/cc/layers/video_layer_impl.h
index 9169359..c895813 100644
--- a/cc/layers/video_layer_impl.h
+++ b/cc/layers/video_layer_impl.h
@@ -8,7 +8,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/resources/release_callback_impl.h"
 #include "cc/resources/video_resource_updater.h"
diff --git a/cc/output/begin_frame_args.h b/cc/output/begin_frame_args.h
index 4b508e2..7a612899 100644
--- a/cc/output/begin_frame_args.h
+++ b/cc/output/begin_frame_args.h
@@ -12,7 +12,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/time/time.h"
 #include "base/values.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 namespace trace_event {
diff --git a/cc/output/buffer_to_texture_target_map.h b/cc/output/buffer_to_texture_target_map.h
index 62ea52f..95193fe7 100644
--- a/cc/output/buffer_to_texture_target_map.h
+++ b/cc/output/buffer_to_texture_target_map.h
@@ -8,7 +8,7 @@
 #include <map>
 #include <string>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/buffer_types.h"
 
 namespace cc {
diff --git a/cc/output/compositor_frame.h b/cc/output/compositor_frame.h
index 57e26b5..1ee3fb7 100644
--- a/cc/output/compositor_frame.h
+++ b/cc/output/compositor_frame.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/compositor_frame_metadata.h"
 #include "cc/quads/render_pass.h"
 #include "cc/resources/transferable_resource.h"
diff --git a/cc/output/compositor_frame_metadata.h b/cc/output/compositor_frame_metadata.h
index 7411d20..d4ad80a 100644
--- a/cc/output/compositor_frame_metadata.h
+++ b/cc/output/compositor_frame_metadata.h
@@ -9,7 +9,7 @@
 
 #include <vector>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/selection.h"
 #include "cc/output/begin_frame_args.h"
 #include "cc/surfaces/surface_id.h"
diff --git a/cc/output/compositor_frame_sink.h b/cc/output/compositor_frame_sink.h
index 74f69a16..650f7191 100644
--- a/cc/output/compositor_frame_sink.h
+++ b/cc/output/compositor_frame_sink.h
@@ -11,7 +11,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/threading/thread_checker.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/context_provider.h"
 #include "cc/output/overlay_candidate_validator.h"
 #include "cc/output/vulkan_context_provider.h"
diff --git a/cc/output/compositor_frame_sink_client.h b/cc/output/compositor_frame_sink_client.h
index b67c6fc3..afc9b3a 100644
--- a/cc/output/compositor_frame_sink_client.h
+++ b/cc/output/compositor_frame_sink_client.h
@@ -8,7 +8,7 @@
 #include "base/callback.h"
 #include "base/memory/ref_counted.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/context_provider.h"
 #include "cc/resources/returned_resource.h"
 #include "gpu/command_buffer/common/texture_in_use_response.h"
diff --git a/cc/output/context_cache_controller.h b/cc/output/context_cache_controller.h
index 67b215e..614ec0d 100644
--- a/cc/output/context_cache_controller.h
+++ b/cc/output/context_cache_controller.h
@@ -12,7 +12,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "base/single_thread_task_runner.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 class GrContext;
 
diff --git a/cc/output/context_provider.h b/cc/output/context_provider.h
index bc8f8c3..44c6941 100644
--- a/cc/output/context_provider.h
+++ b/cc/output/context_provider.h
@@ -11,7 +11,7 @@
 #include "base/callback.h"
 #include "base/memory/ref_counted.h"
 #include "base/synchronization/lock.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/context_cache_controller.h"
 #include "gpu/command_buffer/common/capabilities.h"
 
diff --git a/cc/output/copy_output_request.h b/cc/output/copy_output_request.h
index 112daa4..437ebdf 100644
--- a/cc/output/copy_output_request.h
+++ b/cc/output/copy_output_request.h
@@ -11,7 +11,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/optional.h"
 #include "base/unguessable_token.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/single_release_callback.h"
 #include "cc/resources/texture_mailbox.h"
 #include "mojo/public/cpp/bindings/struct_traits.h"
diff --git a/cc/output/copy_output_result.h b/cc/output/copy_output_result.h
index 23334645..c4d2fee 100644
--- a/cc/output/copy_output_result.h
+++ b/cc/output/copy_output_result.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/single_release_callback.h"
 #include "cc/resources/texture_mailbox.h"
 #include "mojo/public/cpp/bindings/struct_traits.h"
diff --git a/cc/output/direct_renderer.h b/cc/output/direct_renderer.h
index e1e7028..eb8ddab3 100644
--- a/cc/output/direct_renderer.h
+++ b/cc/output/direct_renderer.h
@@ -11,10 +11,10 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/filter_operations.h"
+#include "cc/cc_export.h"
 #include "cc/output/ca_layer_overlay.h"
 #include "cc/output/dc_layer_overlay.h"
-#include "cc/output/filter_operations.h"
 #include "cc/output/overlay_processor.h"
 #include "cc/quads/tile_draw_quad.h"
 #include "cc/resources/resource_provider.h"
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
index 63e7dd4..d3d4851 100644
--- a/cc/output/gl_renderer.cc
+++ b/cc/output/gl_renderer.cc
@@ -27,6 +27,7 @@
 #include "build/build_config.h"
 #include "cc/base/container_util.h"
 #include "cc/base/math_util.h"
+#include "cc/base/render_surface_filters.h"
 #include "cc/debug/debug_colors.h"
 #include "cc/output/compositor_frame.h"
 #include "cc/output/compositor_frame_metadata.h"
@@ -36,7 +37,6 @@
 #include "cc/output/layer_quad.h"
 #include "cc/output/output_surface.h"
 #include "cc/output/output_surface_frame.h"
-#include "cc/output/render_surface_filters.h"
 #include "cc/output/renderer_settings.h"
 #include "cc/output/static_geometry_binding.h"
 #include "cc/output/texture_mailbox_deleter.h"
diff --git a/cc/output/gl_renderer.h b/cc/output/gl_renderer.h
index e27a06a..8e6f9d6 100644
--- a/cc/output/gl_renderer.h
+++ b/cc/output/gl_renderer.h
@@ -10,7 +10,7 @@
 
 #include "base/cancelable_callback.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/color_lut_cache.h"
 #include "cc/output/context_cache_controller.h"
 #include "cc/output/direct_renderer.h"
diff --git a/cc/output/in_process_context_provider.h b/cc/output/in_process_context_provider.h
index d85f194..0a355d2 100644
--- a/cc/output/in_process_context_provider.h
+++ b/cc/output/in_process_context_provider.h
@@ -11,7 +11,7 @@
 
 #include "base/compiler_specific.h"
 #include "base/synchronization/lock.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/context_cache_controller.h"
 #include "cc/output/context_provider.h"
 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
diff --git a/cc/output/layer_quad.h b/cc/output/layer_quad.h
index 22b9357f..8b10988 100644
--- a/cc/output/layer_quad.h
+++ b/cc/output/layer_quad.h
@@ -7,7 +7,7 @@
 #define CC_OUTPUT_LAYER_QUAD_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/geometry/point_f.h"
 
 namespace gfx {
diff --git a/cc/output/managed_memory_policy.h b/cc/output/managed_memory_policy.h
index 953e6ec1..886bebd 100644
--- a/cc/output/managed_memory_policy.h
+++ b/cc/output/managed_memory_policy.h
@@ -7,7 +7,7 @@
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/tiles/tile_priority.h"
 #include "gpu/command_buffer/common/gpu_memory_allocation.h"
 
diff --git a/cc/output/output_surface.h b/cc/output/output_surface.h
index 32179f2..35165f7 100644
--- a/cc/output/output_surface.h
+++ b/cc/output/output_surface.h
@@ -11,7 +11,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/threading/thread_checker.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/context_provider.h"
 #include "cc/output/overlay_candidate_validator.h"
 #include "cc/output/software_output_device.h"
diff --git a/cc/output/output_surface_client.h b/cc/output/output_surface_client.h
index 7f8cade..c3f3df4 100644
--- a/cc/output/output_surface_client.h
+++ b/cc/output/output_surface_client.h
@@ -8,7 +8,7 @@
 #include "base/callback.h"
 #include "base/memory/ref_counted.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/context_provider.h"
 #include "cc/resources/returned_resource.h"
 #include "gpu/command_buffer/common/texture_in_use_response.h"
diff --git a/cc/output/output_surface_frame.h b/cc/output/output_surface_frame.h
index 3133e8e2..17a0a67 100644
--- a/cc/output/output_surface_frame.h
+++ b/cc/output/output_surface_frame.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/optional.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "ui/events/latency_info.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/size.h"
diff --git a/cc/output/overlay_candidate.h b/cc/output/overlay_candidate.h
index 8a6806e..9c346a84 100644
--- a/cc/output/overlay_candidate.h
+++ b/cc/output/overlay_candidate.h
@@ -8,8 +8,8 @@
 #include <map>
 #include <vector>
 
-#include "cc/base/cc_export.h"
 #include "cc/base/resource_id.h"
+#include "cc/cc_export.h"
 #include "cc/quads/render_pass.h"
 #include "ui/gfx/buffer_types.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/cc/output/overlay_candidate_validator.h b/cc/output/overlay_candidate_validator.h
index 5c6ccf5d..9c01486 100644
--- a/cc/output/overlay_candidate_validator.h
+++ b/cc/output/overlay_candidate_validator.h
@@ -7,7 +7,7 @@
 
 #include <vector>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/overlay_candidate.h"
 #include "cc/output/overlay_processor.h"
 
diff --git a/cc/output/overlay_processor.h b/cc/output/overlay_processor.h
index 4b1686f..a00574e 100644
--- a/cc/output/overlay_processor.h
+++ b/cc/output/overlay_processor.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/ca_layer_overlay.h"
 #include "cc/output/dc_layer_overlay.h"
 #include "cc/output/overlay_candidate.h"
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc
index 79860b3..e561ea2 100644
--- a/cc/output/overlay_unittest.cc
+++ b/cc/output/overlay_unittest.cc
@@ -8,9 +8,9 @@
 #include <vector>
 
 #include "base/memory/ptr_util.h"
+#include "cc/base/filter_operation.h"
 #include "cc/base/region.h"
 #include "cc/output/ca_layer_overlay.h"
-#include "cc/output/filter_operation.h"
 #include "cc/output/gl_renderer.h"
 #include "cc/output/output_surface.h"
 #include "cc/output/output_surface_client.h"
diff --git a/cc/output/renderer_settings.h b/cc/output/renderer_settings.h
index 4ca1b83..f6afb554 100644
--- a/cc/output/renderer_settings.h
+++ b/cc/output/renderer_settings.h
@@ -7,7 +7,7 @@
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/buffer_to_texture_target_map.h"
 #include "cc/resources/resource_format.h"
 
diff --git a/cc/output/shader.h b/cc/output/shader.h
index 0f65a595..cf14966 100644
--- a/cc/output/shader.h
+++ b/cc/output/shader.h
@@ -9,7 +9,7 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace gfx {
 class ColorTransform;
diff --git a/cc/output/software_output_device.h b/cc/output/software_output_device.h
index f4c766c5..322e17c 100644
--- a/cc/output/software_output_device.h
+++ b/cc/output/software_output_device.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "third_party/skia/include/core/SkSurface.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/size.h"
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
index be0c4dd..c39672c 100644
--- a/cc/output/software_renderer.cc
+++ b/cc/output/software_renderer.cc
@@ -7,10 +7,10 @@
 #include "base/memory/ptr_util.h"
 #include "base/trace_event/trace_event.h"
 #include "cc/base/math_util.h"
+#include "cc/base/render_surface_filters.h"
 #include "cc/output/copy_output_request.h"
 #include "cc/output/output_surface.h"
 #include "cc/output/output_surface_frame.h"
-#include "cc/output/render_surface_filters.h"
 #include "cc/output/renderer_settings.h"
 #include "cc/output/software_output_device.h"
 #include "cc/quads/debug_border_draw_quad.h"
diff --git a/cc/output/software_renderer.h b/cc/output/software_renderer.h
index 9798e1f..7349a6e 100644
--- a/cc/output/software_renderer.h
+++ b/cc/output/software_renderer.h
@@ -6,7 +6,7 @@
 #define CC_OUTPUT_SOFTWARE_RENDERER_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/direct_renderer.h"
 #include "ui/events/latency_info.h"
 
diff --git a/cc/output/texture_mailbox_deleter.h b/cc/output/texture_mailbox_deleter.h
index c4fbf0b51..8003583 100644
--- a/cc/output/texture_mailbox_deleter.h
+++ b/cc/output/texture_mailbox_deleter.h
@@ -9,7 +9,7 @@
 #include <vector>
 
 #include "base/memory/weak_ptr.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 class SingleThreadTaskRunner;
diff --git a/cc/output/vulkan_context_provider.h b/cc/output/vulkan_context_provider.h
index f3d6be0..40ba022 100644
--- a/cc/output/vulkan_context_provider.h
+++ b/cc/output/vulkan_context_provider.h
@@ -6,7 +6,7 @@
 #define CC_OUTPUT_VULKAN_CONTEXT_PROVIDER_H_
 
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace gpu {
 class VulkanDeviceQueue;
diff --git a/cc/output/vulkan_in_process_context_provider.h b/cc/output/vulkan_in_process_context_provider.h
index 2cca297..661752b 100644
--- a/cc/output/vulkan_in_process_context_provider.h
+++ b/cc/output/vulkan_in_process_context_provider.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/vulkan_context_provider.h"
 #include "gpu/vulkan/features.h"
 
diff --git a/cc/paint/BUILD.gn b/cc/paint/BUILD.gn
index 7e72126..d08298f 100644
--- a/cc/paint/BUILD.gn
+++ b/cc/paint/BUILD.gn
@@ -7,6 +7,28 @@
 cc_component("paint") {
   output_name = "cc_paint"
   sources = [
+    "clip_display_item.cc",
+    "clip_display_item.h",
+    "clip_path_display_item.cc",
+    "clip_path_display_item.h",
+    "compositing_display_item.cc",
+    "compositing_display_item.h",
+    "discardable_image_map.cc",
+    "discardable_image_map.h",
+    "display_item.h",
+    "display_item_list.cc",
+    "display_item_list.h",
+    "draw_image.cc",
+    "draw_image.h",
+    "drawing_display_item.cc",
+    "drawing_display_item.h",
+    "filter_display_item.cc",
+    "filter_display_item.h",
+    "float_clip_display_item.cc",
+    "float_clip_display_item.h",
+    "image_id.h",
+    "largest_display_item.cc",
+    "largest_display_item.h",
     "paint_canvas.cc",
     "paint_canvas.h",
     "paint_export.h",
@@ -19,6 +41,8 @@
     "paint_surface.h",
     "skia_paint_canvas.cc",
     "skia_paint_canvas.h",
+    "transform_display_item.cc",
+    "transform_display_item.h",
   ]
 
   defines = [ "CC_PAINT_IMPLEMENTATION=1" ]
@@ -27,7 +51,12 @@
   # included in Blink.  This component should never publicly include
   # anything that Blink core wouldn't include (e.g. base).
   public_deps = [
+    "//cc/base",
+    "//cc/debug",
     "//skia",
+    "//ui/gfx:color_space",
+    "//ui/gfx:geometry_skia",
+    "//ui/gfx/geometry",
   ]
 
   deps = [
diff --git a/cc/playback/clip_display_item.cc b/cc/paint/clip_display_item.cc
similarity index 93%
rename from cc/playback/clip_display_item.cc
rename to cc/paint/clip_display_item.cc
index 6c9cb4b..e2095c0 100644
--- a/cc/playback/clip_display_item.cc
+++ b/cc/paint/clip_display_item.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/clip_display_item.h"
+#include "cc/paint/clip_display_item.h"
 
 namespace cc {
 
diff --git a/cc/playback/clip_display_item.h b/cc/paint/clip_display_item.h
similarity index 74%
rename from cc/playback/clip_display_item.h
rename to cc/paint/clip_display_item.h
index 1c941dc6..a969d48d 100644
--- a/cc/playback/clip_display_item.h
+++ b/cc/paint/clip_display_item.h
@@ -2,21 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_CLIP_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_CLIP_DISPLAY_ITEM_H_
+#ifndef CC_PAINT_CLIP_DISPLAY_ITEM_H_
+#define CC_PAINT_CLIP_DISPLAY_ITEM_H_
 
 #include <stddef.h>
 
 #include <vector>
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/display_item.h"
+#include "cc/paint/display_item.h"
+#include "cc/paint/paint_export.h"
 #include "third_party/skia/include/core/SkRRect.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace cc {
 
-class CC_EXPORT ClipDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT ClipDisplayItem : public DisplayItem {
  public:
   ClipDisplayItem(const gfx::Rect& clip_rect,
                   std::vector<SkRRect> rounded_clip_rects,
@@ -33,7 +33,7 @@
   const bool antialias;
 };
 
-class CC_EXPORT EndClipDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT EndClipDisplayItem : public DisplayItem {
  public:
   EndClipDisplayItem();
   ~EndClipDisplayItem() override;
@@ -43,4 +43,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_CLIP_DISPLAY_ITEM_H_
+#endif  // CC_PAINT_CLIP_DISPLAY_ITEM_H_
diff --git a/cc/playback/clip_path_display_item.cc b/cc/paint/clip_path_display_item.cc
similarity index 92%
rename from cc/playback/clip_path_display_item.cc
rename to cc/paint/clip_path_display_item.cc
index afcc776..5882e5db 100644
--- a/cc/playback/clip_path_display_item.cc
+++ b/cc/paint/clip_path_display_item.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/clip_path_display_item.h"
+#include "cc/paint/clip_path_display_item.h"
 
 namespace cc {
 
diff --git a/cc/playback/clip_path_display_item.h b/cc/paint/clip_path_display_item.h
similarity index 69%
rename from cc/playback/clip_path_display_item.h
rename to cc/paint/clip_path_display_item.h
index bc7afc31d..54de999 100644
--- a/cc/playback/clip_path_display_item.h
+++ b/cc/paint/clip_path_display_item.h
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_CLIP_PATH_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_CLIP_PATH_DISPLAY_ITEM_H_
+#ifndef CC_PAINT_CLIP_PATH_DISPLAY_ITEM_H_
+#define CC_PAINT_CLIP_PATH_DISPLAY_ITEM_H_
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/display_item.h"
+#include "cc/paint/display_item.h"
+#include "cc/paint/paint_export.h"
 #include "third_party/skia/include/core/SkPath.h"
 
 namespace cc {
 
-class CC_EXPORT ClipPathDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT ClipPathDisplayItem : public DisplayItem {
  public:
   ClipPathDisplayItem(const SkPath& path, bool antialias);
   ~ClipPathDisplayItem() override;
@@ -29,7 +29,7 @@
   const bool antialias;
 };
 
-class CC_EXPORT EndClipPathDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT EndClipPathDisplayItem : public DisplayItem {
  public:
   EndClipPathDisplayItem();
   ~EndClipPathDisplayItem() override;
@@ -39,4 +39,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_CLIP_PATH_DISPLAY_ITEM_H_
+#endif  // CC_PAINT_CLIP_PATH_DISPLAY_ITEM_H_
diff --git a/cc/playback/compositing_display_item.cc b/cc/paint/compositing_display_item.cc
similarity index 94%
rename from cc/playback/compositing_display_item.cc
rename to cc/paint/compositing_display_item.cc
index 9f4c9e9..9cda458 100644
--- a/cc/playback/compositing_display_item.cc
+++ b/cc/paint/compositing_display_item.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/compositing_display_item.h"
+#include "cc/paint/compositing_display_item.h"
 
 #include "third_party/skia/include/core/SkColorFilter.h"
 
diff --git a/cc/playback/compositing_display_item.h b/cc/paint/compositing_display_item.h
similarity index 77%
rename from cc/playback/compositing_display_item.h
rename to cc/paint/compositing_display_item.h
index 0e9dcac..266ab4d 100644
--- a/cc/playback/compositing_display_item.h
+++ b/cc/paint/compositing_display_item.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_COMPOSITING_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_COMPOSITING_DISPLAY_ITEM_H_
+#ifndef CC_PAINT_COMPOSITING_DISPLAY_ITEM_H_
+#define CC_PAINT_COMPOSITING_DISPLAY_ITEM_H_
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/display_item.h"
+#include "cc/paint/display_item.h"
+#include "cc/paint/paint_export.h"
 #include "third_party/skia/include/core/SkBlendMode.h"
 #include "third_party/skia/include/core/SkColorFilter.h"
 #include "third_party/skia/include/core/SkRect.h"
@@ -16,7 +16,7 @@
 
 namespace cc {
 
-class CC_EXPORT CompositingDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT CompositingDisplayItem : public DisplayItem {
  public:
   CompositingDisplayItem(uint8_t alpha,
                          SkBlendMode xfermode,
@@ -39,7 +39,7 @@
   const bool lcd_text_requires_opaque_layer;
 };
 
-class CC_EXPORT EndCompositingDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT EndCompositingDisplayItem : public DisplayItem {
  public:
   EndCompositingDisplayItem();
   ~EndCompositingDisplayItem() override;
@@ -49,4 +49,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_COMPOSITING_DISPLAY_ITEM_H_
+#endif  // CC_PAINT_COMPOSITING_DISPLAY_ITEM_H_
diff --git a/cc/playback/discardable_image_map.cc b/cc/paint/discardable_image_map.cc
similarity index 98%
rename from cc/playback/discardable_image_map.cc
rename to cc/paint/discardable_image_map.cc
index c6129d1d..2daef28 100644
--- a/cc/playback/discardable_image_map.cc
+++ b/cc/paint/discardable_image_map.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/discardable_image_map.h"
+#include "cc/paint/discardable_image_map.h"
 
 #include <stddef.h>
 
@@ -12,7 +12,7 @@
 #include "base/containers/adapters.h"
 #include "base/memory/ptr_util.h"
 #include "cc/base/math_util.h"
-#include "cc/playback/display_item_list.h"
+#include "cc/paint/display_item_list.h"
 #include "third_party/skia/include/core/SkPath.h"
 #include "third_party/skia/include/utils/SkNWayCanvas.h"
 #include "ui/gfx/geometry/rect_conversions.h"
diff --git a/cc/playback/discardable_image_map.h b/cc/paint/discardable_image_map.h
similarity index 84%
rename from cc/playback/discardable_image_map.h
rename to cc/paint/discardable_image_map.h
index abbf08bc..57594b2 100644
--- a/cc/playback/discardable_image_map.h
+++ b/cc/paint/discardable_image_map.h
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_DISCARDABLE_IMAGE_MAP_H_
-#define CC_PLAYBACK_DISCARDABLE_IMAGE_MAP_H_
+#ifndef CC_PAINT_DISCARDABLE_IMAGE_MAP_H_
+#define CC_PAINT_DISCARDABLE_IMAGE_MAP_H_
 
 #include <unordered_map>
 #include <utility>
 #include <vector>
 
-#include "cc/base/cc_export.h"
 #include "cc/base/rtree.h"
-#include "cc/playback/draw_image.h"
-#include "cc/playback/image_id.h"
+#include "cc/paint/draw_image.h"
+#include "cc/paint/image_id.h"
+#include "cc/paint/paint_export.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "ui/gfx/geometry/rect.h"
@@ -26,9 +26,9 @@
 // This class is used for generating discardable images data (see DrawImage
 // for the type of data it stores). It allows the client to query a particular
 // rect and get back a list of DrawImages in that rect.
-class CC_EXPORT DiscardableImageMap {
+class CC_PAINT_EXPORT DiscardableImageMap {
  public:
-  class CC_EXPORT ScopedMetadataGenerator {
+  class CC_PAINT_EXPORT ScopedMetadataGenerator {
    public:
     ScopedMetadataGenerator(DiscardableImageMap* image_map,
                             const gfx::Size& bounds);
@@ -65,4 +65,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_DISCARDABLE_IMAGE_MAP_H_
+#endif  // CC_PAINT_DISCARDABLE_IMAGE_MAP_H_
diff --git a/cc/playback/discardable_image_map_unittest.cc b/cc/paint/discardable_image_map_unittest.cc
similarity index 97%
rename from cc/playback/discardable_image_map_unittest.cc
rename to cc/paint/discardable_image_map_unittest.cc
index eee782e..fd7a63c3 100644
--- a/cc/playback/discardable_image_map_unittest.cc
+++ b/cc/paint/discardable_image_map_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/discardable_image_map.h"
+#include "cc/paint/discardable_image_map.h"
 
 #include <stddef.h>
 
@@ -120,8 +120,8 @@
       std::vector<gfx::Rect> inset_rects = InsetImageRects(images);
       if ((x + y) & 1) {
         EXPECT_EQ(1u, images.size()) << x << " " << y;
-        EXPECT_TRUE(images[0].image == discardable_image[y][x]) << x << " "
-                                                                << y;
+        EXPECT_TRUE(images[0].image == discardable_image[y][x])
+            << x << " " << y;
         EXPECT_EQ(gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500),
                   inset_rects[0]);
         EXPECT_EQ(images[0].image_rect,
@@ -207,8 +207,8 @@
       std::vector<gfx::Rect> inset_rects = InsetImageRects(images);
       if ((x + y) & 1) {
         EXPECT_EQ(1u, images.size()) << x << " " << y;
-        EXPECT_TRUE(images[0].image == discardable_image[y][x]) << x << " "
-                                                                << y;
+        EXPECT_TRUE(images[0].image == discardable_image[y][x])
+            << x << " " << y;
         EXPECT_EQ(gfx::Rect(1024 + x * 512 + 6, y * 512 + 6, 500, 500),
                   inset_rects[0]);
         EXPECT_EQ(images[0].image_rect,
@@ -323,8 +323,8 @@
       std::vector<gfx::Rect> inset_rects = InsetImageRects(images);
       if ((x + y) & 1) {
         EXPECT_EQ(1u, images.size()) << x << " " << y;
-        EXPECT_TRUE(images[0].image == discardable_image[y][x]) << x << " "
-                                                                << y;
+        EXPECT_TRUE(images[0].image == discardable_image[y][x])
+            << x << " " << y;
         EXPECT_EQ(gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500),
                   inset_rects[0]);
         EXPECT_EQ(images[0].image_rect,
@@ -616,8 +616,8 @@
       std::vector<gfx::Rect> inset_rects = InsetImageRects(images);
       if ((x + y) & 1) {
         EXPECT_EQ(1u, images.size()) << x << " " << y;
-        EXPECT_TRUE(images[0].image == discardable_image[y][x]) << x << " "
-                                                                << y;
+        EXPECT_TRUE(images[0].image == discardable_image[y][x])
+            << x << " " << y;
         EXPECT_EQ(gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500),
                   inset_rects[0]);
         EXPECT_EQ(std::max(x * 0.5f, kMinScale), images[0].scale.fWidth);
diff --git a/cc/playback/display_item.h b/cc/paint/display_item.h
similarity index 78%
rename from cc/playback/display_item.h
rename to cc/paint/display_item.h
index 8e56d21c..74a3c596 100644
--- a/cc/playback/display_item.h
+++ b/cc/paint/display_item.h
@@ -2,21 +2,22 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_DISPLAY_ITEM_H_
+#ifndef CC_PAINT_DISPLAY_ITEM_H_
+#define CC_PAINT_DISPLAY_ITEM_H_
 
 #include <stddef.h>
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/debug/traced_value.h"
+#include "cc/paint/paint_export.h"
 #include "third_party/skia/include/core/SkPicture.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace cc {
 
-class CC_EXPORT DisplayItem {
+class CC_PAINT_EXPORT DisplayItem {
  public:
   virtual ~DisplayItem() = default;
 
@@ -43,4 +44,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_DISPLAY_ITEM_H_
+#endif  // CC_PAINT_DISPLAY_ITEM_H_
diff --git a/cc/playback/display_item_list.cc b/cc/paint/display_item_list.cc
similarity index 97%
rename from cc/playback/display_item_list.cc
rename to cc/paint/display_item_list.cc
index f9a827de..4745dce 100644
--- a/cc/playback/display_item_list.cc
+++ b/cc/paint/display_item_list.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/display_item_list.h"
+#include "cc/paint/display_item_list.h"
 
 #include <stddef.h>
 
@@ -14,16 +14,16 @@
 #include "base/trace_event/trace_event.h"
 #include "base/trace_event/trace_event_argument.h"
 #include "cc/base/math_util.h"
+#include "cc/base/render_surface_filters.h"
 #include "cc/debug/picture_debug_util.h"
-#include "cc/output/render_surface_filters.h"
-#include "cc/playback/clip_display_item.h"
-#include "cc/playback/clip_path_display_item.h"
-#include "cc/playback/compositing_display_item.h"
-#include "cc/playback/drawing_display_item.h"
-#include "cc/playback/filter_display_item.h"
-#include "cc/playback/float_clip_display_item.h"
-#include "cc/playback/largest_display_item.h"
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/clip_display_item.h"
+#include "cc/paint/clip_path_display_item.h"
+#include "cc/paint/compositing_display_item.h"
+#include "cc/paint/drawing_display_item.h"
+#include "cc/paint/filter_display_item.h"
+#include "cc/paint/float_clip_display_item.h"
+#include "cc/paint/largest_display_item.h"
+#include "cc/paint/transform_display_item.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "third_party/skia/include/core/SkImageFilter.h"
 #include "third_party/skia/include/core/SkPaint.h"
diff --git a/cc/playback/display_item_list.h b/cc/paint/display_item_list.h
similarity index 95%
rename from cc/playback/display_item_list.h
rename to cc/paint/display_item_list.h
index 1f78694..898a0b9 100644
--- a/cc/playback/display_item_list.h
+++ b/cc/paint/display_item_list.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_DISPLAY_ITEM_LIST_H_
-#define CC_PLAYBACK_DISPLAY_ITEM_LIST_H_
+#ifndef CC_PAINT_DISPLAY_ITEM_LIST_H_
+#define CC_PAINT_DISPLAY_ITEM_LIST_H_
 
 #include <stddef.h>
 
@@ -14,12 +14,12 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/trace_event/trace_event.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/contiguous_container.h"
 #include "cc/base/rtree.h"
-#include "cc/playback/discardable_image_map.h"
-#include "cc/playback/display_item.h"
-#include "cc/playback/image_id.h"
+#include "cc/paint/discardable_image_map.h"
+#include "cc/paint/display_item.h"
+#include "cc/paint/image_id.h"
+#include "cc/paint/paint_export.h"
 #include "third_party/skia/include/core/SkPicture.h"
 #include "ui/gfx/color_space.h"
 #include "ui/gfx/geometry/rect.h"
@@ -36,7 +36,7 @@
 namespace cc {
 class DisplayItem;
 
-class CC_EXPORT DisplayItemList
+class CC_PAINT_EXPORT DisplayItemList
     : public base::RefCountedThreadSafe<DisplayItemList> {
  public:
   DisplayItemList();
@@ -205,4 +205,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_DISPLAY_ITEM_LIST_H_
+#endif  // CC_PAINT_DISPLAY_ITEM_LIST_H_
diff --git a/cc/playback/display_item_list_unittest.cc b/cc/paint/display_item_list_unittest.cc
similarity index 97%
rename from cc/playback/display_item_list_unittest.cc
rename to cc/paint/display_item_list_unittest.cc
index a7c188e..f0a7108 100644
--- a/cc/playback/display_item_list_unittest.cc
+++ b/cc/paint/display_item_list_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/display_item_list.h"
+#include "cc/paint/display_item_list.h"
 
 #include <stddef.h>
 
@@ -10,20 +10,21 @@
 
 #include "base/memory/ptr_util.h"
 #include "base/trace_event/trace_event_argument.h"
-#include "cc/output/filter_operation.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operation.h"
+#include "cc/base/filter_operations.h"
+#include "cc/paint/clip_display_item.h"
+#include "cc/paint/clip_path_display_item.h"
+#include "cc/paint/compositing_display_item.h"
+#include "cc/paint/drawing_display_item.h"
+#include "cc/paint/filter_display_item.h"
+
+#include "cc/paint/float_clip_display_item.h"
 #include "cc/paint/paint_canvas.h"
 #include "cc/paint/paint_flags.h"
 #include "cc/paint/paint_record.h"
 #include "cc/paint/paint_recorder.h"
 #include "cc/paint/paint_surface.h"
-#include "cc/playback/clip_display_item.h"
-#include "cc/playback/clip_path_display_item.h"
-#include "cc/playback/compositing_display_item.h"
-#include "cc/playback/drawing_display_item.h"
-#include "cc/playback/filter_display_item.h"
-#include "cc/playback/float_clip_display_item.h"
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/transform_display_item.h"
 #include "cc/test/geometry_test_utils.h"
 #include "cc/test/skia_common.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/cc/playback/draw_image.cc b/cc/paint/draw_image.cc
similarity index 97%
rename from cc/playback/draw_image.cc
rename to cc/paint/draw_image.cc
index 2b1779f..b961175 100644
--- a/cc/playback/draw_image.cc
+++ b/cc/paint/draw_image.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/draw_image.h"
+#include "cc/paint/draw_image.h"
 
 namespace cc {
 namespace {
diff --git a/cc/playback/draw_image.h b/cc/paint/draw_image.h
similarity index 90%
rename from cc/playback/draw_image.h
rename to cc/paint/draw_image.h
index d3633e0..33479eb 100644
--- a/cc/playback/draw_image.h
+++ b/cc/paint/draw_image.h
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_DRAW_IMAGE_H_
-#define CC_PLAYBACK_DRAW_IMAGE_H_
+#ifndef CC_PAINT_DRAW_IMAGE_H_
+#define CC_PAINT_DRAW_IMAGE_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/paint/paint_export.h"
 #include "third_party/skia/include/core/SkFilterQuality.h"
 #include "third_party/skia/include/core/SkImage.h"
 #include "third_party/skia/include/core/SkMatrix.h"
@@ -17,7 +17,7 @@
 
 // TODO(vmpstr): This should probably be DISALLOW_COPY_AND_ASSIGN and transport
 // it around using a pointer, since it became kind of large. Profile.
-class CC_EXPORT DrawImage {
+class CC_PAINT_EXPORT DrawImage {
  public:
   DrawImage();
   DrawImage(sk_sp<const SkImage> image,
@@ -51,4 +51,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_DRAW_IMAGE_H_
+#endif  // CC_PAINT_DRAW_IMAGE_H_
diff --git a/cc/playback/drawing_display_item.cc b/cc/paint/drawing_display_item.cc
similarity index 94%
rename from cc/playback/drawing_display_item.cc
rename to cc/paint/drawing_display_item.cc
index 989f856..60b09ee 100644
--- a/cc/playback/drawing_display_item.cc
+++ b/cc/paint/drawing_display_item.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/drawing_display_item.h"
+#include "cc/paint/drawing_display_item.h"
 
 #include "third_party/skia/include/core/SkPicture.h"
 
diff --git a/cc/playback/drawing_display_item.h b/cc/paint/drawing_display_item.h
similarity index 70%
rename from cc/playback/drawing_display_item.h
rename to cc/paint/drawing_display_item.h
index 0295a78..56c7b17a 100644
--- a/cc/playback/drawing_display_item.h
+++ b/cc/paint/drawing_display_item.h
@@ -2,19 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_DRAWING_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_DRAWING_DISPLAY_ITEM_H_
+#ifndef CC_PAINT_DRAWING_DISPLAY_ITEM_H_
+#define CC_PAINT_DRAWING_DISPLAY_ITEM_H_
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
+#include "cc/paint/display_item.h"
+#include "cc/paint/paint_export.h"
 #include "cc/paint/paint_record.h"
-#include "cc/playback/display_item.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
 namespace cc {
 
-class CC_EXPORT DrawingDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT DrawingDisplayItem : public DisplayItem {
  public:
   DrawingDisplayItem();
   explicit DrawingDisplayItem(sk_sp<const PaintRecord> record);
@@ -29,4 +29,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_DRAWING_DISPLAY_ITEM_H_
+#endif  // CC_PAINT_DRAWING_DISPLAY_ITEM_H_
diff --git a/cc/playback/filter_display_item.cc b/cc/paint/filter_display_item.cc
similarity index 93%
rename from cc/playback/filter_display_item.cc
rename to cc/paint/filter_display_item.cc
index 0ad6db5..de8f0d3 100644
--- a/cc/playback/filter_display_item.cc
+++ b/cc/paint/filter_display_item.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/filter_display_item.h"
+#include "cc/paint/filter_display_item.h"
 
 namespace cc {
 
diff --git a/cc/playback/filter_display_item.h b/cc/paint/filter_display_item.h
similarity index 71%
rename from cc/playback/filter_display_item.h
rename to cc/paint/filter_display_item.h
index e574b65..c4f18dcb 100644
--- a/cc/playback/filter_display_item.h
+++ b/cc/paint/filter_display_item.h
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_FILTER_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_FILTER_DISPLAY_ITEM_H_
+#ifndef CC_PAINT_FILTER_DISPLAY_ITEM_H_
+#define CC_PAINT_FILTER_DISPLAY_ITEM_H_
 
-#include "cc/base/cc_export.h"
-#include "cc/output/filter_operations.h"
-#include "cc/playback/display_item.h"
+#include "cc/base/filter_operations.h"
+#include "cc/paint/display_item.h"
+#include "cc/paint/paint_export.h"
 #include "ui/gfx/geometry/point_f.h"
 #include "ui/gfx/geometry/rect_f.h"
 
 namespace cc {
 
-class CC_EXPORT FilterDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT FilterDisplayItem : public DisplayItem {
  public:
   FilterDisplayItem(const FilterOperations& filters,
                     const gfx::RectF& bounds,
@@ -32,7 +32,7 @@
   const gfx::PointF origin;
 };
 
-class CC_EXPORT EndFilterDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT EndFilterDisplayItem : public DisplayItem {
  public:
   EndFilterDisplayItem();
   ~EndFilterDisplayItem() override;
@@ -42,4 +42,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_FILTER_DISPLAY_ITEM_H_
+#endif  // CC_PAINT_FILTER_DISPLAY_ITEM_H_
diff --git a/cc/playback/float_clip_display_item.cc b/cc/paint/float_clip_display_item.cc
similarity index 91%
rename from cc/playback/float_clip_display_item.cc
rename to cc/paint/float_clip_display_item.cc
index 7a2ec04..85cd5adf 100644
--- a/cc/playback/float_clip_display_item.cc
+++ b/cc/paint/float_clip_display_item.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/float_clip_display_item.h"
+#include "cc/paint/float_clip_display_item.h"
 
 namespace cc {
 
diff --git a/cc/playback/float_clip_display_item.h b/cc/paint/float_clip_display_item.h
similarity index 64%
rename from cc/playback/float_clip_display_item.h
rename to cc/paint/float_clip_display_item.h
index 7c3362c..43d751b36 100644
--- a/cc/playback/float_clip_display_item.h
+++ b/cc/paint/float_clip_display_item.h
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_FLOAT_CLIP_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_FLOAT_CLIP_DISPLAY_ITEM_H_
+#ifndef CC_PAINT_FLOAT_CLIP_DISPLAY_ITEM_H_
+#define CC_PAINT_FLOAT_CLIP_DISPLAY_ITEM_H_
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/display_item.h"
+#include "cc/paint/display_item.h"
+#include "cc/paint/paint_export.h"
 #include "ui/gfx/geometry/rect_f.h"
 
 namespace cc {
 
-class CC_EXPORT FloatClipDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT FloatClipDisplayItem : public DisplayItem {
  public:
   explicit FloatClipDisplayItem(const gfx::RectF& clip_rect);
   ~FloatClipDisplayItem() override;
@@ -24,7 +24,7 @@
   const gfx::RectF clip_rect;
 };
 
-class CC_EXPORT EndFloatClipDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT EndFloatClipDisplayItem : public DisplayItem {
  public:
   EndFloatClipDisplayItem();
   ~EndFloatClipDisplayItem() override;
@@ -34,4 +34,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_FLOAT_CLIP_DISPLAY_ITEM_H_
+#endif  // CC_PAINT_FLOAT_CLIP_DISPLAY_ITEM_H_
diff --git a/cc/playback/image_id.h b/cc/paint/image_id.h
similarity index 78%
rename from cc/playback/image_id.h
rename to cc/paint/image_id.h
index 5103857f..0ffaafd7 100644
--- a/cc/playback/image_id.h
+++ b/cc/paint/image_id.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_IMAGE_ID_H_
-#define CC_PLAYBACK_IMAGE_ID_H_
+#ifndef CC_PAINT_IMAGE_ID_H_
+#define CC_PAINT_IMAGE_ID_H_
 
 #include <stdint.h>
 #include <unordered_set>
@@ -17,4 +17,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_IMAGE_ID_H_
+#endif  // CC_PAINT_IMAGE_ID_H_
diff --git a/cc/playback/largest_display_item.cc b/cc/paint/largest_display_item.cc
similarity index 89%
rename from cc/playback/largest_display_item.cc
rename to cc/paint/largest_display_item.cc
index daf4036..448c2b8 100644
--- a/cc/playback/largest_display_item.cc
+++ b/cc/paint/largest_display_item.cc
@@ -2,19 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/largest_display_item.h"
+#include "cc/paint/largest_display_item.h"
 
 #include <stddef.h>
 
 #include <algorithm>
 
-#include "cc/playback/clip_display_item.h"
-#include "cc/playback/clip_path_display_item.h"
-#include "cc/playback/compositing_display_item.h"
-#include "cc/playback/drawing_display_item.h"
-#include "cc/playback/filter_display_item.h"
-#include "cc/playback/float_clip_display_item.h"
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/clip_display_item.h"
+#include "cc/paint/clip_path_display_item.h"
+#include "cc/paint/compositing_display_item.h"
+#include "cc/paint/drawing_display_item.h"
+#include "cc/paint/filter_display_item.h"
+#include "cc/paint/float_clip_display_item.h"
+#include "cc/paint/transform_display_item.h"
 
 #include "third_party/skia/include/core/SkPicture.h"
 
diff --git a/cc/paint/largest_display_item.h b/cc/paint/largest_display_item.h
new file mode 100644
index 0000000..e885ced
--- /dev/null
+++ b/cc/paint/largest_display_item.h
@@ -0,0 +1,18 @@
+// 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 CC_PAINT_LARGEST_DISPLAY_ITEM_H_
+#define CC_PAINT_LARGEST_DISPLAY_ITEM_H_
+
+#include <stddef.h>
+
+#include "cc/paint/paint_export.h"
+
+namespace cc {
+
+CC_PAINT_EXPORT size_t LargestDisplayItemSize();
+
+}  // namespace cc
+
+#endif  // CC_PAINT_LARGEST_DISPLAY_ITEM_H_
diff --git a/cc/playback/transform_display_item.cc b/cc/paint/transform_display_item.cc
similarity index 91%
rename from cc/playback/transform_display_item.cc
rename to cc/paint/transform_display_item.cc
index b404943..6cc3e7f 100644
--- a/cc/playback/transform_display_item.cc
+++ b/cc/paint/transform_display_item.cc
@@ -2,11 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/transform_display_item.h"
 
 namespace cc {
 
 TransformDisplayItem::TransformDisplayItem(const gfx::Transform& transform)
+
     : DisplayItem(TRANSFORM), transform(transform) {}
 
 TransformDisplayItem::~TransformDisplayItem() = default;
diff --git a/cc/playback/transform_display_item.h b/cc/paint/transform_display_item.h
similarity index 65%
rename from cc/playback/transform_display_item.h
rename to cc/paint/transform_display_item.h
index 268e257..a75db2a4 100644
--- a/cc/playback/transform_display_item.h
+++ b/cc/paint/transform_display_item.h
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_TRANSFORM_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_TRANSFORM_DISPLAY_ITEM_H_
+#ifndef CC_PAINT_TRANSFORM_DISPLAY_ITEM_H_
+#define CC_PAINT_TRANSFORM_DISPLAY_ITEM_H_
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/display_item.h"
+#include "cc/paint/display_item.h"
+#include "cc/paint/paint_export.h"
 #include "ui/gfx/transform.h"
 
 namespace cc {
 
-class CC_EXPORT TransformDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT TransformDisplayItem : public DisplayItem {
  public:
   explicit TransformDisplayItem(const gfx::Transform& transform);
   ~TransformDisplayItem() override;
@@ -24,7 +24,7 @@
   const gfx::Transform transform;
 };
 
-class CC_EXPORT EndTransformDisplayItem : public DisplayItem {
+class CC_PAINT_EXPORT EndTransformDisplayItem : public DisplayItem {
  public:
   EndTransformDisplayItem();
   ~EndTransformDisplayItem() override;
@@ -34,4 +34,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_TRANSFORM_DISPLAY_ITEM_H_
+#endif  // CC_PAINT_TRANSFORM_DISPLAY_ITEM_H_
diff --git a/cc/playback/OWNERS b/cc/playback/OWNERS
deleted file mode 100644
index bdd83bf..0000000
--- a/cc/playback/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-# COMPONENT: Internals>Compositing>Rasterization
diff --git a/cc/playback/largest_display_item.h b/cc/playback/largest_display_item.h
deleted file mode 100644
index 8350c61..0000000
--- a/cc/playback/largest_display_item.h
+++ /dev/null
@@ -1,18 +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 CC_PLAYBACK_LARGEST_DISPLAY_ITEM_H_
-#define CC_PLAYBACK_LARGEST_DISPLAY_ITEM_H_
-
-#include <stddef.h>
-
-#include "cc/base/cc_export.h"
-
-namespace cc {
-
-CC_EXPORT size_t LargestDisplayItemSize();
-
-}  // namespace cc
-
-#endif  // CC_PLAYBACK_LARGEST_DISPLAY_ITEM_H_
diff --git a/cc/quads/content_draw_quad_base.h b/cc/quads/content_draw_quad_base.h
index 52b1850f..cc13075 100644
--- a/cc/quads/content_draw_quad_base.h
+++ b/cc/quads/content_draw_quad_base.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 #include "ui/gfx/geometry/rect_f.h"
 #include "ui/gfx/geometry/size.h"
diff --git a/cc/quads/debug_border_draw_quad.h b/cc/quads/debug_border_draw_quad.h
index 1a205b3..0ef432c3d 100644
--- a/cc/quads/debug_border_draw_quad.h
+++ b/cc/quads/debug_border_draw_quad.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 #include "third_party/skia/include/core/SkColor.h"
 
diff --git a/cc/quads/draw_polygon.h b/cc/quads/draw_polygon.h
index 8c89e599..351d3cb 100644
--- a/cc/quads/draw_polygon.h
+++ b/cc/quads/draw_polygon.h
@@ -8,6 +8,7 @@
 #include <vector>
 
 #include "cc/base/math_util.h"
+#include "cc/cc_export.h"
 #include "cc/output/bsp_compare_result.h"
 #include "ui/gfx/geometry/point3_f.h"
 #include "ui/gfx/geometry/quad_f.h"
diff --git a/cc/quads/draw_quad.h b/cc/quads/draw_quad.h
index 4a72e99..b8ad4f2 100644
--- a/cc/quads/draw_quad.h
+++ b/cc/quads/draw_quad.h
@@ -8,8 +8,8 @@
 #include <stddef.h>
 
 #include "base/callback.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/resource_id.h"
+#include "cc/cc_export.h"
 #include "cc/quads/shared_quad_state.h"
 
 namespace base {
diff --git a/cc/quads/draw_quad_unittest.cc b/cc/quads/draw_quad_unittest.cc
index 9d1602e..fce24b15 100644
--- a/cc/quads/draw_quad_unittest.cc
+++ b/cc/quads/draw_quad_unittest.cc
@@ -10,8 +10,8 @@
 
 #include "base/bind.h"
 #include "base/compiler_specific.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/math_util.h"
-#include "cc/output/filter_operations.h"
 #include "cc/quads/debug_border_draw_quad.h"
 #include "cc/quads/largest_draw_quad.h"
 #include "cc/quads/picture_draw_quad.h"
diff --git a/cc/quads/largest_draw_quad.h b/cc/quads/largest_draw_quad.h
index 62593e5c..aefbd5e 100644
--- a/cc/quads/largest_draw_quad.h
+++ b/cc/quads/largest_draw_quad.h
@@ -7,7 +7,7 @@
 
 #include <stddef.h>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/quads/nine_patch_generator.h b/cc/quads/nine_patch_generator.h
index 140d361..8bdd6cd 100644
--- a/cc/quads/nine_patch_generator.h
+++ b/cc/quads/nine_patch_generator.h
@@ -10,7 +10,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/ui_resource_client.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/cc/quads/picture_draw_quad.h b/cc/quads/picture_draw_quad.h
index b9286b7..cb9f5a79 100644
--- a/cc/quads/picture_draw_quad.h
+++ b/cc/quads/picture_draw_quad.h
@@ -8,9 +8,9 @@
 #include <memory>
 
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
-#include "cc/playback/raster_source.h"
+#include "cc/cc_export.h"
 #include "cc/quads/content_draw_quad_base.h"
+#include "cc/raster/raster_source.h"
 #include "cc/resources/resource_provider.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/cc/quads/render_pass.h b/cc/quads/render_pass.h
index 274c27e..fbb43237 100644
--- a/cc/quads/render_pass.h
+++ b/cc/quads/render_pass.h
@@ -14,9 +14,9 @@
 #include "base/callback.h"
 #include "base/hash.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/list_container.h"
-#include "cc/output/filter_operations.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 #include "cc/quads/largest_draw_quad.h"
 #include "ui/gfx/color_space.h"
diff --git a/cc/quads/render_pass_draw_quad.h b/cc/quads/render_pass_draw_quad.h
index 085446e..4764560 100644
--- a/cc/quads/render_pass_draw_quad.h
+++ b/cc/quads/render_pass_draw_quad.h
@@ -9,8 +9,8 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 
 #include "ui/gfx/geometry/point_f.h"
diff --git a/cc/quads/shared_quad_state.h b/cc/quads/shared_quad_state.h
index 11119ea..f3758fb 100644
--- a/cc/quads/shared_quad_state.h
+++ b/cc/quads/shared_quad_state.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "third_party/skia/include/core/SkBlendMode.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/transform.h"
diff --git a/cc/quads/solid_color_draw_quad.h b/cc/quads/solid_color_draw_quad.h
index 97ab1e2..2e99408 100644
--- a/cc/quads/solid_color_draw_quad.h
+++ b/cc/quads/solid_color_draw_quad.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 #include "third_party/skia/include/core/SkColor.h"
 
diff --git a/cc/quads/stream_video_draw_quad.h b/cc/quads/stream_video_draw_quad.h
index 68f3bff..320194d 100644
--- a/cc/quads/stream_video_draw_quad.h
+++ b/cc/quads/stream_video_draw_quad.h
@@ -9,7 +9,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 #include "ui/gfx/transform.h"
 
diff --git a/cc/quads/surface_draw_quad.h b/cc/quads/surface_draw_quad.h
index f4c131b..1c1f19d 100644
--- a/cc/quads/surface_draw_quad.h
+++ b/cc/quads/surface_draw_quad.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 #include "cc/surfaces/surface_id.h"
 
diff --git a/cc/quads/texture_draw_quad.h b/cc/quads/texture_draw_quad.h
index 191a3436..3c8cce8e 100644
--- a/cc/quads/texture_draw_quad.h
+++ b/cc/quads/texture_draw_quad.h
@@ -9,7 +9,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/cc/quads/yuv_video_draw_quad.h b/cc/quads/yuv_video_draw_quad.h
index ef07848..5139384 100644
--- a/cc/quads/yuv_video_draw_quad.h
+++ b/cc/quads/yuv_video_draw_quad.h
@@ -9,7 +9,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/quads/draw_quad.h"
 #include "ui/gfx/color_space.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/cc/raster/bitmap_raster_buffer_provider.cc b/cc/raster/bitmap_raster_buffer_provider.cc
index 684d210b..a69ad18 100644
--- a/cc/raster/bitmap_raster_buffer_provider.cc
+++ b/cc/raster/bitmap_raster_buffer_provider.cc
@@ -15,7 +15,7 @@
 #include "base/trace_event/trace_event.h"
 #include "base/trace_event/trace_event_argument.h"
 #include "cc/debug/traced_value.h"
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 #include "cc/resources/platform_color.h"
 #include "cc/resources/resource.h"
 
diff --git a/cc/raster/gpu_raster_buffer_provider.cc b/cc/raster/gpu_raster_buffer_provider.cc
index d707220..50dc9fc 100644
--- a/cc/raster/gpu_raster_buffer_provider.cc
+++ b/cc/raster/gpu_raster_buffer_provider.cc
@@ -14,8 +14,8 @@
 #include "base/trace_event/trace_event.h"
 #include "cc/base/histograms.h"
 #include "cc/paint/paint_canvas.h"
-#include "cc/playback/image_hijack_canvas.h"
-#include "cc/playback/raster_source.h"
+#include "cc/raster/image_hijack_canvas.h"
+#include "cc/raster/raster_source.h"
 #include "cc/raster/scoped_gpu_raster.h"
 #include "cc/resources/resource.h"
 #include "gpu/command_buffer/client/context_support.h"
diff --git a/cc/playback/image_hijack_canvas.cc b/cc/raster/image_hijack_canvas.cc
similarity index 98%
rename from cc/playback/image_hijack_canvas.cc
rename to cc/raster/image_hijack_canvas.cc
index 7fe112e9..5d4c9e4 100644
--- a/cc/playback/image_hijack_canvas.cc
+++ b/cc/raster/image_hijack_canvas.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/image_hijack_canvas.h"
+#include "cc/raster/image_hijack_canvas.h"
 
 #include "base/optional.h"
 #include "base/trace_event/trace_event.h"
-#include "cc/playback/discardable_image_map.h"
+#include "cc/paint/discardable_image_map.h"
 #include "cc/tiles/image_decode_cache.h"
 #include "third_party/skia/include/core/SkPath.h"
 
diff --git a/cc/playback/image_hijack_canvas.h b/cc/raster/image_hijack_canvas.h
similarity index 91%
rename from cc/playback/image_hijack_canvas.h
rename to cc/raster/image_hijack_canvas.h
index 2a43d52..7a1940b 100644
--- a/cc/playback/image_hijack_canvas.h
+++ b/cc/raster/image_hijack_canvas.h
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_IMAGE_HIJACK_CANVAS_H_
-#define CC_PLAYBACK_IMAGE_HIJACK_CANVAS_H_
+#ifndef CC_RASTER_IMAGE_HIJACK_CANVAS_H_
+#define CC_RASTER_IMAGE_HIJACK_CANVAS_H_
 
 #include <unordered_set>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
-#include "cc/playback/image_id.h"
+#include "cc/cc_export.h"
+#include "cc/paint/image_id.h"
 #include "third_party/skia/include/utils/SkNWayCanvas.h"
 
 namespace cc {
@@ -63,4 +63,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_IMAGE_HIJACK_CANVAS_H_
+#endif  // CC_RASTER_IMAGE_HIJACK_CANVAS_H_
diff --git a/cc/playback/image_hijack_canvas_unittest.cc b/cc/raster/image_hijack_canvas_unittest.cc
similarity index 98%
rename from cc/playback/image_hijack_canvas_unittest.cc
rename to cc/raster/image_hijack_canvas_unittest.cc
index 951efb7..53caff0 100644
--- a/cc/playback/image_hijack_canvas_unittest.cc
+++ b/cc/raster/image_hijack_canvas_unittest.cc
@@ -1,7 +1,7 @@
 // Copyright 2016 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 "cc/playback/image_hijack_canvas.h"
+#include "cc/raster/image_hijack_canvas.h"
 
 #include "cc/test/skia_common.h"
 #include "cc/tiles/image_decode_cache.h"
diff --git a/cc/raster/raster_buffer.h b/cc/raster/raster_buffer.h
index 04972f9d..d045a70 100644
--- a/cc/raster/raster_buffer.h
+++ b/cc/raster/raster_buffer.h
@@ -7,8 +7,8 @@
 
 #include <stdint.h>
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/raster_source.h"
+#include "cc/cc_export.h"
+#include "cc/raster/raster_source.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace cc {
diff --git a/cc/raster/raster_buffer_provider.cc b/cc/raster/raster_buffer_provider.cc
index 2a6b4bb..bb49ae0 100644
--- a/cc/raster/raster_buffer_provider.cc
+++ b/cc/raster/raster_buffer_provider.cc
@@ -7,7 +7,7 @@
 #include <stddef.h>
 
 #include "base/trace_event/trace_event.h"
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 #include "cc/raster/texture_compressor.h"
 #include "cc/resources/platform_color.h"
 #include "cc/resources/resource_format_utils.h"
diff --git a/cc/raster/raster_buffer_provider.h b/cc/raster/raster_buffer_provider.h
index 28e6af4..011cd1d 100644
--- a/cc/raster/raster_buffer_provider.h
+++ b/cc/raster/raster_buffer_provider.h
@@ -7,8 +7,8 @@
 
 #include <stddef.h>
 
-#include "cc/playback/raster_source.h"
 #include "cc/raster/raster_buffer.h"
+#include "cc/raster/raster_source.h"
 #include "cc/raster/task_graph_runner.h"
 #include "cc/raster/tile_task.h"
 #include "cc/resources/resource_format.h"
diff --git a/cc/playback/raster_source.cc b/cc/raster/raster_source.cc
similarity index 97%
rename from cc/playback/raster_source.cc
rename to cc/raster/raster_source.cc
index 430c79e..43d7792 100644
--- a/cc/playback/raster_source.cc
+++ b/cc/raster/raster_source.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 
 #include <stddef.h>
 
@@ -11,9 +11,9 @@
 #include "cc/base/region.h"
 #include "cc/debug/debug_colors.h"
 #include "cc/debug/traced_value.h"
-#include "cc/playback/display_item_list.h"
-#include "cc/playback/image_hijack_canvas.h"
-#include "cc/playback/skip_image_canvas.h"
+#include "cc/paint/display_item_list.h"
+#include "cc/raster/image_hijack_canvas.h"
+#include "cc/raster/skip_image_canvas.h"
 #include "skia/ext/analysis_canvas.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "third_party/skia/include/core/SkColorSpaceXformCanvas.h"
@@ -58,8 +58,7 @@
           other->slow_down_raster_scale_factor_for_debug_),
       image_decode_cache_(other->image_decode_cache_) {}
 
-RasterSource::~RasterSource() {
-}
+RasterSource::~RasterSource() {}
 
 void RasterSource::PlaybackToCanvas(SkCanvas* raster_canvas,
                                     const gfx::ColorSpace& canvas_color_space,
diff --git a/cc/playback/raster_source.h b/cc/raster/raster_source.h
similarity index 96%
rename from cc/playback/raster_source.h
rename to cc/raster/raster_source.h
index 5fd81aa..ff9d0f2 100644
--- a/cc/playback/raster_source.h
+++ b/cc/raster/raster_source.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_RASTER_SOURCE_H_
-#define CC_PLAYBACK_RASTER_SOURCE_H_
+#ifndef CC_RASTER_RASTER_SOURCE_H_
+#define CC_RASTER_RASTER_SOURCE_H_
 
 #include <stddef.h>
 
@@ -11,10 +11,10 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/debug/rendering_stats_instrumentation.h"
-#include "cc/playback/image_id.h"
-#include "cc/playback/recording_source.h"
+#include "cc/layers/recording_source.h"
+#include "cc/paint/image_id.h"
 #include "skia/ext/analysis_canvas.h"
 #include "third_party/skia/include/core/SkPicture.h"
 #include "ui/gfx/color_space.h"
@@ -165,4 +165,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_RASTER_SOURCE_H_
+#endif  // CC_RASTER_RASTER_SOURCE_H_
diff --git a/cc/playback/raster_source_unittest.cc b/cc/raster/raster_source_unittest.cc
similarity index 99%
rename from cc/playback/raster_source_unittest.cc
rename to cc/raster/raster_source_unittest.cc
index 3b49f2d..743f84eb 100644
--- a/cc/playback/raster_source_unittest.cc
+++ b/cc/raster/raster_source_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 
 #include <stddef.h>
 
diff --git a/cc/raster/scoped_gpu_raster.h b/cc/raster/scoped_gpu_raster.h
index 3d9083b..dea7f275 100644
--- a/cc/raster/scoped_gpu_raster.h
+++ b/cc/raster/scoped_gpu_raster.h
@@ -9,7 +9,7 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/context_provider.h"
 
 namespace cc {
diff --git a/cc/playback/skip_image_canvas.cc b/cc/raster/skip_image_canvas.cc
similarity index 95%
rename from cc/playback/skip_image_canvas.cc
rename to cc/raster/skip_image_canvas.cc
index 27926be..3ec2e5f0 100644
--- a/cc/playback/skip_image_canvas.cc
+++ b/cc/raster/skip_image_canvas.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/skip_image_canvas.h"
+#include "cc/raster/skip_image_canvas.h"
 
 #include "third_party/skia/include/core/SkShader.h"
 
diff --git a/cc/playback/skip_image_canvas.h b/cc/raster/skip_image_canvas.h
similarity index 82%
rename from cc/playback/skip_image_canvas.h
rename to cc/raster/skip_image_canvas.h
index 67206b7..6932e996 100644
--- a/cc/playback/skip_image_canvas.h
+++ b/cc/raster/skip_image_canvas.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_SKIP_IMAGE_CANVAS_H_
-#define CC_PLAYBACK_SKIP_IMAGE_CANVAS_H_
+#ifndef CC_RASTER_SKIP_IMAGE_CANVAS_H_
+#define CC_RASTER_SKIP_IMAGE_CANVAS_H_
 
 #include "third_party/skia/include/utils/SkPaintFilterCanvas.h"
 
@@ -23,4 +23,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_SKIP_IMAGE_CANVAS_H_
+#endif  // CC_RASTER_SKIP_IMAGE_CANVAS_H_
diff --git a/cc/raster/task.h b/cc/raster/task.h
index 01c16a0..66ebc932 100644
--- a/cc/raster/task.h
+++ b/cc/raster/task.h
@@ -11,7 +11,7 @@
 #include <vector>
 
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 class Task;
diff --git a/cc/raster/task_graph_runner.h b/cc/raster/task_graph_runner.h
index d5e0d90..50c952bf 100644
--- a/cc/raster/task_graph_runner.h
+++ b/cc/raster/task_graph_runner.h
@@ -15,7 +15,7 @@
 
 #include "base/logging.h"
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/raster/task.h"
 
 namespace cc {
diff --git a/cc/raster/task_graph_work_queue.h b/cc/raster/task_graph_work_queue.h
index 4842a575..b1bbce8 100644
--- a/cc/raster/task_graph_work_queue.h
+++ b/cc/raster/task_graph_work_queue.h
@@ -11,7 +11,7 @@
 #include <map>
 #include <vector>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/raster/task_graph_runner.h"
 
 namespace cc {
diff --git a/cc/raster/texture_compressor.h b/cc/raster/texture_compressor.h
index 36a5a8d..709fc26 100644
--- a/cc/raster/texture_compressor.h
+++ b/cc/raster/texture_compressor.h
@@ -10,7 +10,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/resources/resource.h b/cc/resources/resource.h
index 7fd361f..4dd483e 100644
--- a/cc/resources/resource.h
+++ b/cc/resources/resource.h
@@ -7,7 +7,7 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/resource_provider.h"
 #include "cc/resources/resource_util.h"
 #include "ui/gfx/geometry/size.h"
diff --git a/cc/resources/resource_format.h b/cc/resources/resource_format.h
index 207dbf40..125a4ebf 100644
--- a/cc/resources/resource_format.h
+++ b/cc/resources/resource_format.h
@@ -6,7 +6,7 @@
 #define CC_RESOURCES_RESOURCE_FORMAT_H_
 
 #include "base/logging.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/buffer_types.h"
 
 // TODO(prashant.n): Including third_party/khronos/GLES2/gl2.h causes
diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h
index 5f387ea..8932364 100644
--- a/cc/resources/resource_pool.h
+++ b/cc/resources/resource_pool.h
@@ -16,7 +16,7 @@
 #include "base/memory/memory_coordinator_client.h"
 #include "base/memory/ptr_util.h"
 #include "base/trace_event/memory_dump_provider.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/resource.h"
 #include "cc/resources/resource_format.h"
 #include "cc/resources/scoped_resource.h"
diff --git a/cc/resources/resource_provider.h b/cc/resources/resource_provider.h
index eddfc63..df3c5b8 100644
--- a/cc/resources/resource_provider.h
+++ b/cc/resources/resource_provider.h
@@ -23,8 +23,8 @@
 #include "base/threading/thread_checker.h"
 #include "base/trace_event/memory_allocator_dump.h"
 #include "base/trace_event/memory_dump_provider.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/resource_id.h"
+#include "cc/cc_export.h"
 #include "cc/output/context_provider.h"
 #include "cc/output/output_surface.h"
 #include "cc/output/renderer_settings.h"
diff --git a/cc/resources/resource_util.h b/cc/resources/resource_util.h
index 51cda02..99fd2dc0 100644
--- a/cc/resources/resource_util.h
+++ b/cc/resources/resource_util.h
@@ -11,8 +11,8 @@
 
 #include "base/macros.h"
 #include "base/numerics/safe_math.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/math_util.h"
+#include "cc/cc_export.h"
 #include "cc/resources/resource_format.h"
 #include "ui/gfx/geometry/size.h"
 
diff --git a/cc/resources/returned_resource.h b/cc/resources/returned_resource.h
index 6fb4af7..d919df9 100644
--- a/cc/resources/returned_resource.h
+++ b/cc/resources/returned_resource.h
@@ -7,8 +7,8 @@
 
 #include <vector>
 
-#include "cc/base/cc_export.h"
 #include "cc/base/resource_id.h"
+#include "cc/cc_export.h"
 #include "gpu/command_buffer/common/sync_token.h"
 
 namespace cc {
diff --git a/cc/resources/scoped_resource.h b/cc/resources/scoped_resource.h
index 989a0211..5fda730a 100644
--- a/cc/resources/scoped_resource.h
+++ b/cc/resources/scoped_resource.h
@@ -10,7 +10,7 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/resource.h"
 
 #if DCHECK_IS_ON()
diff --git a/cc/resources/scoped_ui_resource.h b/cc/resources/scoped_ui_resource.h
index a0fb5d6d..8b11f7e 100644
--- a/cc/resources/scoped_ui_resource.h
+++ b/cc/resources/scoped_ui_resource.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/ui_resource_bitmap.h"
 #include "cc/resources/ui_resource_client.h"
 
diff --git a/cc/resources/shared_bitmap.h b/cc/resources/shared_bitmap.h
index c711a8b..464ac5c6 100644
--- a/cc/resources/shared_bitmap.h
+++ b/cc/resources/shared_bitmap.h
@@ -10,7 +10,7 @@
 
 #include "base/macros.h"
 #include "base/trace_event/memory_allocator_dump.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "gpu/command_buffer/common/mailbox.h"
 #include "ui/gfx/geometry/size.h"
 
diff --git a/cc/resources/shared_bitmap_manager.h b/cc/resources/shared_bitmap_manager.h
index 7ee8c9c..3257a00 100644
--- a/cc/resources/shared_bitmap_manager.h
+++ b/cc/resources/shared_bitmap_manager.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/shared_bitmap.h"
 #include "ui/gfx/geometry/size.h"
 
diff --git a/cc/resources/single_release_callback.h b/cc/resources/single_release_callback.h
index cfb2330..802ccb1 100644
--- a/cc/resources/single_release_callback.h
+++ b/cc/resources/single_release_callback.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/release_callback.h"
 
 namespace cc {
diff --git a/cc/resources/single_release_callback_impl.h b/cc/resources/single_release_callback_impl.h
index eafcb1f8..f5a8af0564 100644
--- a/cc/resources/single_release_callback_impl.h
+++ b/cc/resources/single_release_callback_impl.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/memory/ptr_util.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/release_callback_impl.h"
 
 namespace cc {
diff --git a/cc/resources/texture_mailbox.h b/cc/resources/texture_mailbox.h
index bcb40c5..ee86471 100644
--- a/cc/resources/texture_mailbox.h
+++ b/cc/resources/texture_mailbox.h
@@ -11,7 +11,7 @@
 #include <string>
 
 #include "base/memory/shared_memory.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "gpu/command_buffer/common/mailbox_holder.h"
 #include "mojo/public/cpp/bindings/struct_traits.h"
 #include "ui/gfx/color_space.h"
diff --git a/cc/resources/transferable_resource.h b/cc/resources/transferable_resource.h
index 5ff4bb4..baa4048 100644
--- a/cc/resources/transferable_resource.h
+++ b/cc/resources/transferable_resource.h
@@ -9,8 +9,8 @@
 
 #include <vector>
 
-#include "cc/base/cc_export.h"
 #include "cc/base/resource_id.h"
+#include "cc/cc_export.h"
 #include "cc/resources/resource_format.h"
 #include "gpu/command_buffer/common/mailbox_holder.h"
 #include "ui/gfx/buffer_types.h"
diff --git a/cc/resources/ui_resource_bitmap.h b/cc/resources/ui_resource_bitmap.h
index fab6bc8..66a8a38 100644
--- a/cc/resources/ui_resource_bitmap.h
+++ b/cc/resources/ui_resource_bitmap.h
@@ -10,7 +10,7 @@
 #include <memory>
 
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "third_party/skia/include/core/SkPixelRef.h"
diff --git a/cc/resources/ui_resource_client.h b/cc/resources/ui_resource_client.h
index c935ded6f..9da52db 100644
--- a/cc/resources/ui_resource_client.h
+++ b/cc/resources/ui_resource_client.h
@@ -7,7 +7,7 @@
 
 #include "base/callback.h"
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/resources/ui_resource_manager.h b/cc/resources/ui_resource_manager.h
index 269929b..7f29ba61f 100644
--- a/cc/resources/ui_resource_manager.h
+++ b/cc/resources/ui_resource_manager.h
@@ -9,7 +9,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/ui_resource_request.h"
 
 namespace cc {
diff --git a/cc/resources/ui_resource_request.h b/cc/resources/ui_resource_request.h
index 8294724..6178fde 100644
--- a/cc/resources/ui_resource_request.h
+++ b/cc/resources/ui_resource_request.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/logging.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/ui_resource_bitmap.h"
 #include "cc/resources/ui_resource_client.h"
 
diff --git a/cc/resources/video_resource_updater.h b/cc/resources/video_resource_updater.h
index 3c4d8e0..7cc2c81 100644
--- a/cc/resources/video_resource_updater.h
+++ b/cc/resources/video_resource_updater.h
@@ -16,7 +16,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/release_callback_impl.h"
 #include "cc/resources/resource_format.h"
 #include "cc/resources/texture_mailbox.h"
diff --git a/cc/scheduler/commit_earlyout_reason.h b/cc/scheduler/commit_earlyout_reason.h
index ff1566d..cd79c5c 100644
--- a/cc/scheduler/commit_earlyout_reason.h
+++ b/cc/scheduler/commit_earlyout_reason.h
@@ -6,7 +6,7 @@
 #define CC_SCHEDULER_COMMIT_EARLYOUT_REASON_H_
 
 #include "base/logging.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/scheduler/compositor_timing_history.h b/cc/scheduler/compositor_timing_history.h
index e82525b..58f5a20 100644
--- a/cc/scheduler/compositor_timing_history.h
+++ b/cc/scheduler/compositor_timing_history.h
@@ -9,6 +9,7 @@
 
 #include "base/macros.h"
 #include "cc/base/rolling_time_delta_history.h"
+#include "cc/cc_export.h"
 #include "cc/output/begin_frame_args.h"
 
 namespace base {
diff --git a/cc/scheduler/delay_based_time_source.h b/cc/scheduler/delay_based_time_source.h
index 417ee26..a4fb791 100644
--- a/cc/scheduler/delay_based_time_source.h
+++ b/cc/scheduler/delay_based_time_source.h
@@ -13,7 +13,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/weak_ptr.h"
 #include "base/values.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 namespace trace_event {
diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h
index 15c4526..9efd831 100644
--- a/cc/scheduler/scheduler.h
+++ b/cc/scheduler/scheduler.h
@@ -12,7 +12,7 @@
 #include "base/cancelable_callback.h"
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/begin_frame_args.h"
 #include "cc/scheduler/begin_frame_source.h"
 #include "cc/scheduler/begin_frame_tracker.h"
diff --git a/cc/scheduler/scheduler_settings.h b/cc/scheduler/scheduler_settings.h
index c6cc220..eaf3799 100644
--- a/cc/scheduler/scheduler_settings.h
+++ b/cc/scheduler/scheduler_settings.h
@@ -10,7 +10,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/time/time.h"
 #include "base/values.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 namespace trace_event {
diff --git a/cc/scheduler/scheduler_state_machine.h b/cc/scheduler/scheduler_state_machine.h
index 5f24386..cd4a7f2e 100644
--- a/cc/scheduler/scheduler_state_machine.h
+++ b/cc/scheduler/scheduler_state_machine.h
@@ -11,7 +11,7 @@
 #include <string>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/scheduler/commit_earlyout_reason.h"
 #include "cc/scheduler/draw_result.h"
 #include "cc/scheduler/scheduler_settings.h"
diff --git a/cc/scheduler/video_frame_controller.h b/cc/scheduler/video_frame_controller.h
index 0307cd5e..8a8c6e08 100644
--- a/cc/scheduler/video_frame_controller.h
+++ b/cc/scheduler/video_frame_controller.h
@@ -5,7 +5,7 @@
 #ifndef CC_SCHEDULER_VIDEO_FRAME_CONTROLLER_H_
 #define CC_SCHEDULER_VIDEO_FRAME_CONTROLLER_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/begin_frame_args.h"
 
 namespace cc {
diff --git a/cc/test/animation_test_common.h b/cc/test/animation_test_common.h
index 0d56f56..6485532 100644
--- a/cc/test/animation_test_common.h
+++ b/cc/test/animation_test_common.h
@@ -9,7 +9,7 @@
 #include "cc/animation/animation_curve.h"
 #include "cc/animation/animation_timeline.h"
 #include "cc/animation/transform_operations.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 #include "cc/test/geometry_test_utils.h"
 #include "cc/trees/element_id.h"
 
diff --git a/cc/test/animation_timelines_test_common.cc b/cc/test/animation_timelines_test_common.cc
index 35879f7..dd039a4 100644
--- a/cc/test/animation_timelines_test_common.cc
+++ b/cc/test/animation_timelines_test_common.cc
@@ -10,8 +10,8 @@
 #include "cc/animation/animation_player.h"
 #include "cc/animation/animation_timeline.h"
 #include "cc/animation/element_animations.h"
-#include "cc/output/filter_operation.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operation.h"
+#include "cc/base/filter_operations.h"
 #include "ui/gfx/transform.h"
 
 namespace cc {
diff --git a/cc/test/fake_content_layer_client.cc b/cc/test/fake_content_layer_client.cc
index 906ee5e..863ccee8 100644
--- a/cc/test/fake_content_layer_client.cc
+++ b/cc/test/fake_content_layer_client.cc
@@ -6,11 +6,11 @@
 
 #include <stddef.h>
 
+#include "cc/paint/clip_display_item.h"
+#include "cc/paint/drawing_display_item.h"
 #include "cc/paint/paint_canvas.h"
 #include "cc/paint/paint_recorder.h"
-#include "cc/playback/clip_display_item.h"
-#include "cc/playback/drawing_display_item.h"
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/transform_display_item.h"
 #include "ui/gfx/geometry/rect_conversions.h"
 #include "ui/gfx/skia_util.h"
 
diff --git a/cc/test/fake_picture_layer.h b/cc/test/fake_picture_layer.h
index 2152f0f..d3df07b 100644
--- a/cc/test/fake_picture_layer.h
+++ b/cc/test/fake_picture_layer.h
@@ -11,7 +11,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "cc/layers/picture_layer.h"
-#include "cc/playback/recording_source.h"
+#include "cc/layers/recording_source.h"
 
 namespace cc {
 class FakePictureLayer : public PictureLayer {
diff --git a/cc/test/fake_picture_layer_impl.h b/cc/test/fake_picture_layer_impl.h
index 9e93e9b..c93900a0 100644
--- a/cc/test/fake_picture_layer_impl.h
+++ b/cc/test/fake_picture_layer_impl.h
@@ -11,7 +11,7 @@
 
 #include "base/memory/ptr_util.h"
 #include "cc/layers/picture_layer_impl.h"
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 
 namespace cc {
 
diff --git a/cc/test/fake_picture_layer_tiling_client.h b/cc/test/fake_picture_layer_tiling_client.h
index dedc491..8e204d9 100644
--- a/cc/test/fake_picture_layer_tiling_client.h
+++ b/cc/test/fake_picture_layer_tiling_client.h
@@ -5,7 +5,7 @@
 #ifndef CC_TEST_FAKE_PICTURE_LAYER_TILING_CLIENT_H_
 #define CC_TEST_FAKE_PICTURE_LAYER_TILING_CLIENT_H_
 
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 #include "cc/test/fake_tile_manager_client.h"
 #include "cc/tiles/picture_layer_tiling.h"
 #include "cc/tiles/tile.h"
diff --git a/cc/test/fake_raster_source.h b/cc/test/fake_raster_source.h
index 6549f58..4a2103f 100644
--- a/cc/test/fake_raster_source.h
+++ b/cc/test/fake_raster_source.h
@@ -6,7 +6,7 @@
 #define CC_TEST_FAKE_RASTER_SOURCE_H_
 
 #include "base/memory/ref_counted.h"
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/size.h"
 
diff --git a/cc/test/fake_recording_source.h b/cc/test/fake_recording_source.h
index 9a007fd..dba41fb 100644
--- a/cc/test/fake_recording_source.h
+++ b/cc/test/fake_recording_source.h
@@ -8,7 +8,7 @@
 #include <stddef.h>
 
 #include "cc/base/region.h"
-#include "cc/playback/recording_source.h"
+#include "cc/layers/recording_source.h"
 #include "cc/test/fake_content_layer_client.h"
 #include "cc/trees/layer_tree_settings.h"
 #include "third_party/skia/include/core/SkImage.h"
diff --git a/cc/test/render_pass_test_utils.h b/cc/test/render_pass_test_utils.h
index 91b14f8..82488b7 100644
--- a/cc/test/render_pass_test_utils.h
+++ b/cc/test/render_pass_test_utils.h
@@ -7,7 +7,7 @@
 
 #include <stdint.h>
 
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 #include "cc/quads/render_pass.h"
 #include "cc/resources/resource_provider.h"
 #include "third_party/skia/include/core/SkColor.h"
diff --git a/cc/test/skia_common.cc b/cc/test/skia_common.cc
index 466d733a..5c907d0 100644
--- a/cc/test/skia_common.cc
+++ b/cc/test/skia_common.cc
@@ -7,8 +7,8 @@
 #include <stddef.h>
 
 #include "base/memory/ptr_util.h"
+#include "cc/paint/display_item_list.h"
 #include "cc/paint/paint_canvas.h"
-#include "cc/playback/display_item_list.h"
 #include "third_party/skia/include/core/SkImageGenerator.h"
 #include "third_party/skia/include/core/SkPixmap.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/cc/test/solid_color_content_layer_client.cc b/cc/test/solid_color_content_layer_client.cc
index cb8e13c..76eda5d 100644
--- a/cc/test/solid_color_content_layer_client.cc
+++ b/cc/test/solid_color_content_layer_client.cc
@@ -6,10 +6,10 @@
 
 #include <stddef.h>
 
+#include "cc/paint/drawing_display_item.h"
 #include "cc/paint/paint_canvas.h"
 #include "cc/paint/paint_flags.h"
 #include "cc/paint/paint_recorder.h"
-#include "cc/playback/drawing_display_item.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_f.h"
 #include "ui/gfx/skia_util.h"
diff --git a/cc/tiles/checker_image_tracker.h b/cc/tiles/checker_image_tracker.h
index b2a16ec..3bc29f5 100644
--- a/cc/tiles/checker_image_tracker.h
+++ b/cc/tiles/checker_image_tracker.h
@@ -8,8 +8,8 @@
 #include <unordered_map>
 #include <vector>
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/image_id.h"
+#include "cc/cc_export.h"
+#include "cc/paint/image_id.h"
 #include "cc/tiles/image_controller.h"
 #include "third_party/skia/include/core/SkImage.h"
 
diff --git a/cc/playback/decoded_draw_image.cc b/cc/tiles/decoded_draw_image.cc
similarity index 95%
rename from cc/playback/decoded_draw_image.cc
rename to cc/tiles/decoded_draw_image.cc
index fa5c3b4..f68c6c0c 100644
--- a/cc/playback/decoded_draw_image.cc
+++ b/cc/tiles/decoded_draw_image.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "cc/playback/decoded_draw_image.h"
+#include "cc/tiles/decoded_draw_image.h"
 
 namespace cc {
 
diff --git a/cc/playback/decoded_draw_image.h b/cc/tiles/decoded_draw_image.h
similarity index 90%
rename from cc/playback/decoded_draw_image.h
rename to cc/tiles/decoded_draw_image.h
index 8003fa6..24e4ac4 100644
--- a/cc/playback/decoded_draw_image.h
+++ b/cc/tiles/decoded_draw_image.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CC_PLAYBACK_DECODED_DRAW_IMAGE_H_
-#define CC_PLAYBACK_DECODED_DRAW_IMAGE_H_
+#ifndef CC_TILES_DECODED_DRAW_IMAGE_H_
+#define CC_TILES_DECODED_DRAW_IMAGE_H_
 
 #include <cfloat>
 #include <cmath>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "third_party/skia/include/core/SkFilterQuality.h"
 #include "third_party/skia/include/core/SkImage.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
@@ -50,4 +50,4 @@
 
 }  // namespace cc
 
-#endif  // CC_PLAYBACK_DECODED_DRAW_IMAGE_H_
+#endif  // CC_TILES_DECODED_DRAW_IMAGE_H_
diff --git a/cc/tiles/decoded_image_tracker.h b/cc/tiles/decoded_image_tracker.h
index a0016a3be..0159702 100644
--- a/cc/tiles/decoded_image_tracker.h
+++ b/cc/tiles/decoded_image_tracker.h
@@ -9,7 +9,7 @@
 #include <vector>
 
 #include "base/bind.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/tiles/image_controller.h"
 
 class SkImage;
diff --git a/cc/tiles/eviction_tile_priority_queue.h b/cc/tiles/eviction_tile_priority_queue.h
index d97bee6a..2e76ee8 100644
--- a/cc/tiles/eviction_tile_priority_queue.h
+++ b/cc/tiles/eviction_tile_priority_queue.h
@@ -10,7 +10,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/picture_layer_impl.h"
 #include "cc/tiles/tile_priority.h"
 #include "cc/tiles/tiling_set_eviction_queue.h"
diff --git a/cc/tiles/gpu_image_decode_cache.h b/cc/tiles/gpu_image_decode_cache.h
index 14e4996..a48624d 100644
--- a/cc/tiles/gpu_image_decode_cache.h
+++ b/cc/tiles/gpu_image_decode_cache.h
@@ -14,7 +14,7 @@
 #include "base/memory/memory_coordinator_client.h"
 #include "base/synchronization/lock.h"
 #include "base/trace_event/memory_dump_provider.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/resources/resource_format.h"
 #include "cc/tiles/image_decode_cache.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
diff --git a/cc/tiles/gpu_image_decode_cache_unittest.cc b/cc/tiles/gpu_image_decode_cache_unittest.cc
index 901c7f8..b1c73cf2 100644
--- a/cc/tiles/gpu_image_decode_cache_unittest.cc
+++ b/cc/tiles/gpu_image_decode_cache_unittest.cc
@@ -4,7 +4,7 @@
 
 #include "cc/tiles/gpu_image_decode_cache.h"
 
-#include "cc/playback/draw_image.h"
+#include "cc/paint/draw_image.h"
 #include "cc/test/test_context_provider.h"
 #include "cc/test/test_tile_task_runner.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/cc/tiles/image_controller.h b/cc/tiles/image_controller.h
index f62638a..ba267f0e 100644
--- a/cc/tiles/image_controller.h
+++ b/cc/tiles/image_controller.h
@@ -12,9 +12,9 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/simple_thread.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/unique_notifier.h"
-#include "cc/playback/draw_image.h"
+#include "cc/cc_export.h"
+#include "cc/paint/draw_image.h"
 #include "cc/raster/tile_task.h"
 #include "cc/tiles/image_decode_cache.h"
 
diff --git a/cc/tiles/image_decode_cache.h b/cc/tiles/image_decode_cache.h
index 4cba352d..62e624cc 100644
--- a/cc/tiles/image_decode_cache.h
+++ b/cc/tiles/image_decode_cache.h
@@ -6,8 +6,8 @@
 #define CC_TILES_IMAGE_DECODE_CACHE_H_
 
 #include "base/memory/ref_counted.h"
-#include "cc/playback/decoded_draw_image.h"
-#include "cc/playback/draw_image.h"
+#include "cc/paint/draw_image.h"
+#include "cc/tiles/decoded_draw_image.h"
 #include "cc/tiles/tile_priority.h"
 
 namespace cc {
diff --git a/cc/tiles/mipmap_util.h b/cc/tiles/mipmap_util.h
index 9aeeefa..400d0e4 100644
--- a/cc/tiles/mipmap_util.h
+++ b/cc/tiles/mipmap_util.h
@@ -5,7 +5,7 @@
 #ifndef CC_TILES_MIPMAP_UTIL_H_
 #define CC_TILES_MIPMAP_UTIL_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "third_party/skia/include/core/SkSize.h"
 #include "ui/gfx/skia_util.h"
 
diff --git a/cc/tiles/picture_layer_tiling.cc b/cc/tiles/picture_layer_tiling.cc
index ce6b1d8f..b429260 100644
--- a/cc/tiles/picture_layer_tiling.cc
+++ b/cc/tiles/picture_layer_tiling.cc
@@ -18,7 +18,7 @@
 #include "base/trace_event/trace_event.h"
 #include "base/trace_event/trace_event_argument.h"
 #include "cc/base/math_util.h"
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 #include "cc/tiles/prioritized_tile.h"
 #include "cc/tiles/tile.h"
 #include "cc/tiles/tile_priority.h"
diff --git a/cc/tiles/picture_layer_tiling.h b/cc/tiles/picture_layer_tiling.h
index e9c192c..b718ca18 100644
--- a/cc/tiles/picture_layer_tiling.h
+++ b/cc/tiles/picture_layer_tiling.h
@@ -15,9 +15,9 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/region.h"
 #include "cc/base/tiling_data.h"
+#include "cc/cc_export.h"
 #include "cc/tiles/tile.h"
 #include "cc/tiles/tile_priority.h"
 #include "cc/trees/occlusion.h"
diff --git a/cc/tiles/picture_layer_tiling_set.cc b/cc/tiles/picture_layer_tiling_set.cc
index ef764fc..d9c21ab 100644
--- a/cc/tiles/picture_layer_tiling_set.cc
+++ b/cc/tiles/picture_layer_tiling_set.cc
@@ -13,7 +13,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/stl_util.h"
 #include "base/trace_event/trace_event.h"
-#include "cc/playback/raster_source.h"
+#include "cc/raster/raster_source.h"
 #include "ui/gfx/geometry/rect_conversions.h"
 
 namespace cc {
diff --git a/cc/tiles/prioritized_tile.h b/cc/tiles/prioritized_tile.h
index db7967e..7decc73cc 100644
--- a/cc/tiles/prioritized_tile.h
+++ b/cc/tiles/prioritized_tile.h
@@ -5,8 +5,8 @@
 #ifndef CC_TILES_PRIORITIZED_TILE_H_
 #define CC_TILES_PRIORITIZED_TILE_H_
 
-#include "cc/base/cc_export.h"
-#include "cc/playback/raster_source.h"
+#include "cc/cc_export.h"
+#include "cc/raster/raster_source.h"
 #include "cc/tiles/picture_layer_tiling.h"
 #include "cc/tiles/tile.h"
 #include "cc/tiles/tile_priority.h"
diff --git a/cc/tiles/raster_tile_priority_queue.h b/cc/tiles/raster_tile_priority_queue.h
index 5a41827f..9886076 100644
--- a/cc/tiles/raster_tile_priority_queue.h
+++ b/cc/tiles/raster_tile_priority_queue.h
@@ -8,7 +8,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/picture_layer_impl.h"
 #include "cc/tiles/tile_priority.h"
 
diff --git a/cc/tiles/raster_tile_priority_queue_all.h b/cc/tiles/raster_tile_priority_queue_all.h
index af4983a..698dfe0 100644
--- a/cc/tiles/raster_tile_priority_queue_all.h
+++ b/cc/tiles/raster_tile_priority_queue_all.h
@@ -10,7 +10,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/picture_layer_impl.h"
 #include "cc/tiles/raster_tile_priority_queue.h"
 #include "cc/tiles/tile_priority.h"
diff --git a/cc/tiles/software_image_decode_cache.h b/cc/tiles/software_image_decode_cache.h
index 277d4e7..9032385 100644
--- a/cc/tiles/software_image_decode_cache.h
+++ b/cc/tiles/software_image_decode_cache.h
@@ -20,10 +20,10 @@
 #include "base/numerics/safe_math.h"
 #include "base/threading/thread_checker.h"
 #include "base/trace_event/memory_dump_provider.h"
-#include "cc/base/cc_export.h"
-#include "cc/playback/decoded_draw_image.h"
-#include "cc/playback/draw_image.h"
+#include "cc/cc_export.h"
+#include "cc/paint/draw_image.h"
 #include "cc/resources/resource_format.h"
+#include "cc/tiles/decoded_draw_image.h"
 #include "cc/tiles/image_decode_cache.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/cc/tiles/software_image_decode_cache_perftest.cc b/cc/tiles/software_image_decode_cache_perftest.cc
index be32b58..f13e1cf 100644
--- a/cc/tiles/software_image_decode_cache_perftest.cc
+++ b/cc/tiles/software_image_decode_cache_perftest.cc
@@ -5,7 +5,7 @@
 #include <vector>
 
 #include "cc/debug/lap_timer.h"
-#include "cc/playback/draw_image.h"
+#include "cc/paint/draw_image.h"
 #include "cc/raster/tile_task.h"
 #include "cc/tiles/software_image_decode_cache.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/cc/tiles/software_image_decode_cache_unittest.cc b/cc/tiles/software_image_decode_cache_unittest.cc
index 67855fb..8df5b9c8 100644
--- a/cc/tiles/software_image_decode_cache_unittest.cc
+++ b/cc/tiles/software_image_decode_cache_unittest.cc
@@ -4,7 +4,7 @@
 
 #include "cc/tiles/software_image_decode_cache.h"
 
-#include "cc/playback/draw_image.h"
+#include "cc/paint/draw_image.h"
 #include "cc/resources/resource_format.h"
 #include "cc/test/test_tile_task_runner.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/cc/tiles/tile_manager.h b/cc/tiles/tile_manager.h
index 36234178f..5de0a154 100644
--- a/cc/tiles/tile_manager.h
+++ b/cc/tiles/tile_manager.h
@@ -17,8 +17,8 @@
 #include "base/macros.h"
 #include "base/values.h"
 #include "cc/base/unique_notifier.h"
-#include "cc/playback/raster_source.h"
 #include "cc/raster/raster_buffer_provider.h"
+#include "cc/raster/raster_source.h"
 #include "cc/resources/memory_history.h"
 #include "cc/resources/resource_pool.h"
 #include "cc/tiles/checker_image_tracker.h"
diff --git a/cc/tiles/tile_manager_settings.h b/cc/tiles/tile_manager_settings.h
index db086d1..65da9e4 100644
--- a/cc/tiles/tile_manager_settings.h
+++ b/cc/tiles/tile_manager_settings.h
@@ -5,7 +5,7 @@
 #ifndef CC_TILES_TILE_MANAGER_SETTINGS_H_
 #define CC_TILES_TILE_MANAGER_SETTINGS_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/tiles/tile_manager_unittest.cc b/cc/tiles/tile_manager_unittest.cc
index 59f1fd3..b006f5ab 100644
--- a/cc/tiles/tile_manager_unittest.cc
+++ b/cc/tiles/tile_manager_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/run_loop.h"
 #include "base/test/test_simple_task_runner.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "cc/playback/raster_source.h"
-#include "cc/playback/recording_source.h"
+#include "cc/layers/recording_source.h"
 #include "cc/raster/raster_buffer.h"
+#include "cc/raster/raster_source.h"
 #include "cc/raster/synchronous_task_graph_runner.h"
 #include "cc/resources/resource_pool.h"
 #include "cc/test/begin_frame_args_test.h"
diff --git a/cc/tiles/tile_priority.h b/cc/tiles/tile_priority.h
index cf0bbd1..15746de 100644
--- a/cc/tiles/tile_priority.h
+++ b/cc/tiles/tile_priority.h
@@ -13,7 +13,7 @@
 #include <string>
 
 #include "base/trace_event/trace_event_argument.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 class Value;
diff --git a/cc/tiles/tiling_set_eviction_queue.h b/cc/tiles/tiling_set_eviction_queue.h
index 493d74a..e6055e5 100644
--- a/cc/tiles/tiling_set_eviction_queue.h
+++ b/cc/tiles/tiling_set_eviction_queue.h
@@ -9,7 +9,7 @@
 
 #include <vector>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/tiles/picture_layer_tiling_set.h"
 #include "cc/tiles/prioritized_tile.h"
 
diff --git a/cc/tiles/tiling_set_raster_queue_all.h b/cc/tiles/tiling_set_raster_queue_all.h
index c49a37e..31815638 100644
--- a/cc/tiles/tiling_set_raster_queue_all.h
+++ b/cc/tiles/tiling_set_raster_queue_all.h
@@ -9,7 +9,7 @@
 
 #include "base/containers/stack_container.h"
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/tiles/picture_layer_tiling_set.h"
 #include "cc/tiles/prioritized_tile.h"
 #include "cc/tiles/tile.h"
diff --git a/cc/tiles/tiling_set_raster_queue_required.h b/cc/tiles/tiling_set_raster_queue_required.h
index 4573d040..3bc8a96 100644
--- a/cc/tiles/tiling_set_raster_queue_required.h
+++ b/cc/tiles/tiling_set_raster_queue_required.h
@@ -5,7 +5,7 @@
 #ifndef CC_TILES_TILING_SET_RASTER_QUEUE_REQUIRED_H_
 #define CC_TILES_TILING_SET_RASTER_QUEUE_REQUIRED_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/tiles/picture_layer_tiling_set.h"
 #include "cc/tiles/raster_tile_priority_queue.h"
 #include "cc/tiles/tile.h"
diff --git a/cc/trees/blocking_task_runner.h b/cc/trees/blocking_task_runner.h
index 515cb25..d34e2f20 100644
--- a/cc/trees/blocking_task_runner.h
+++ b/cc/trees/blocking_task_runner.h
@@ -13,7 +13,7 @@
 #include "base/single_thread_task_runner.h"
 #include "base/synchronization/lock.h"
 #include "base/threading/platform_thread.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/trees/clip_expander.h b/cc/trees/clip_expander.h
index 781d489..209477a 100644
--- a/cc/trees/clip_expander.h
+++ b/cc/trees/clip_expander.h
@@ -5,7 +5,7 @@
 #ifndef CC_TREES_CLIP_EXPANDER_H_
 #define CC_TREES_CLIP_EXPANDER_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace cc {
diff --git a/cc/trees/clip_node.h b/cc/trees/clip_node.h
index b81c72c2..3dc95e9 100644
--- a/cc/trees/clip_node.h
+++ b/cc/trees/clip_node.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/trees/clip_expander.h"
 #include "ui/gfx/geometry/rect_f.h"
 
diff --git a/cc/trees/damage_tracker.cc b/cc/trees/damage_tracker.cc
index ae311dd2..f0aa4c3 100644
--- a/cc/trees/damage_tracker.cc
+++ b/cc/trees/damage_tracker.cc
@@ -9,11 +9,11 @@
 #include <algorithm>
 
 #include "base/memory/ptr_util.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/math_util.h"
 #include "cc/layers/heads_up_display_layer_impl.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/layers/render_surface_impl.h"
-#include "cc/output/filter_operations.h"
 #include "cc/trees/layer_tree_host_common.h"
 #include "cc/trees/layer_tree_impl.h"
 #include "ui/gfx/geometry/rect_conversions.h"
diff --git a/cc/trees/damage_tracker.h b/cc/trees/damage_tracker.h
index e41a1cf8..6ddc504 100644
--- a/cc/trees/damage_tracker.h
+++ b/cc/trees/damage_tracker.h
@@ -9,7 +9,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_collections.h"
 #include "ui/gfx/geometry/rect.h"
 
diff --git a/cc/trees/damage_tracker_unittest.cc b/cc/trees/damage_tracker_unittest.cc
index 7ed4830..80901e6 100644
--- a/cc/trees/damage_tracker_unittest.cc
+++ b/cc/trees/damage_tracker_unittest.cc
@@ -6,10 +6,10 @@
 
 #include <stddef.h>
 
+#include "cc/base/filter_operation.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/math_util.h"
 #include "cc/layers/layer_impl.h"
-#include "cc/output/filter_operation.h"
-#include "cc/output/filter_operations.h"
 #include "cc/test/fake_impl_task_runner_provider.h"
 #include "cc/test/fake_layer_tree_host_impl.h"
 #include "cc/test/geometry_test_utils.h"
diff --git a/cc/trees/draw_property_utils.h b/cc/trees/draw_property_utils.h
index 4f19d14..26fa0edf 100644
--- a/cc/trees/draw_property_utils.h
+++ b/cc/trees/draw_property_utils.h
@@ -5,7 +5,7 @@
 #ifndef CC_TREES_DRAW_PROPERTY_UTILS_H_
 #define CC_TREES_DRAW_PROPERTY_UTILS_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_collections.h"
 
 namespace gfx {
diff --git a/cc/trees/effect_node.h b/cc/trees/effect_node.h
index a5a1385..1a96198 100644
--- a/cc/trees/effect_node.h
+++ b/cc/trees/effect_node.h
@@ -5,8 +5,8 @@
 #ifndef CC_TREES_EFFECT_NODE_H_
 #define CC_TREES_EFFECT_NODE_H_
 
-#include "cc/base/cc_export.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
+#include "cc/cc_export.h"
 #include "third_party/skia/include/core/SkBlendMode.h"
 #include "ui/gfx/geometry/point_f.h"
 #include "ui/gfx/geometry/size_f.h"
diff --git a/cc/trees/element_id.h b/cc/trees/element_id.h
index 4c0b652..74de4c9 100644
--- a/cc/trees/element_id.h
+++ b/cc/trees/element_id.h
@@ -13,7 +13,7 @@
 #include <memory>
 
 #include "base/hash.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 class Value;
diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h
index 01ad6af..a78a89c 100644
--- a/cc/trees/layer_tree_host.h
+++ b/cc/trees/layer_tree_host.h
@@ -20,7 +20,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/debug/micro_benchmark.h"
 #include "cc/debug/micro_benchmark_controller.h"
 #include "cc/input/browser_controls_state.h"
diff --git a/cc/trees/layer_tree_host_common.h b/cc/trees/layer_tree_host_common.h
index de96d95..9a5f2bf 100644
--- a/cc/trees/layer_tree_host_common.h
+++ b/cc/trees/layer_tree_host_common.h
@@ -13,7 +13,7 @@
 #include "base/bind.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/layer_collections.h"
 #include "cc/layers/layer_impl.h"
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
index 5b2cfa48..b69457cf 100644
--- a/cc/trees/layer_tree_host_impl.h
+++ b/cc/trees/layer_tree_host_impl.h
@@ -17,8 +17,8 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/synced_property.h"
+#include "cc/cc_export.h"
 #include "cc/debug/micro_benchmark_controller_impl.h"
 #include "cc/input/browser_controls_offset_manager_client.h"
 #include "cc/input/input_handler.h"
diff --git a/cc/trees/layer_tree_host_pixeltest_masks.cc b/cc/trees/layer_tree_host_pixeltest_masks.cc
index bd43e52f..8a8f6352 100644
--- a/cc/trees/layer_tree_host_pixeltest_masks.cc
+++ b/cc/trees/layer_tree_host_pixeltest_masks.cc
@@ -9,10 +9,10 @@
 #include "cc/layers/picture_image_layer.h"
 #include "cc/layers/picture_layer.h"
 #include "cc/layers/solid_color_layer.h"
+#include "cc/paint/drawing_display_item.h"
 #include "cc/paint/paint_flags.h"
 #include "cc/paint/paint_recorder.h"
 #include "cc/paint/paint_surface.h"
-#include "cc/playback/drawing_display_item.h"
 #include "cc/test/layer_tree_pixel_resource_test.h"
 #include "cc/test/pixel_comparator.h"
 #include "cc/test/solid_color_content_layer_client.h"
diff --git a/cc/trees/layer_tree_host_pixeltest_tiles.cc b/cc/trees/layer_tree_host_pixeltest_tiles.cc
index b74968e..ac5ce27e 100644
--- a/cc/trees/layer_tree_host_pixeltest_tiles.cc
+++ b/cc/trees/layer_tree_host_pixeltest_tiles.cc
@@ -7,11 +7,11 @@
 #include "cc/layers/content_layer_client.h"
 #include "cc/layers/picture_layer.h"
 #include "cc/output/copy_output_request.h"
+#include "cc/paint/display_item_list.h"
+#include "cc/paint/drawing_display_item.h"
 #include "cc/paint/paint_canvas.h"
 #include "cc/paint/paint_flags.h"
 #include "cc/paint/paint_recorder.h"
-#include "cc/playback/display_item_list.h"
-#include "cc/playback/drawing_display_item.h"
 #include "cc/test/layer_tree_pixel_test.h"
 #include "cc/test/test_compositor_frame_sink.h"
 #include "gpu/command_buffer/client/gles2_interface.h"
diff --git a/cc/trees/layer_tree_host_unittest_context.cc b/cc/trees/layer_tree_host_unittest_context.cc
index f59b200..f7bed32 100644
--- a/cc/trees/layer_tree_host_unittest_context.cc
+++ b/cc/trees/layer_tree_host_unittest_context.cc
@@ -6,6 +6,7 @@
 #include <stdint.h>
 
 #include "base/memory/ptr_util.h"
+#include "cc/base/filter_operations.h"
 #include "cc/layers/heads_up_display_layer.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/layers/painted_scrollbar_layer.h"
@@ -14,7 +15,6 @@
 #include "cc/layers/texture_layer_impl.h"
 #include "cc/layers/video_layer.h"
 #include "cc/layers/video_layer_impl.h"
-#include "cc/output/filter_operations.h"
 #include "cc/paint/paint_flags.h"
 #include "cc/resources/single_release_callback.h"
 #include "cc/resources/ui_resource_manager.h"
diff --git a/cc/trees/layer_tree_mutator.h b/cc/trees/layer_tree_mutator.h
index 9233ca2..f7a1578 100644
--- a/cc/trees/layer_tree_mutator.h
+++ b/cc/trees/layer_tree_mutator.h
@@ -7,7 +7,7 @@
 
 #include "base/callback_forward.h"
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h
index 001a648..3e6d56d 100644
--- a/cc/trees/layer_tree_settings.h
+++ b/cc/trees/layer_tree_settings.h
@@ -10,7 +10,7 @@
 #include <vector>
 
 #include "base/time/time.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/debug/layer_tree_debug_state.h"
 #include "cc/output/managed_memory_policy.h"
 #include "cc/output/renderer_settings.h"
diff --git a/cc/trees/occlusion.h b/cc/trees/occlusion.h
index 7e856aa..ea38304 100644
--- a/cc/trees/occlusion.h
+++ b/cc/trees/occlusion.h
@@ -7,8 +7,8 @@
 
 #include <string>
 
-#include "cc/base/cc_export.h"
 #include "cc/base/simple_enclosed_region.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/transform.h"
 
diff --git a/cc/trees/occlusion_tracker.h b/cc/trees/occlusion_tracker.h
index 13ef757..62929d8 100644
--- a/cc/trees/occlusion_tracker.h
+++ b/cc/trees/occlusion_tracker.h
@@ -8,8 +8,8 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
 #include "cc/base/simple_enclosed_region.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_iterator.h"
 #include "cc/trees/occlusion.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/cc/trees/occlusion_tracker_unittest.cc b/cc/trees/occlusion_tracker_unittest.cc
index 2e0d1b6..7412de2 100644
--- a/cc/trees/occlusion_tracker_unittest.cc
+++ b/cc/trees/occlusion_tracker_unittest.cc
@@ -7,13 +7,13 @@
 #include <stddef.h>
 
 #include "cc/animation/animation_host.h"
+#include "cc/base/filter_operation.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/math_util.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/layer_impl.h"
 #include "cc/output/copy_output_request.h"
 #include "cc/output/copy_output_result.h"
-#include "cc/output/filter_operation.h"
-#include "cc/output/filter_operations.h"
 #include "cc/test/animation_test_common.h"
 #include "cc/test/fake_impl_task_runner_provider.h"
 #include "cc/test/fake_layer_tree_host.h"
diff --git a/cc/trees/property_animation_state.h b/cc/trees/property_animation_state.h
index a171a91c..1b7c07a7 100644
--- a/cc/trees/property_animation_state.h
+++ b/cc/trees/property_animation_state.h
@@ -5,7 +5,7 @@
 #ifndef CC_TREES_PROPERTY_ANIMATION_STATE_H_
 #define CC_TREES_PROPERTY_ANIMATION_STATE_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/trees/target_property.h"
 
 namespace cc {
diff --git a/cc/trees/property_tree.h b/cc/trees/property_tree.h
index f7e90ea7..2059b8a 100644
--- a/cc/trees/property_tree.h
+++ b/cc/trees/property_tree.h
@@ -11,10 +11,10 @@
 #include <unordered_map>
 #include <vector>
 
-#include "cc/base/cc_export.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/synced_property.h"
+#include "cc/cc_export.h"
 #include "cc/layers/layer_sticky_position_constraint.h"
-#include "cc/output/filter_operations.h"
 #include "cc/trees/element_id.h"
 #include "ui/gfx/geometry/rect_f.h"
 #include "ui/gfx/geometry/scroll_offset.h"
diff --git a/cc/trees/proxy.h b/cc/trees/proxy.h
index 9e6c4c09..7bb9145a 100644
--- a/cc/trees/proxy.h
+++ b/cc/trees/proxy.h
@@ -13,7 +13,7 @@
 #include "base/threading/platform_thread.h"
 #include "base/time/time.h"
 #include "base/values.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/browser_controls_state.h"
 #include "cc/scheduler/begin_frame_source.h"
 #include "cc/trees/task_runner_provider.h"
diff --git a/cc/trees/proxy_common.h b/cc/trees/proxy_common.h
index 7929d12..45e16a9 100644
--- a/cc/trees/proxy_common.h
+++ b/cc/trees/proxy_common.h
@@ -8,7 +8,7 @@
 #include <stddef.h>
 
 #include "base/callback_forward.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/begin_frame_args.h"
 #include "cc/trees/layer_tree_host_common.h"
 
diff --git a/cc/trees/proxy_main.h b/cc/trees/proxy_main.h
index 29f4880..3d97276 100644
--- a/cc/trees/proxy_main.h
+++ b/cc/trees/proxy_main.h
@@ -6,7 +6,7 @@
 #define CC_TREES_PROXY_MAIN_H_
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/input/browser_controls_state.h"
 #include "cc/trees/proxy.h"
 #include "cc/trees/proxy_common.h"
diff --git a/cc/trees/scroll_node.h b/cc/trees/scroll_node.h
index 09d7be8..4eefe42a 100644
--- a/cc/trees/scroll_node.h
+++ b/cc/trees/scroll_node.h
@@ -5,9 +5,9 @@
 #ifndef CC_TREES_SCROLL_NODE_H_
 #define CC_TREES_SCROLL_NODE_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/base/filter_operations.h"
 #include "cc/base/region.h"
-#include "cc/output/filter_operations.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/geometry/size.h"
 
 namespace base {
diff --git a/cc/trees/swap_promise_manager.h b/cc/trees/swap_promise_manager.h
index 8b5d9a23..795493d 100644
--- a/cc/trees/swap_promise_manager.h
+++ b/cc/trees/swap_promise_manager.h
@@ -9,7 +9,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "cc/output/swap_promise.h"
 
 namespace cc {
diff --git a/cc/trees/swap_promise_monitor.h b/cc/trees/swap_promise_monitor.h
index 5501764..cde077e 100644
--- a/cc/trees/swap_promise_monitor.h
+++ b/cc/trees/swap_promise_monitor.h
@@ -5,7 +5,7 @@
 #ifndef CC_TREES_SWAP_PROMISE_MONITOR_H_
 #define CC_TREES_SWAP_PROMISE_MONITOR_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/trees/target_property.h b/cc/trees/target_property.h
index e118c8d..177ef965 100644
--- a/cc/trees/target_property.h
+++ b/cc/trees/target_property.h
@@ -7,7 +7,7 @@
 
 #include <bitset>
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/cc/trees/task_runner_provider.h b/cc/trees/task_runner_provider.h
index e4c7b19..1a7ebf5a 100644
--- a/cc/trees/task_runner_provider.h
+++ b/cc/trees/task_runner_provider.h
@@ -16,7 +16,7 @@
 #include "base/threading/platform_thread.h"
 #include "base/time/time.h"
 #include "base/values.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace base {
 class SingleThreadTaskRunner;
diff --git a/cc/trees/transform_node.h b/cc/trees/transform_node.h
index b98e83cd..41b844e9 100644
--- a/cc/trees/transform_node.h
+++ b/cc/trees/transform_node.h
@@ -5,7 +5,7 @@
 #ifndef CC_TREES_TRANSFORM_NODE_H_
 #define CC_TREES_TRANSFORM_NODE_H_
 
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 #include "ui/gfx/geometry/point_f.h"
 #include "ui/gfx/geometry/scroll_offset.h"
 #include "ui/gfx/transform.h"
diff --git a/cc/trees/tree_synchronizer.h b/cc/trees/tree_synchronizer.h
index e5a0b62a..1f0a1a1 100644
--- a/cc/trees/tree_synchronizer.h
+++ b/cc/trees/tree_synchronizer.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "cc/base/cc_export.h"
+#include "cc/cc_export.h"
 
 namespace cc {
 
diff --git a/chrome/browser/android/compositor/DEPS b/chrome/browser/android/compositor/DEPS
index 120d220..ccba01a 100644
--- a/chrome/browser/android/compositor/DEPS
+++ b/chrome/browser/android/compositor/DEPS
@@ -1,4 +1,5 @@
 include_rules = [
+  "+cc/base",
   "+cc/layers",
   "+cc/output",
   "+cc/resources",
diff --git a/chrome/browser/android/compositor/layer/content_layer.cc b/chrome/browser/android/compositor/layer/content_layer.cc
index 36dd8bd..ffb0b6d 100644
--- a/chrome/browser/android/compositor/layer/content_layer.cc
+++ b/chrome/browser/android/compositor/layer/content_layer.cc
@@ -5,10 +5,10 @@
 #include "chrome/browser/android/compositor/layer/content_layer.h"
 
 #include "base/lazy_instance.h"
+#include "cc/base/filter_operations.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/layer_collections.h"
 #include "cc/layers/surface_layer.h"
-#include "cc/output/filter_operations.h"
 #include "chrome/browser/android/compositor/layer/thumbnail_layer.h"
 #include "chrome/browser/android/compositor/tab_content_manager.h"
 #include "content/public/browser/android/compositor.h"
diff --git a/chrome/browser/android/compositor/layer/layer.h b/chrome/browser/android/compositor/layer/layer.h
index 9dfe2cc..d651f54e 100644
--- a/chrome/browser/android/compositor/layer/layer.h
+++ b/chrome/browser/android/compositor/layer/layer.h
@@ -9,8 +9,8 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
+#include "cc/base/filter_operations.h"
 #include "cc/layers/layer.h"
-#include "cc/output/filter_operations.h"
 #include "ui/gfx/geometry/size.h"
 
 namespace android {
diff --git a/third_party/WebKit/Source/platform/animation/CompositorFilterAnimationCurve.cpp b/third_party/WebKit/Source/platform/animation/CompositorFilterAnimationCurve.cpp
index 0d45523..9865236 100644
--- a/third_party/WebKit/Source/platform/animation/CompositorFilterAnimationCurve.cpp
+++ b/third_party/WebKit/Source/platform/animation/CompositorFilterAnimationCurve.cpp
@@ -6,7 +6,7 @@
 
 #include "cc/animation/keyframed_animation_curve.h"
 #include "cc/animation/timing_function.h"
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 #include "platform/graphics/CompositorFilterOperations.h"
 
 namespace blink {
diff --git a/third_party/WebKit/Source/platform/graphics/CompositorFilterOperations.h b/third_party/WebKit/Source/platform/graphics/CompositorFilterOperations.h
index eee54f00..5c01bd29 100644
--- a/third_party/WebKit/Source/platform/graphics/CompositorFilterOperations.h
+++ b/third_party/WebKit/Source/platform/graphics/CompositorFilterOperations.h
@@ -5,7 +5,7 @@
 #ifndef CompositorFilterOperations_h
 #define CompositorFilterOperations_h
 
-#include "cc/output/filter_operations.h"
+#include "cc/base/filter_operations.h"
 #include "platform/PlatformExport.h"
 #include "platform/geometry/FloatRect.h"
 #include "platform/geometry/IntPoint.h"
diff --git a/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp b/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
index a3eca18..906b3ed0 100644
--- a/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
+++ b/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp
@@ -10,12 +10,12 @@
 #include "cc/layers/content_layer_client.h"
 #include "cc/layers/layer.h"
 #include "cc/layers/picture_layer.h"
-#include "cc/playback/compositing_display_item.h"
-#include "cc/playback/display_item_list.h"
-#include "cc/playback/drawing_display_item.h"
-#include "cc/playback/filter_display_item.h"
-#include "cc/playback/float_clip_display_item.h"
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/compositing_display_item.h"
+#include "cc/paint/display_item_list.h"
+#include "cc/paint/drawing_display_item.h"
+#include "cc/paint/filter_display_item.h"
+#include "cc/paint/float_clip_display_item.h"
+#include "cc/paint/transform_display_item.h"
 #include "cc/trees/layer_tree_host.h"
 #include "platform/RuntimeEnabledFeatures.h"
 #include "platform/graphics/GraphicsContext.h"
diff --git a/third_party/WebKit/Source/platform/graphics/compositing/PaintChunksToCcLayer.cpp b/third_party/WebKit/Source/platform/graphics/compositing/PaintChunksToCcLayer.cpp
index 0abb746..299c89a 100644
--- a/third_party/WebKit/Source/platform/graphics/compositing/PaintChunksToCcLayer.cpp
+++ b/third_party/WebKit/Source/platform/graphics/compositing/PaintChunksToCcLayer.cpp
@@ -4,12 +4,12 @@
 
 #include "platform/graphics/compositing/PaintChunksToCcLayer.h"
 
-#include "cc/playback/compositing_display_item.h"
-#include "cc/playback/display_item_list.h"
-#include "cc/playback/drawing_display_item.h"
-#include "cc/playback/filter_display_item.h"
-#include "cc/playback/float_clip_display_item.h"
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/compositing_display_item.h"
+#include "cc/paint/display_item_list.h"
+#include "cc/paint/drawing_display_item.h"
+#include "cc/paint/filter_display_item.h"
+#include "cc/paint/float_clip_display_item.h"
+#include "cc/paint/transform_display_item.h"
 #include "platform/graphics/GraphicsContext.h"
 #include "platform/graphics/paint/DisplayItemList.h"
 #include "platform/graphics/paint/DrawingDisplayItem.h"
diff --git a/ui/compositor/canvas_painter.cc b/ui/compositor/canvas_painter.cc
index 08393dc1..a12e85a 100644
--- a/ui/compositor/canvas_painter.cc
+++ b/ui/compositor/canvas_painter.cc
@@ -4,7 +4,7 @@
 
 #include "ui/compositor/canvas_painter.h"
 
-#include "cc/playback/display_item_list.h"
+#include "cc/paint/display_item_list.h"
 
 namespace ui {
 
diff --git a/ui/compositor/clip_recorder.cc b/ui/compositor/clip_recorder.cc
index f04632b..f42abc65 100644
--- a/ui/compositor/clip_recorder.cc
+++ b/ui/compositor/clip_recorder.cc
@@ -4,9 +4,9 @@
 
 #include "ui/compositor/clip_recorder.h"
 
-#include "cc/playback/clip_display_item.h"
-#include "cc/playback/clip_path_display_item.h"
-#include "cc/playback/display_item_list.h"
+#include "cc/paint/clip_display_item.h"
+#include "cc/paint/clip_path_display_item.h"
+#include "cc/paint/display_item_list.h"
 #include "ui/compositor/paint_context.h"
 #include "ui/gfx/canvas.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/ui/compositor/compositing_recorder.cc b/ui/compositor/compositing_recorder.cc
index 9f556cbe..d6bfe3d 100644
--- a/ui/compositor/compositing_recorder.cc
+++ b/ui/compositor/compositing_recorder.cc
@@ -4,8 +4,8 @@
 
 #include "ui/compositor/compositing_recorder.h"
 
-#include "cc/playback/compositing_display_item.h"
-#include "cc/playback/display_item_list.h"
+#include "cc/paint/compositing_display_item.h"
+#include "cc/paint/display_item_list.h"
 #include "ui/compositor/paint_context.h"
 #include "ui/gfx/canvas.h"
 
diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc
index 1b1d8ed..3467b0e 100644
--- a/ui/compositor/layer.cc
+++ b/ui/compositor/layer.cc
@@ -14,14 +14,14 @@
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "base/trace_event/trace_event.h"
+#include "cc/base/filter_operation.h"
+#include "cc/base/filter_operations.h"
 #include "cc/layers/nine_patch_layer.h"
 #include "cc/layers/picture_layer.h"
 #include "cc/layers/solid_color_layer.h"
 #include "cc/layers/surface_layer.h"
 #include "cc/layers/texture_layer.h"
 #include "cc/output/copy_output_request.h"
-#include "cc/output/filter_operation.h"
-#include "cc/output/filter_operations.h"
 #include "cc/resources/transferable_resource.h"
 #include "cc/trees/layer_tree_settings.h"
 #include "ui/compositor/compositor_switches.h"
diff --git a/ui/compositor/paint_cache.cc b/ui/compositor/paint_cache.cc
index c7c431a..afa9d99a 100644
--- a/ui/compositor/paint_cache.cc
+++ b/ui/compositor/paint_cache.cc
@@ -4,7 +4,7 @@
 
 #include "ui/compositor/paint_cache.h"
 
-#include "cc/playback/display_item_list.h"
+#include "cc/paint/display_item_list.h"
 #include "ui/compositor/paint_context.h"
 
 namespace ui {
diff --git a/ui/compositor/paint_cache.h b/ui/compositor/paint_cache.h
index 3f101729..efff009 100644
--- a/ui/compositor/paint_cache.h
+++ b/ui/compositor/paint_cache.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "base/optional.h"
-#include "cc/playback/drawing_display_item.h"
+#include "cc/paint/drawing_display_item.h"
 #include "ui/compositor/compositor_export.h"
 #include "ui/gfx/geometry/rect.h"
 
diff --git a/ui/compositor/paint_recorder.cc b/ui/compositor/paint_recorder.cc
index 47605b1..f93d700 100644
--- a/ui/compositor/paint_recorder.cc
+++ b/ui/compositor/paint_recorder.cc
@@ -4,9 +4,9 @@
 
 #include "ui/compositor/paint_recorder.h"
 
+#include "cc/paint/display_item_list.h"
+#include "cc/paint/drawing_display_item.h"
 #include "cc/paint/paint_recorder.h"
-#include "cc/playback/display_item_list.h"
-#include "cc/playback/drawing_display_item.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "ui/compositor/paint_cache.h"
 #include "ui/compositor/paint_context.h"
diff --git a/ui/compositor/transform_recorder.cc b/ui/compositor/transform_recorder.cc
index cdacadb9..81c5a96 100644
--- a/ui/compositor/transform_recorder.cc
+++ b/ui/compositor/transform_recorder.cc
@@ -4,8 +4,8 @@
 
 #include "ui/compositor/transform_recorder.h"
 
-#include "cc/playback/display_item_list.h"
-#include "cc/playback/transform_display_item.h"
+#include "cc/paint/display_item_list.h"
+#include "cc/paint/transform_display_item.h"
 #include "ui/compositor/paint_context.h"
 
 namespace ui {
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc
index 55445de..335e25fe 100644
--- a/ui/views/view_unittest.cc
+++ b/ui/views/view_unittest.cc
@@ -17,7 +17,7 @@
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
-#include "cc/playback/display_item_list.h"
+#include "cc/paint/display_item_list.h"
 #include "ui/base/accelerators/accelerator.h"
 #include "ui/base/clipboard/clipboard.h"
 #include "ui/base/l10n/l10n_util.h"