Revert of IWYU: 'core' target, files starting A-C. (patchset #5 id:80001 of https://codereview.chromium.org/1265033002/ )

Reason for revert:
revert to unblock DEPS roll

../../chrome/browser/chromeos/display/overscan_calibrator.cc:43:10: error: variable has incomplete type 'SkPath'
  SkPath base_path;

Original issue's description:
> IWYU: 'core' target, files starting A-C.
>
> TBR=reed@google.com
> Verbal lgtm, does not change API.
>
> Committed: https://skia.googlesource.com/skia/+/7403d87db8e43d4c2b5b25ac22a0ebc22bd09d69

TBR=reed@google.com,mtklein@google.com,bungeman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1273613002
diff --git a/bench/AlternatingColorPatternBench.cpp b/bench/AlternatingColorPatternBench.cpp
index cbf5034..8484954 100644
--- a/bench/AlternatingColorPatternBench.cpp
+++ b/bench/AlternatingColorPatternBench.cpp
@@ -9,7 +9,6 @@
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkString.h"
 
 enum ColorPattern {
diff --git a/bench/BezierBench.cpp b/bench/BezierBench.cpp
index 73c9cb5..ec83d95 100755
--- a/bench/BezierBench.cpp
+++ b/bench/BezierBench.cpp
@@ -8,7 +8,6 @@
 #include "Benchmark.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkString.h"
 
 struct BezierRec {
diff --git a/bench/ChartBench.cpp b/bench/ChartBench.cpp
index 61f97a2..0cc02b0 100644
--- a/bench/ChartBench.cpp
+++ b/bench/ChartBench.cpp
@@ -8,9 +8,7 @@
 #include "Benchmark.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
-#include "SkTDArray.h"
 
 /**
  * This is a conversion of samplecode/SampleChart.cpp into a bench. It sure would be nice to be able
diff --git a/bench/HairlinePathBench.cpp b/bench/HairlinePathBench.cpp
index 0e12d70..e421ce0 100644
--- a/bench/HairlinePathBench.cpp
+++ b/bench/HairlinePathBench.cpp
@@ -8,7 +8,6 @@
 #include "Benchmark.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkShader.h"
 #include "SkString.h"
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp
index f2e84c2..ffec90b 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -1,16 +1,15 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "Benchmark.h"
 #include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkColorPriv.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkShader.h"
 #include "SkString.h"
diff --git a/bench/PathIterBench.cpp b/bench/PathIterBench.cpp
index 2da2594..bbc3c03 100644
--- a/bench/PathIterBench.cpp
+++ b/bench/PathIterBench.cpp
@@ -10,7 +10,6 @@
 #include "SkCanvas.h"
 #include "SkColorPriv.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkShader.h"
 #include "SkString.h"
diff --git a/bench/RectoriBench.cpp b/bench/RectoriBench.cpp
index 8752a34..b777fbe 100644
--- a/bench/RectoriBench.cpp
+++ b/bench/RectoriBench.cpp
@@ -10,7 +10,6 @@
 #include "SkCanvas.h"
 #include "SkLayerDrawLooper.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 // This bench replicates a problematic use case of a draw looper used
diff --git a/bench/SKPBench.h b/bench/SKPBench.h
index 05b5857..e1c66bf 100644
--- a/bench/SKPBench.h
+++ b/bench/SKPBench.h
@@ -11,9 +11,6 @@
 #include "Benchmark.h"
 #include "SkCanvas.h"
 #include "SkPicture.h"
-#include "SkTDArray.h"
-
-class SkSurface;
 
 /**
  * Runs an SkPicture as a benchmark by repeatedly drawing it scaled inside a device clip.
diff --git a/gm/aarectmodes.cpp b/gm/aarectmodes.cpp
index e0df7d8..7cf5a83 100644
--- a/gm/aarectmodes.cpp
+++ b/gm/aarectmodes.cpp
@@ -8,7 +8,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkColorPriv.h"
-#include "SkPath.h"
 #include "SkShader.h"
 
 static void test4(SkCanvas* canvas) {
diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp
index d33423a..8e66b43 100644
--- a/gm/aaxfermodes.cpp
+++ b/gm/aaxfermodes.cpp
@@ -7,7 +7,6 @@
  */
 #include "gm.h"
 #include "SkArithmeticMode.h"
-#include "SkPath.h"
 #include "SkShader.h"
 #include "SkXfermode.h"
 
diff --git a/gm/beziers.cpp b/gm/beziers.cpp
index 68960ed..3dd8fa7 100755
--- a/gm/beziers.cpp
+++ b/gm/beziers.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "gm.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 #define W   400
diff --git a/gm/bigblurs.cpp b/gm/bigblurs.cpp
index 5500005..a92c7fe 100644
--- a/gm/bigblurs.cpp
+++ b/gm/bigblurs.cpp
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2013 Google Inc.
  *
@@ -8,7 +9,6 @@
 #include "gm.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
-#include "SkPath.h"
 
 namespace skiagm {
 
diff --git a/gm/bigmatrix.cpp b/gm/bigmatrix.cpp
index c7c3b0d..abe0f4e 100644
--- a/gm/bigmatrix.cpp
+++ b/gm/bigmatrix.cpp
@@ -1,14 +1,13 @@
+
 /*
  * Copyright 2012 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "gm.h"
 
 #include "SkColorPriv.h"
-#include "SkPath.h"
 #include "SkShader.h"
 
 namespace skiagm {
diff --git a/gm/bitmaprecttest.cpp b/gm/bitmaprecttest.cpp
index 630c90c..6f2ccf2 100644
--- a/gm/bitmaprecttest.cpp
+++ b/gm/bitmaprecttest.cpp
@@ -7,7 +7,6 @@
 
 #include "gm.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
 
 static void make_bm(SkBitmap* bm) {
     bm->allocN32Pixels(60, 60);
diff --git a/gm/blurs.cpp b/gm/blurs.cpp
index 8f95f00..b1af685 100644
--- a/gm/blurs.cpp
+++ b/gm/blurs.cpp
@@ -8,7 +8,6 @@
 #include "gm.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
-#include "SkPath.h"
 
 class BlursGM : public skiagm::GM {
 public:
diff --git a/gm/complexclip2.cpp b/gm/complexclip2.cpp
index 4314619..9357884 100644
--- a/gm/complexclip2.cpp
+++ b/gm/complexclip2.cpp
@@ -10,8 +10,6 @@
 #include "SkCanvas.h"
 #include "SkPath.h"
 #include "SkRandom.h"
-#include "SkRect.h"
-#include "SkRRect.h"
 
 namespace skiagm {
 
diff --git a/gm/concavepaths.cpp b/gm/concavepaths.cpp
index 37635f8..46b2ef4 100644
--- a/gm/concavepaths.cpp
+++ b/gm/concavepaths.cpp
@@ -7,7 +7,6 @@
 
 #include "gm.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
 
 #define WIDTH 400
 #define HEIGHT 600
diff --git a/gm/conicpaths.cpp b/gm/conicpaths.cpp
index 2bdd1f8..717dd8e 100644
--- a/gm/conicpaths.cpp
+++ b/gm/conicpaths.cpp
@@ -7,7 +7,6 @@
 
 #include "gm.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
 #include "SkTArray.h"
 
 class ConicPathsGM : public skiagm::GM {
diff --git a/gm/convexpaths.cpp b/gm/convexpaths.cpp
index 4180884..889d65b 100644
--- a/gm/convexpaths.cpp
+++ b/gm/convexpaths.cpp
@@ -6,7 +6,6 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkTArray.h"
 
diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp
index 2ed17f2..0478b51 100644
--- a/gm/convexpolyclip.cpp
+++ b/gm/convexpolyclip.cpp
@@ -10,7 +10,6 @@
 
 #include "SkBitmap.h"
 #include "SkGradientShader.h"
-#include "SkPath.h"
 #include "SkTLList.h"
 
 static SkBitmap make_bmp(int w, int h) {
diff --git a/gm/cubicpaths.cpp b/gm/cubicpaths.cpp
index 74fbe8d..b3fca5a 100644
--- a/gm/cubicpaths.cpp
+++ b/gm/cubicpaths.cpp
@@ -4,11 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 // skbug.com/1316 shows that this cubic, when slightly clipped, creates big
diff --git a/gm/degeneratesegments.cpp b/gm/degeneratesegments.cpp
index d516490..df111ac 100644
--- a/gm/degeneratesegments.cpp
+++ b/gm/degeneratesegments.cpp
@@ -7,7 +7,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 namespace skiagm {
diff --git a/gm/drawable.cpp b/gm/drawable.cpp
index c7bc761..3847ba5 100644
--- a/gm/drawable.cpp
+++ b/gm/drawable.cpp
@@ -8,7 +8,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkDrawable.h"
-#include "SkPath.h"
 
 struct MyDrawable : public SkDrawable {
     SkRect onGetBounds() override { return SkRect::MakeWH(50, 100);  }
diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp
index 8ff40a8..8cdccbc 100644
--- a/gm/dstreadshuffle.cpp
+++ b/gm/dstreadshuffle.cpp
@@ -7,7 +7,6 @@
  */
 #include "gm.h"
 #include "SkBitmap.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkShader.h"
 #include "SkXfermode.h"
diff --git a/gm/emptypath.cpp b/gm/emptypath.cpp
index 36edf4e..ec60bfc 100644
--- a/gm/emptypath.cpp
+++ b/gm/emptypath.cpp
@@ -8,7 +8,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 namespace skiagm {
diff --git a/gm/filltypes.cpp b/gm/filltypes.cpp
index b470c05..f01f9bd 100644
--- a/gm/filltypes.cpp
+++ b/gm/filltypes.cpp
@@ -1,12 +1,11 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "gm.h"
-#include "SkPath.h"
 
 namespace skiagm {
 
diff --git a/gm/filltypespersp.cpp b/gm/filltypespersp.cpp
index cc09b95..92fce3a 100644
--- a/gm/filltypespersp.cpp
+++ b/gm/filltypespersp.cpp
@@ -1,13 +1,12 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "gm.h"
 #include "SkGradientShader.h"
-#include "SkPath.h"
 
 namespace skiagm {
 
diff --git a/gm/getpostextpath.cpp b/gm/getpostextpath.cpp
index faace24..2286602 100644
--- a/gm/getpostextpath.cpp
+++ b/gm/getpostextpath.cpp
@@ -8,7 +8,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkTemplates.h"
 
diff --git a/gm/hairlines.cpp b/gm/hairlines.cpp
index 9d7e366..6056415 100644
--- a/gm/hairlines.cpp
+++ b/gm/hairlines.cpp
@@ -7,7 +7,6 @@
 
 #include "gm.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
 #include "SkTArray.h"
 
 namespace skiagm {
diff --git a/gm/hittestpath.cpp b/gm/hittestpath.cpp
index b5f01cd..f415ba3 100644
--- a/gm/hittestpath.cpp
+++ b/gm/hittestpath.cpp
@@ -8,7 +8,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkCullPoints.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 static void test_hittest(SkCanvas* canvas, const SkPath& path) {
diff --git a/gm/linepaths.cpp b/gm/linepaths.cpp
index 0c99fa7..e8a4b0b 100644
--- a/gm/linepaths.cpp
+++ b/gm/linepaths.cpp
@@ -4,10 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "gm.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
 #include "SkPaint.h"
 #include "SkRandom.h"
 
diff --git a/gm/nested.cpp b/gm/nested.cpp
index d3b75b3..9040ba6 100644
--- a/gm/nested.cpp
+++ b/gm/nested.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "gm.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkRRect.h"
 
diff --git a/gm/pathfill.cpp b/gm/pathfill.cpp
index a2b1ee0..1260654 100644
--- a/gm/pathfill.cpp
+++ b/gm/pathfill.cpp
@@ -1,12 +1,11 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "gm.h"
-#include "SkPath.h"
 
 typedef SkScalar (*MakePathProc)(SkPath*);
 
diff --git a/gm/pathinterior.cpp b/gm/pathinterior.cpp
index f1cbfc4..88efb3a 100644
--- a/gm/pathinterior.cpp
+++ b/gm/pathinterior.cpp
@@ -6,12 +6,11 @@
  */
 
 #include "gm.h"
-#include "SkBlurMaskFilter.h"
 #include "SkCanvas.h"
 #include "SkGraphics.h"
-#include "SkLayerDrawLooper.h"
-#include "SkPath.h"
 #include "SkRandom.h"
+#include "SkLayerDrawLooper.h"
+#include "SkBlurMaskFilter.h"
 
 static SkRect inset(const SkRect& r) {
     SkRect rect = r;
diff --git a/gm/plus.cpp b/gm/plus.cpp
index 6a5af61..ba2a1a0 100644
--- a/gm/plus.cpp
+++ b/gm/plus.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "gm.h"
-#include "SkPath.h"
 
 DEF_SIMPLE_GM(PlusMergesAA, canvas, 256, 256) {
     SkPaint p;
diff --git a/gm/poly2poly.cpp b/gm/poly2poly.cpp
index ea77033..c1d9b7e 100644
--- a/gm/poly2poly.cpp
+++ b/gm/poly2poly.cpp
@@ -7,7 +7,6 @@
 
 #include "gm.h"
 #include "Resources.h"
-#include "SkPath.h"
 #include "SkTypeface.h"
 
 class SkJSCanvas {
diff --git a/gm/quadpaths.cpp b/gm/quadpaths.cpp
index 359f62d..2fab37b 100644
--- a/gm/quadpaths.cpp
+++ b/gm/quadpaths.cpp
@@ -4,11 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 namespace skiagm {
diff --git a/gm/samplerstress.cpp b/gm/samplerstress.cpp
index eff6281..7f85e17 100644
--- a/gm/samplerstress.cpp
+++ b/gm/samplerstress.cpp
@@ -6,10 +6,9 @@
  */
 
 #include "gm.h"
-#include "SkBlurMaskFilter.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
 #include "SkShader.h"
+#include "SkBlurMaskFilter.h"
 
 namespace skiagm {
 
diff --git a/gm/shadertext.cpp b/gm/shadertext.cpp
index fd74e7c..2bb4e96 100644
--- a/gm/shadertext.cpp
+++ b/gm/shadertext.cpp
@@ -8,7 +8,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
-#include "SkPath.h"
 
 namespace skiagm {
 
diff --git a/gm/shadertext2.cpp b/gm/shadertext2.cpp
index f4af684..4d697d9 100644
--- a/gm/shadertext2.cpp
+++ b/gm/shadertext2.cpp
@@ -7,7 +7,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
-#include "SkPath.h"
 
 namespace skiagm {
 
diff --git a/gm/shadows.cpp b/gm/shadows.cpp
index 82b5fd9..729104c 100644
--- a/gm/shadows.cpp
+++ b/gm/shadows.cpp
@@ -1,14 +1,13 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "gm.h"
-#include "SkBlurDrawLooper.h"
 #include "SkBlurMask.h"
-#include "SkPath.h"
+#include "SkBlurDrawLooper.h"
 
 namespace skiagm {
 
diff --git a/gm/simpleaaclip.cpp b/gm/simpleaaclip.cpp
index 372cb1b..8054a53 100644
--- a/gm/simpleaaclip.cpp
+++ b/gm/simpleaaclip.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
+
 #include "gm.h"
-#include "SkAAClip.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
+#include "SkAAClip.h"
 
 namespace skiagm {
 
diff --git a/gm/skbug1719.cpp b/gm/skbug1719.cpp
index 0a75d35..6652629 100644
--- a/gm/skbug1719.cpp
+++ b/gm/skbug1719.cpp
@@ -6,9 +6,8 @@
  */
 
 #include "gm.h"
-#include "SkBlurMaskFilter.h"
 #include "SkColorFilter.h"
-#include "SkPath.h"
+#include "SkBlurMaskFilter.h"
 
 namespace skiagm {
 
diff --git a/gm/smallarc.cpp b/gm/smallarc.cpp
index 2109b90..76611b7 100755
--- a/gm/smallarc.cpp
+++ b/gm/smallarc.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "gm.h"
-#include "SkPath.h"
 
 namespace skiagm {
 
diff --git a/gm/srcmode.cpp b/gm/srcmode.cpp
index 7a7e89e..ec2673f 100644
--- a/gm/srcmode.cpp
+++ b/gm/srcmode.cpp
@@ -8,7 +8,6 @@
 #include "gm.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
-#include "SkPath.h"
 #include "SkSurface.h"
 
 #if SK_SUPPORT_GPU
diff --git a/gm/stlouisarch.cpp b/gm/stlouisarch.cpp
index 7b31e54..176fb4b 100644
--- a/gm/stlouisarch.cpp
+++ b/gm/stlouisarch.cpp
@@ -7,7 +7,6 @@
 
 #include "gm.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
 #include "SkTArray.h"
 
 namespace skiagm {
diff --git a/gm/strokes.cpp b/gm/strokes.cpp
index 7382390..77638e4 100644
--- a/gm/strokes.cpp
+++ b/gm/strokes.cpp
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
@@ -5,8 +6,9 @@
  * found in the LICENSE file.
  */
 
+
+
 #include "gm.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 #define W   400
diff --git a/include/core/SkAnnotation.h b/include/core/SkAnnotation.h
index 62c844a..d7b9b84 100644
--- a/include/core/SkAnnotation.h
+++ b/include/core/SkAnnotation.h
@@ -10,11 +10,12 @@
 
 #include "SkRefCnt.h"
 #include "SkString.h"
-#include "SkTypes.h"
 
 class SkData;
 class SkReadBuffer;
 class SkWriteBuffer;
+class SkStream;
+class SkWStream;
 struct SkPoint;
 
 /**
diff --git a/include/core/SkBBHFactory.h b/include/core/SkBBHFactory.h
index ca70404..f0c49f1 100644
--- a/include/core/SkBBHFactory.h
+++ b/include/core/SkBBHFactory.h
@@ -8,9 +8,9 @@
 #ifndef SkBBHFactory_DEFINED
 #define SkBBHFactory_DEFINED
 
-#include "SkTypes.h"
+#include "SkRect.h"
+
 class SkBBoxHierarchy;
-struct SkRect;
 
 class SK_API SkBBHFactory {
 public:
diff --git a/include/core/SkBitmapDevice.h b/include/core/SkBitmapDevice.h
index d1cb9ad..ae637f9 100644
--- a/include/core/SkBitmapDevice.h
+++ b/include/core/SkBitmapDevice.h
@@ -9,28 +9,7 @@
 #ifndef SkBitmapDevice_DEFINED
 #define SkBitmapDevice_DEFINED
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
 #include "SkDevice.h"
-#include "SkImageFilter.h"
-#include "SkImageInfo.h"
-#include "SkRect.h"
-#include "SkScalar.h"
-#include "SkSize.h"
-#include "SkSurfaceProps.h"
-#include "SkTypes.h"
-
-class SkDraw;
-class SkMatrix;
-class SkPaint;
-class SkPath;
-class SkPixelRef;
-class SkPixmap;
-class SkRRect;
-class SkSurface;
-class SkXfermode;
-struct SkPoint;
 
 ///////////////////////////////////////////////////////////////////////////////
 class SK_API SkBitmapDevice : public SkBaseDevice {
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index bc39ec2..45f5c9c 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -11,31 +11,31 @@
 #include "SkTypes.h"
 #include "SkBitmap.h"
 #include "SkDeque.h"
+#include "SkClipStack.h"
 #include "SkPaint.h"
 #include "SkRefCnt.h"
+#include "SkPath.h"
 #include "SkRegion.h"
 #include "SkSurfaceProps.h"
 #include "SkXfermode.h"
 
-class GrContext;
-class GrRenderTarget;
 class SkBaseDevice;
 class SkCanvasClipVisitor;
-class SkClipStack;
 class SkDraw;
 class SkDrawable;
 class SkDrawFilter;
 class SkImage;
-class SkImageFilter;
 class SkMetaData;
-class SkPath;
 class SkPicture;
-class SkPixmap;
 class SkRRect;
 struct SkRSXform;
 class SkSurface;
 class SkSurface_Base;
 class SkTextBlob;
+class GrContext;
+class GrRenderTarget;
+
+class SkCanvasState;
 
 /** \class SkCanvas
 
diff --git a/include/core/SkColor.h b/include/core/SkColor.h
index 1ba1331..4c1f9ff 100644
--- a/include/core/SkColor.h
+++ b/include/core/SkColor.h
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2006 The Android Open Source Project
  *
@@ -5,11 +6,11 @@
  * found in the LICENSE file.
  */
 
+
 #ifndef SkColor_DEFINED
 #define SkColor_DEFINED
 
 #include "SkScalar.h"
-#include "SkTypes.h"
 
 /** \file SkColor.h
 
diff --git a/include/core/SkColorFilter.h b/include/core/SkColorFilter.h
index df006ed..729eb46 100644
--- a/include/core/SkColorFilter.h
+++ b/include/core/SkColorFilter.h
@@ -13,10 +13,10 @@
 #include "SkTDArray.h"
 #include "SkXfermode.h"
 
-class GrContext;
-class GrFragmentProcessor;
-class GrProcessorDataManager;
 class SkBitmap;
+class GrProcessor;
+class GrContext;
+class GrProcessorDataManager;
 
 /**
  *  ColorFilters are optional objects in the drawing pipeline. When present in
diff --git a/include/core/SkDevice.h b/include/core/SkDevice.h
index 3715b1d..461f424 100644
--- a/include/core/SkDevice.h
+++ b/include/core/SkDevice.h
@@ -9,12 +9,12 @@
 #define SkDevice_DEFINED
 
 #include "SkRefCnt.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkColor.h"
 #include "SkImageFilter.h"
 #include "SkSurfaceProps.h"
 
-class SkBitmap;
 class SkClipStack;
 class SkDraw;
 class SkDrawFilter;
diff --git a/include/core/SkPostConfig.h b/include/core/SkPostConfig.h
index 8ff1f06..6f3e2d1 100644
--- a/include/core/SkPostConfig.h
+++ b/include/core/SkPostConfig.h
@@ -5,8 +5,6 @@
  * found in the LICENSE file.
  */
 
-// IWYU pragma: private, include "SkTypes.h"
-
 #ifndef SkPostConfig_DEFINED
 #define SkPostConfig_DEFINED
 
diff --git a/include/core/SkPreConfig.h b/include/core/SkPreConfig.h
index 0715fc9..b590825 100644
--- a/include/core/SkPreConfig.h
+++ b/include/core/SkPreConfig.h
@@ -5,8 +5,6 @@
  * found in the LICENSE file.
  */
 
-// IWYU pragma: private, include "SkTypes.h"
-
 #ifndef SkPreConfig_DEFINED
 #define SkPreConfig_DEFINED
 
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 2e49511..1a165a1 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -145,7 +145,6 @@
     #define SK_TO_STRING_PUREVIRT()
     #define SK_TO_STRING_OVERRIDE()
 #else
-    class SkString;
     // the 'toString' helper functions convert Sk* objects to human-readable
     // form in developer mode
     #define SK_TO_STRING_NONVIRT() void toString(SkString* str) const;
diff --git a/include/private/SkRecords.h b/include/private/SkRecords.h
index 1f28078..eefb83d 100644
--- a/include/private/SkRecords.h
+++ b/include/private/SkRecords.h
@@ -11,10 +11,7 @@
 #include "SkCanvas.h"
 #include "SkDrawable.h"
 #include "SkMatrix.h"
-#include "SkPath.h"
 #include "SkPicture.h"
-#include "SkRect.h"
-#include "SkRRect.h"
 #include "SkRSXform.h"
 #include "SkTextBlob.h"
 
diff --git a/include/utils/SkNWayCanvas.h b/include/utils/SkNWayCanvas.h
index a60836b..1fc993f 100644
--- a/include/utils/SkNWayCanvas.h
+++ b/include/utils/SkNWayCanvas.h
@@ -10,7 +10,6 @@
 #define SkNWayCanvas_DEFINED
 
 #include "SkCanvas.h"
-#include "SkTDArray.h"
 
 class SK_API SkNWayCanvas : public SkCanvas {
 public:
diff --git a/samplecode/SampleAAClip.cpp b/samplecode/SampleAAClip.cpp
index 78baf3d..a1ee67b 100644
--- a/samplecode/SampleAAClip.cpp
+++ b/samplecode/SampleAAClip.cpp
@@ -7,10 +7,9 @@
  */
 
 #include "SampleCode.h"
-#include "SkAAClip.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
 #include "SkView.h"
+#include "SkCanvas.h"
+#include "SkAAClip.h"
 
 static void testop(const SkIRect& r0, const SkIRect& r1, SkRegion::Op op,
                    const SkIRect& expectedR) {
diff --git a/samplecode/SampleChart.cpp b/samplecode/SampleChart.cpp
index 8d158f1..4c128a9 100644
--- a/samplecode/SampleChart.cpp
+++ b/samplecode/SampleChart.cpp
@@ -8,7 +8,6 @@
 #include "SampleCode.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkView.h"
 
diff --git a/samplecode/SampleCircle.cpp b/samplecode/SampleCircle.cpp
index 938b575..9cc927e 100644
--- a/samplecode/SampleCircle.cpp
+++ b/samplecode/SampleCircle.cpp
@@ -1,16 +1,15 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "SampleCode.h"
+#include "SkView.h"
 #include "SkCanvas.h"
 #include "SkDevice.h"
 #include "SkPaint.h"
-#include "SkPath.h"
-#include "SkView.h"
 
 // ensure that we don't accidentally screw up the bounds when the oval is
 // fractional, and the impl computes the center and radii, and uses them to
diff --git a/samplecode/SampleClip.cpp b/samplecode/SampleClip.cpp
index 2014278..3a38724 100644
--- a/samplecode/SampleClip.cpp
+++ b/samplecode/SampleClip.cpp
@@ -11,7 +11,6 @@
 #include "SkColorPriv.h"
 #include "SkDevice.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 
 #define W   150
diff --git a/samplecode/SampleClipDrawMatch.cpp b/samplecode/SampleClipDrawMatch.cpp
index c79c872..6a2a37b 100644
--- a/samplecode/SampleClipDrawMatch.cpp
+++ b/samplecode/SampleClipDrawMatch.cpp
@@ -8,8 +8,6 @@
 #include "SampleCode.h"
 #include "SkCanvas.h"
 #include "SkInterpolator.h"
-#include "SkPath.h"
-#include "SkRRect.h"
 #include "SkTime.h"
 
 // This slide tests out the match up between BW clipping and rendering. It can
diff --git a/samplecode/SampleClock.cpp b/samplecode/SampleClock.cpp
index 9b1e3e0..ec71f0f 100644
--- a/samplecode/SampleClock.cpp
+++ b/samplecode/SampleClock.cpp
@@ -7,7 +7,6 @@
 #include "SampleCode.h"
 
 #include "SkCanvas.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkRRect.h"
 #include "SkTime.h"
diff --git a/samplecode/SampleDitherBitmap.cpp b/samplecode/SampleDitherBitmap.cpp
index 9af5ce5..d825c71 100644
--- a/samplecode/SampleDitherBitmap.cpp
+++ b/samplecode/SampleDitherBitmap.cpp
@@ -1,17 +1,16 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "SampleCode.h"
-#include "SkCanvas.h"
 #include "SkColorPriv.h"
 #include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkUtils.h"
 #include "SkView.h"
+#include "SkCanvas.h"
+#include "SkUtils.h"
 
 static void draw_rect(SkCanvas* canvas, const SkRect& r, const SkPaint& p) {
     canvas->drawRect(r, p);
diff --git a/samplecode/SampleEmptyPath.cpp b/samplecode/SampleEmptyPath.cpp
index 6071f42..53e2199 100644
--- a/samplecode/SampleEmptyPath.cpp
+++ b/samplecode/SampleEmptyPath.cpp
@@ -1,15 +1,14 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "SampleCode.h"
 #include "SkView.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkString.h"
 
diff --git a/samplecode/SampleFilterQuality.cpp b/samplecode/SampleFilterQuality.cpp
index 12a04a6..64b7f55 100644
--- a/samplecode/SampleFilterQuality.cpp
+++ b/samplecode/SampleFilterQuality.cpp
@@ -12,7 +12,6 @@
 #include "SkAnimTimer.h"
 #include "SkCanvas.h"
 #include "SkInterpolator.h"
-#include "SkPath.h"
 #include "SkSurface.h"
 #include "SkRandom.h"
 #include "SkTime.h"
diff --git a/samplecode/SampleIdentityScale.cpp b/samplecode/SampleIdentityScale.cpp
index 3302d27..4450d61 100644
--- a/samplecode/SampleIdentityScale.cpp
+++ b/samplecode/SampleIdentityScale.cpp
@@ -13,7 +13,6 @@
 #include "SkCanvas.h"
 #include "SkColorPriv.h"
 #include "SkImageDecoder.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkStream.h"
 #include "SkTime.h"
diff --git a/samplecode/SampleLayerMask.cpp b/samplecode/SampleLayerMask.cpp
index f5b8822..86a092c 100644
--- a/samplecode/SampleLayerMask.cpp
+++ b/samplecode/SampleLayerMask.cpp
@@ -1,14 +1,13 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "SampleCode.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkView.h"
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/samplecode/SamplePathFuzz.cpp b/samplecode/SamplePathFuzz.cpp
index 70a052f..0955ce9 100644
--- a/samplecode/SamplePathFuzz.cpp
+++ b/samplecode/SamplePathFuzz.cpp
@@ -14,7 +14,6 @@
 #include "SkColor.h"
 #include "SkTDArray.h"
 #include "SkRandom.h"
-#include "SkRRect.h"
 
 enum RandomAddPath {
     kMoveToPath,
diff --git a/samplecode/SampleShaderText.cpp b/samplecode/SampleShaderText.cpp
index cf7cf96..9fdae84 100644
--- a/samplecode/SampleShaderText.cpp
+++ b/samplecode/SampleShaderText.cpp
@@ -6,10 +6,9 @@
  */
 
 #include "SampleCode.h"
+#include "SkView.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkView.h"
 
 static void makebm(SkBitmap* bm, int w, int h) {
     bm->allocN32Pixels(w, h);
diff --git a/samplecode/SampleStringArt.cpp b/samplecode/SampleStringArt.cpp
index 5bc667b..0e711b0 100644
--- a/samplecode/SampleStringArt.cpp
+++ b/samplecode/SampleStringArt.cpp
@@ -4,10 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #include "SampleCode.h"
 #include "SkCanvas.h"
-#include "SkPath.h"
 
 // Reproduces https://code.google.com/p/chromium/issues/detail?id=279014
 
diff --git a/src/core/SkAdvancedTypefaceMetrics.cpp b/src/core/SkAdvancedTypefaceMetrics.cpp
index 81e98f3..f9b25dc 100644
--- a/src/core/SkAdvancedTypefaceMetrics.cpp
+++ b/src/core/SkAdvancedTypefaceMetrics.cpp
@@ -16,7 +16,7 @@
 
 #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_ANDROID)
 // forward declare structs needed for getAdvanceData() template for freetype
-struct FT_FaceRec_;
+struct FT_FaceRec;
 typedef struct FT_FaceRec_* FT_Face;
 #endif
 
diff --git a/src/core/SkAnnotation.cpp b/src/core/SkAnnotation.cpp
index aa7a02a..bddff64 100644
--- a/src/core/SkAnnotation.cpp
+++ b/src/core/SkAnnotation.cpp
@@ -7,10 +7,10 @@
 
 #include "SkAnnotation.h"
 #include "SkData.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
 #include "SkReadBuffer.h"
 #include "SkWriteBuffer.h"
+#include "SkPoint.h"
+#include "SkStream.h"
 
 SkAnnotation::SkAnnotation(const char key[], SkData* value) : fKey(key) {
     if (NULL == value) {
diff --git a/src/core/SkBBHFactory.cpp b/src/core/SkBBHFactory.cpp
index a4c7f4f..ce5026c 100644
--- a/src/core/SkBBHFactory.cpp
+++ b/src/core/SkBBHFactory.cpp
@@ -6,9 +6,7 @@
  */
 
 #include "SkBBHFactory.h"
-#include "SkRect.h"
 #include "SkRTree.h"
-#include "SkScalar.h"
 
 SkBBoxHierarchy* SkRTreeFactory::operator()(const SkRect& bounds) const {
     SkScalar aspectRatio = bounds.width() / bounds.height();
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp
index 97b0db6..aa26bdc 100644
--- a/src/core/SkBitmap.cpp
+++ b/src/core/SkBitmap.cpp
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2008 The Android Open Source Project
  *
@@ -5,22 +6,23 @@
  * found in the LICENSE file.
  */
 
+
 #include "SkAtomics.h"
 #include "SkBitmap.h"
 #include "SkColorPriv.h"
-#include "SkData.h"
-#include "SkFilterQuality.h"
+#include "SkDither.h"
+#include "SkFlattenable.h"
+#include "SkImagePriv.h"
 #include "SkMallocPixelRef.h"
 #include "SkMask.h"
-#include "SkMath.h"
+#include "SkPackBits.h"
 #include "SkPixelRef.h"
 #include "SkReadBuffer.h"
-#include "SkRect.h"
-#include "SkScalar.h"
 #include "SkUnPreMultiply.h"
+#include "SkUtils.h"
+#include "SkValidationUtils.h"
 #include "SkWriteBuffer.h"
-
-#include <string.h>
+#include <new>
 
 static bool reset_return_false(SkBitmap* bm) {
     bm->reset();
@@ -747,6 +749,9 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
+#include "SkCanvas.h"
+#include "SkPaint.h"
+
 bool SkBitmap::canCopyTo(SkColorType dstColorType) const {
     const SkColorType srcCT = this->colorType();
 
@@ -1216,7 +1221,6 @@
 #endif
 
 #ifndef SK_IGNORE_TO_STRING
-#include "SkString.h"
 void SkBitmap::toString(SkString* str) const {
 
     static const char* gColorTypeNames[kLastEnum_SkColorType + 1] = {
diff --git a/src/core/SkBitmapDevice.cpp b/src/core/SkBitmapDevice.cpp
index dfe1756..9da43d8 100644
--- a/src/core/SkBitmapDevice.cpp
+++ b/src/core/SkBitmapDevice.cpp
@@ -8,16 +8,10 @@
 #include "SkBitmapDevice.h"
 #include "SkConfig8888.h"
 #include "SkDraw.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
 #include "SkPixelRef.h"
-#include "SkPixmap.h"
+#include "SkRasterClip.h"
 #include "SkShader.h"
 #include "SkSurface.h"
-#include "SkXfermode.h"
-
-class SkColorTable;
 
 #define CHECK_FOR_ANNOTATION(paint) \
     do { if (paint.getAnnotation()) { return; } } while (0)
diff --git a/src/core/SkBitmapFilter.cpp b/src/core/SkBitmapFilter.cpp
index 8c44e9f..82494d9 100644
--- a/src/core/SkBitmapFilter.cpp
+++ b/src/core/SkBitmapFilter.cpp
@@ -5,11 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapFilter.h"
+#include "SkErrorInternals.h"
+#include "SkConvolver.h"
+#include "SkBitmapProcState.h"
+#include "SkBitmap.h"
+#include "SkColor.h"
+#include "SkColorPriv.h"
+#include "SkConvolver.h"
+#include "SkUnPreMultiply.h"
+#include "SkShader.h"
 #include "SkRTConf.h"
-#include "SkTypes.h"
-
-#include <string.h>
+#include "SkMath.h"
 
 // These are the per-scanline callbacks that are used when we must resort to
 // resampling an image as it is blitted.  Typically these are used only when
diff --git a/src/core/SkBitmapFilter.h b/src/core/SkBitmapFilter.h
index eb327d7..93b552e 100644
--- a/src/core/SkBitmapFilter.h
+++ b/src/core/SkBitmapFilter.h
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2013 Google Inc.
  *
@@ -5,12 +6,11 @@
  * found in the LICENSE file.
  */
 
+
 #ifndef SkBitmapFilter_DEFINED
 #define SkBitmapFilter_DEFINED
 
-#include "SkFixed.h"
 #include "SkMath.h"
-#include "SkScalar.h"
 
 // size of the precomputed bitmap filter tables for high quality filtering.
 // Used to precompute the shape of the filter kernel.
diff --git a/src/core/SkBitmapHeap.cpp b/src/core/SkBitmapHeap.cpp
index e1d3cae..07e65fb 100644
--- a/src/core/SkBitmapHeap.cpp
+++ b/src/core/SkBitmapHeap.cpp
@@ -7,7 +7,10 @@
  */
 
 #include "SkBitmapHeap.h"
+
 #include "SkBitmap.h"
+#include "SkReadBuffer.h"
+#include "SkWriteBuffer.h"
 #include "SkTSearch.h"
 
 SkBitmapHeapEntry::SkBitmapHeapEntry()
diff --git a/src/core/SkBitmapHeap.h b/src/core/SkBitmapHeap.h
index 1e1979f..259d947 100644
--- a/src/core/SkBitmapHeap.h
+++ b/src/core/SkBitmapHeap.h
@@ -1,19 +1,18 @@
+
 /*
  * Copyright 2012 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-
 #ifndef SkBitmapHeap_DEFINED
 #define SkBitmapHeap_DEFINED
 
-#include "SkAtomics.h"
 #include "SkBitmap.h"
-#include "SkPoint.h"
+#include "SkFlattenable.h"
 #include "SkRefCnt.h"
 #include "SkTDArray.h"
-#include "SkTypes.h"
+#include "SkAtomics.h"
 
 /**
  * SkBitmapHeapEntry provides users of SkBitmapHeap (using internal storage) with a means to...
diff --git a/src/core/SkBitmapScaler.cpp b/src/core/SkBitmapScaler.cpp
index 6e25302..84b926e 100644
--- a/src/core/SkBitmapScaler.cpp
+++ b/src/core/SkBitmapScaler.cpp
@@ -7,12 +7,10 @@
 
 #include "SkBitmapScaler.h"
 #include "SkBitmapFilter.h"
-#include "SkConvolver.h"
-#include "SkImageInfo.h"
-#include "SkPixmap.h"
 #include "SkRect.h"
-#include "SkScalar.h"
 #include "SkTArray.h"
+#include "SkErrorInternals.h"
+#include "SkConvolver.h"
 
 // SkResizeFilter ----------------------------------------------------------------
 
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index a932ba9..59078d6 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -9,6 +9,7 @@
 #include "SkAntiRun.h"
 #include "SkColor.h"
 #include "SkColorFilter.h"
+#include "SkCoreBlitters.h"
 #include "SkFilterShader.h"
 #include "SkReadBuffer.h"
 #include "SkWriteBuffer.h"
diff --git a/src/core/SkBlitter.h b/src/core/SkBlitter.h
index baa9ccc..a2ab89d 100644
--- a/src/core/SkBlitter.h
+++ b/src/core/SkBlitter.h
@@ -9,16 +9,14 @@
 #define SkBlitter_DEFINED
 
 #include "SkBitmapProcShader.h"
-#include "SkColor.h"
-#include "SkRect.h"
+#include "SkMask.h"
+#include "SkMatrix.h"
+#include "SkPaint.h"
+#include "SkPixmap.h"
+#include "SkRefCnt.h"
 #include "SkRegion.h"
 #include "SkShader.h"
-#include "SkTypes.h"
-
-class SkMatrix;
-class SkPaint;
-class SkPixmap;
-struct SkMask;
+#include "SkSmallAllocator.h"
 
 /** SkBlitter and its subclasses are responsible for actually writing pixels
     into memory. Besides efficiency, they handle clipping and antialiasing.
diff --git a/src/core/SkBuffer.cpp b/src/core/SkBuffer.cpp
index 51c368a..590b05b 100644
--- a/src/core/SkBuffer.cpp
+++ b/src/core/SkBuffer.cpp
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2006 The Android Open Source Project
  *
@@ -5,9 +6,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkBuffer.h"
 
-#include <string.h>
+#include "SkBuffer.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/SkBuffer.h b/src/core/SkBuffer.h
index 92ed705..aaafb36 100644
--- a/src/core/SkBuffer.h
+++ b/src/core/SkBuffer.h
@@ -11,7 +11,6 @@
 #define SkBuffer_DEFINED
 
 #include "SkScalar.h"
-#include "SkTypes.h"
 
 /** \class SkRBuffer
 
diff --git a/src/core/SkCachedData.cpp b/src/core/SkCachedData.cpp
index 16c4eea..f1fb026 100644
--- a/src/core/SkCachedData.cpp
+++ b/src/core/SkCachedData.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "SkCachedData.h"
+#include "SkRefCnt.h"
 #include "SkDiscardableMemory.h"
 
 //#define TRACK_CACHEDDATA_LIFETIME
diff --git a/src/core/SkCachedData.h b/src/core/SkCachedData.h
index a861157..6493a75 100644
--- a/src/core/SkCachedData.h
+++ b/src/core/SkCachedData.h
@@ -9,7 +9,6 @@
 #define SkCachedData_DEFINED
 
 #include "SkMutex.h"
-#include "SkTypes.h"
 
 class SkDiscardableMemory;
 
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 342f79f..2308151 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -5,12 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapDevice.h"
 #include "SkCanvas.h"
 #include "SkCanvasPriv.h"
-#include "SkClipStack.h"
+#include "SkBitmapDevice.h"
 #include "SkColorFilter.h"
-#include "SkDevice.h"
 #include "SkDraw.h"
 #include "SkDrawable.h"
 #include "SkDrawFilter.h"
@@ -20,6 +18,7 @@
 #include "SkMetaData.h"
 #include "SkNinePatchIter.h"
 #include "SkPaintPriv.h"
+#include "SkPathOps.h"
 #include "SkPatchUtils.h"
 #include "SkPicture.h"
 #include "SkRasterClip.h"
@@ -27,12 +26,12 @@
 #include "SkRRect.h"
 #include "SkSmallAllocator.h"
 #include "SkSurface_Base.h"
+#include "SkTemplates.h"
 #include "SkTextBlob.h"
 #include "SkTextFormatParams.h"
 #include "SkTLazy.h"
 #include "SkTraceEvent.h"
-
-#include <new>
+#include "SkUtils.h"
 
 #if SK_SUPPORT_GPU
 #include "GrRenderTarget.h"
diff --git a/src/core/SkColor.cpp b/src/core/SkColor.cpp
index 73e6ddd..6fa239f 100644
--- a/src/core/SkColor.cpp
+++ b/src/core/SkColor.cpp
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2006 The Android Open Source Project
  *
@@ -5,9 +6,9 @@
  * found in the LICENSE file.
  */
 
+
 #include "SkColor.h"
 #include "SkColorPriv.h"
-#include "SkFixed.h"
 
 SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
     return SkPremultiplyARGBInline(a, r, g, b);
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
index 9cbcc64..8e01090 100644
--- a/src/core/SkColorFilter.cpp
+++ b/src/core/SkColorFilter.cpp
@@ -7,14 +7,9 @@
 
 #include "SkColorFilter.h"
 #include "SkReadBuffer.h"
-#include "SkRefCnt.h"
 #include "SkString.h"
-#include "SkTDArray.h"
-#include "SkUnPreMultiply.h"
 #include "SkWriteBuffer.h"
 
-class GrFragmentProcessor;
-
 bool SkColorFilter::asColorMode(SkColor* color, SkXfermode::Mode* mode) const {
     return false;
 }
diff --git a/src/core/SkMaskFilter.cpp b/src/core/SkMaskFilter.cpp
index 5e7cee6..bb700cd 100644
--- a/src/core/SkMaskFilter.cpp
+++ b/src/core/SkMaskFilter.cpp
@@ -11,7 +11,6 @@
 #include "SkBlitter.h"
 #include "SkDraw.h"
 #include "SkCachedData.h"
-#include "SkPath.h"
 #include "SkRasterClip.h"
 #include "SkRRect.h"
 #include "SkTypes.h"
diff --git a/src/core/SkMiniRecorder.cpp b/src/core/SkMiniRecorder.cpp
index df40fa4..916c477 100644
--- a/src/core/SkMiniRecorder.cpp
+++ b/src/core/SkMiniRecorder.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "SkCanvas.h"
-#include "SkTLazy.h"
 #include "SkLazyPtr.h"
 #include "SkMiniRecorder.h"
 #include "SkPicture.h"
diff --git a/src/core/SkPictureImageGenerator.cpp b/src/core/SkPictureImageGenerator.cpp
index 6c3faef..0dea60d 100644
--- a/src/core/SkPictureImageGenerator.cpp
+++ b/src/core/SkPictureImageGenerator.cpp
@@ -11,7 +11,6 @@
 #include "SkMatrix.h"
 #include "SkPaint.h"
 #include "SkPicture.h"
-#include "SkTLazy.h"
 
 class SkPictureImageGenerator : SkImageGenerator {
 public:
diff --git a/src/pdf/SkPDFDevice.h b/src/pdf/SkPDFDevice.h
index bed2947..32ebebd 100644
--- a/src/pdf/SkPDFDevice.h
+++ b/src/pdf/SkPDFDevice.h
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2011 Google Inc.
  *
@@ -5,13 +6,13 @@
  * found in the LICENSE file.
  */
 
+
 #ifndef SkPDFDevice_DEFINED
 #define SkPDFDevice_DEFINED
 
+#include "SkDevice.h"
 #include "SkBitmap.h"
 #include "SkCanvas.h"
-#include "SkClipStack.h"
-#include "SkDevice.h"
 #include "SkPaint.h"
 #include "SkPath.h"
 #include "SkPicture.h"
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
index 63f598f..6f235ed 100644
--- a/src/ports/SkFontHost_FreeType.cpp
+++ b/src/ports/SkFontHost_FreeType.cpp
@@ -19,7 +19,6 @@
 #include "SkMatrix22.h"
 #include "SkMutex.h"
 #include "SkOTUtils.h"
-#include "SkPath.h"
 #include "SkScalerContext.h"
 #include "SkStream.h"
 #include "SkString.h"
diff --git a/src/svg/SkSVGDevice.cpp b/src/svg/SkSVGDevice.cpp
index 9fd7ce7..f348c1d 100644
--- a/src/svg/SkSVGDevice.cpp
+++ b/src/svg/SkSVGDevice.cpp
@@ -10,7 +10,6 @@
 #include "SkBase64.h"
 #include "SkBitmap.h"
 #include "SkChecksum.h"
-#include "SkClipStack.h"
 #include "SkData.h"
 #include "SkDraw.h"
 #include "SkImageEncoder.h"
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
index 8a4f817..52926a0 100644
--- a/src/utils/SkDeferredCanvas.cpp
+++ b/src/utils/SkDeferredCanvas.cpp
@@ -9,7 +9,6 @@
 #include "SkDeferredCanvas.h"
 
 #include "SkChunkAlloc.h"
-#include "SkClipStack.h"
 #include "SkColorFilter.h"
 #include "SkDevice.h"
 #include "SkDrawFilter.h"
diff --git a/src/utils/android/SkAndroidSDKCanvas.cpp b/src/utils/android/SkAndroidSDKCanvas.cpp
index a6393d2..41536b1 100644
--- a/src/utils/android/SkAndroidSDKCanvas.cpp
+++ b/src/utils/android/SkAndroidSDKCanvas.cpp
@@ -8,10 +8,8 @@
 #include "SkAndroidSDKCanvas.h"
 
 #include "SkColorFilter.h"
-#include "SkPaint.h"
 #include "SkPathEffect.h"
 #include "SkShader.h"
-#include "SkTLazy.h"
 
 namespace {
 
diff --git a/src/utils/debugger/SkDebugCanvas.cpp b/src/utils/debugger/SkDebugCanvas.cpp
index 6251c1b..1066d2b 100644
--- a/src/utils/debugger/SkDebugCanvas.cpp
+++ b/src/utils/debugger/SkDebugCanvas.cpp
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2012 Google Inc.
  *
@@ -5,7 +6,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkClipStack.h"
+
 #include "SkColorPriv.h"
 #include "SkDebugCanvas.h"
 #include "SkDrawCommand.h"
diff --git a/src/utils/debugger/SkDebugCanvas.h b/src/utils/debugger/SkDebugCanvas.h
index 612ee57..e0aed62 100644
--- a/src/utils/debugger/SkDebugCanvas.h
+++ b/src/utils/debugger/SkDebugCanvas.h
@@ -12,11 +12,10 @@
 
 #include "SkCanvas.h"
 #include "SkDrawCommand.h"
-#include "SkPath.h"
 #include "SkPathOps.h"
 #include "SkPicture.h"
-#include "SkString.h"
 #include "SkTArray.h"
+#include "SkString.h"
 
 class SkNWayCanvas;
 
diff --git a/src/utils/debugger/SkDrawCommand.h b/src/utils/debugger/SkDrawCommand.h
index b8eca79..7ff5a86 100644
--- a/src/utils/debugger/SkDrawCommand.h
+++ b/src/utils/debugger/SkDrawCommand.h
@@ -10,11 +10,7 @@
 #define SKDRAWCOMMAND_H_
 
 #include "SkCanvas.h"
-#include "SkTLazy.h"
-#include "SkPath.h"
-#include "SkRRect.h"
 #include "SkString.h"
-#include "SkTDArray.h"
 
 class SK_API SkDrawCommand {
 public:
diff --git a/src/utils/debugger/SkObjectParser.cpp b/src/utils/debugger/SkObjectParser.cpp
index d8dbe83..d4c8325 100644
--- a/src/utils/debugger/SkObjectParser.cpp
+++ b/src/utils/debugger/SkObjectParser.cpp
@@ -9,7 +9,6 @@
 #include "SkObjectParser.h"
 #include "SkData.h"
 #include "SkFontDescriptor.h"
-#include "SkPath.h"
 #include "SkRRect.h"
 #include "SkShader.h"
 #include "SkStream.h"
diff --git a/tests/AAClipTest.cpp b/tests/AAClipTest.cpp
index 1c4f391..08dedb4 100644
--- a/tests/AAClipTest.cpp
+++ b/tests/AAClipTest.cpp
@@ -10,7 +10,6 @@
 #include "SkMask.h"
 #include "SkPath.h"
 #include "SkRandom.h"
-#include "SkRRect.h"
 #include "Test.h"
 
 static bool operator==(const SkMask& a, const SkMask& b) {
diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp
index 645340a..4dad71d 100644
--- a/tests/BlurTest.cpp
+++ b/tests/BlurTest.cpp
@@ -8,12 +8,11 @@
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkBlurDrawLooper.h"
-#include "SkCanvas.h"
-#include "SkEmbossMaskFilter.h"
 #include "SkLayerDrawLooper.h"
+#include "SkEmbossMaskFilter.h"
+#include "SkCanvas.h"
 #include "SkMath.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "Test.h"
 
 #if SK_SUPPORT_GPU
diff --git a/tests/CanvasStateTest.cpp b/tests/CanvasStateTest.cpp
index 8b6aa25..f4db1a5 100644
--- a/tests/CanvasStateTest.cpp
+++ b/tests/CanvasStateTest.cpp
@@ -302,7 +302,6 @@
 }
 
 #ifdef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG
-#include "SkClipStack.h"
 DEF_TEST(CanvasState_test_saveLayer_clip, reporter) {
     const int WIDTH = 100;
     const int HEIGHT = 100;
diff --git a/tests/ClipCubicTest.cpp b/tests/ClipCubicTest.cpp
index 0970b83..31b38f2 100644
--- a/tests/ClipCubicTest.cpp
+++ b/tests/ClipCubicTest.cpp
@@ -9,7 +9,6 @@
 #include "SkCubicClipper.h"
 #include "SkGeometry.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "Test.h"
 
 // Currently the supersampler blitter uses int16_t for its index into an array
diff --git a/tests/DeferredCanvasTest.cpp b/tests/DeferredCanvasTest.cpp
index 600315e..eb2263e 100644
--- a/tests/DeferredCanvasTest.cpp
+++ b/tests/DeferredCanvasTest.cpp
@@ -11,7 +11,6 @@
 #include "SkBitmapProcShader.h"
 #include "SkDeferredCanvas.h"
 #include "SkGradientShader.h"
-#include "SkPath.h"
 #include "SkShader.h"
 #include "SkSurface.h"
 #include "Test.h"
diff --git a/tests/DrawBitmapRectTest.cpp b/tests/DrawBitmapRectTest.cpp
index 52c7433..7d8798c 100644
--- a/tests/DrawBitmapRectTest.cpp
+++ b/tests/DrawBitmapRectTest.cpp
@@ -12,7 +12,6 @@
 #include "SkImageGeneratorPriv.h"
 #include "SkMatrixUtils.h"
 #include "SkPaint.h"
-#include "SkPath.h"
 #include "SkRandom.h"
 #include "SkShader.h"
 #include "SkSurface.h"
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index 192abd7..3d6e59e 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -10,7 +10,6 @@
 #include "SkDevice.h"
 #include "SkImageEncoder.h"
 #include "SkImage_Base.h"
-#include "SkPath.h"
 #include "SkRRect.h"
 #include "SkSurface.h"
 #include "SkUtils.h"