Remove SkLights include from SkCanvas.h

SkLights.h pulls in a bunch of other headers and is not needed (fwdecl
works fine).

Change-Id: Id2d7176eb3bf4609f72f46d513eebf59318f542f
Reviewed-on: https://skia-review.googlesource.com/14904
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/bench/ColorCanvasDrawBitmapBench.cpp b/bench/ColorCanvasDrawBitmapBench.cpp
index de13ba2..c150e79 100644
--- a/bench/ColorCanvasDrawBitmapBench.cpp
+++ b/bench/ColorCanvasDrawBitmapBench.cpp
@@ -6,6 +6,7 @@
 */
 
 #include "Benchmark.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkColorSpaceXformCanvas.h"
 #include "SkString.h"
diff --git a/bench/DrawBitmapAABench.cpp b/bench/DrawBitmapAABench.cpp
index 011c30a..f0ccd89 100644
--- a/bench/DrawBitmapAABench.cpp
+++ b/bench/DrawBitmapAABench.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "Benchmark.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkMatrix.h"
 #include "SkPaint.h"
diff --git a/bench/DrawLatticeBench.cpp b/bench/DrawLatticeBench.cpp
index 806815b..7a8cdf3 100644
--- a/bench/DrawLatticeBench.cpp
+++ b/bench/DrawLatticeBench.cpp
@@ -6,6 +6,7 @@
 */
 
 #include "Benchmark.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkRect.h"
 #include "SkString.h"
diff --git a/bench/ImageFilterDAGBench.cpp b/bench/ImageFilterDAGBench.cpp
index 719e87b..350510b 100644
--- a/bench/ImageFilterDAGBench.cpp
+++ b/bench/ImageFilterDAGBench.cpp
@@ -10,6 +10,7 @@
 #include "SkBlurImageFilter.h"
 #include "SkDisplacementMapEffect.h"
 #include "SkCanvas.h"
+#include "SkImage.h"
 #include "SkMergeImageFilter.h"
 
 
diff --git a/bench/MagnifierBench.cpp b/bench/MagnifierBench.cpp
index 98deade..6403aa6 100644
--- a/bench/MagnifierBench.cpp
+++ b/bench/MagnifierBench.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "Benchmark.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkMagnifierImageFilter.h"
 #include "SkRandom.h"
diff --git a/bench/ReadPixBench.cpp b/bench/ReadPixBench.cpp
index 2efb19c..2a8e9c4 100644
--- a/bench/ReadPixBench.cpp
+++ b/bench/ReadPixBench.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "Benchmark.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 
 
diff --git a/bench/ShaderMaskBench.cpp b/bench/ShaderMaskBench.cpp
index 8fd99b6..1cc2347 100644
--- a/bench/ShaderMaskBench.cpp
+++ b/bench/ShaderMaskBench.cpp
@@ -9,6 +9,7 @@
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkRandom.h"
+#include "SkShader.h"
 #include "SkString.h"
 #include "SkTemplates.h"
 
diff --git a/bench/WritePixelsBench.cpp b/bench/WritePixelsBench.cpp
index 5d6787e..4e2dbeb 100644
--- a/bench/WritePixelsBench.cpp
+++ b/bench/WritePixelsBench.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "Benchmark.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkString.h"
 
diff --git a/gm/bitmapimage.cpp b/gm/bitmapimage.cpp
index 8c37d5d..be17af8 100644
--- a/gm/bitmapimage.cpp
+++ b/gm/bitmapimage.cpp
@@ -8,6 +8,7 @@
 #include "gm.h"
 #include "Resources.h"
 #include "SkCodec.h"
+#include "SkImage.h"
 
 namespace skiagm {
 
diff --git a/gm/colorspacexform.cpp b/gm/colorspacexform.cpp
index 4657f6a..eb98b01 100644
--- a/gm/colorspacexform.cpp
+++ b/gm/colorspacexform.cpp
@@ -10,6 +10,7 @@
 #include "SkColorSpace_Base.h"
 #include "SkColorSpaceXform.h"
 #include "SkRect.h"
+#include "SkShader.h"
 
 class ColorSpaceXformGM : public skiagm::GM {
 public:
diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp
index 90fcedc..a6210c9 100644
--- a/gm/composeshader.cpp
+++ b/gm/composeshader.cpp
@@ -10,6 +10,7 @@
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkGraphics.h"
+#include "SkImage.h"
 #include "SkShader.h"
 #include "SkString.h"
 #include "SkTDArray.h"
diff --git a/gm/deferredtextureimage.cpp b/gm/deferredtextureimage.cpp
index c88b878..9c1fe6a 100644
--- a/gm/deferredtextureimage.cpp
+++ b/gm/deferredtextureimage.cpp
@@ -7,6 +7,7 @@
 #include <vector>
 
 #include "gm.h"
+#include "SkImage.h"
 #include "SkMipMap.h"
 #include "Resources.h"
 
diff --git a/gm/encode-platform.cpp b/gm/encode-platform.cpp
index f08da73..17f27d5 100644
--- a/gm/encode-platform.cpp
+++ b/gm/encode-platform.cpp
@@ -10,6 +10,7 @@
 #include "Resources.h"
 #include "SkCanvas.h"
 #include "SkData.h"
+#include "SkImage.h"
 #include "SkImageEncoderPriv.h"
 #include "SkUnPreMultiply.h"
 
diff --git a/gm/encode-srgb.cpp b/gm/encode-srgb.cpp
index 3015baa..ab95757 100644
--- a/gm/encode-srgb.cpp
+++ b/gm/encode-srgb.cpp
@@ -12,6 +12,7 @@
 #include "SkCodec.h"
 #include "SkColorSpace_Base.h"
 #include "SkData.h"
+#include "SkImage.h"
 #include "SkImageEncoderPriv.h"
 #include "SkPM4f.h"
 #include "SkSRGB.h"
diff --git a/gm/encode.cpp b/gm/encode.cpp
index 1dae1bf..bf13d3d 100644
--- a/gm/encode.cpp
+++ b/gm/encode.cpp
@@ -8,6 +8,7 @@
 #include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkData.h"
+#include "SkImage.h"
 #include "SkImageEncoder.h"
 #include "Resources.h"
 
diff --git a/gm/gammaencodedpremul.cpp b/gm/gammaencodedpremul.cpp
index 327368f..d55498b 100644
--- a/gm/gammaencodedpremul.cpp
+++ b/gm/gammaencodedpremul.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "SkColorPriv.h"
 #include "SkColorSpaceXform.h"
 #include "SkColorSpaceXformPriv.h"
 #include "SkOpts.h"
diff --git a/gm/subsetshader.cpp b/gm/subsetshader.cpp
index c4ef5f7..a7029f4 100644
--- a/gm/subsetshader.cpp
+++ b/gm/subsetshader.cpp
@@ -7,6 +7,7 @@
 
 #include "Resources.h"
 #include "SkBitmap.h"
+#include "SkShader.h"
 #include "gm.h"
 
 DEF_SIMPLE_GM(bitmap_subset_shader, canvas, 256, 256) {
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index 837b2ff..8edc36d 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -14,7 +14,6 @@
 #include "SkPaint.h"
 #include "SkRasterHandleAllocator.h"
 #include "SkSurfaceProps.h"
-#include "SkLights.h"
 #include "../private/SkShadowParams.h"
 
 class GrContext;
@@ -28,6 +27,7 @@
 class SkDrawFilter;
 class SkImage;
 class SkImageFilter;
+class SkLights;
 class SkMetaData;
 class SkPath;
 class SkPicture;
diff --git a/include/private/SkRecords.h b/include/private/SkRecords.h
index 4d7b217..d8f392a 100644
--- a/include/private/SkRecords.h
+++ b/include/private/SkRecords.h
@@ -11,6 +11,7 @@
 #include "SkData.h"
 #include "SkCanvas.h"
 #include "SkDrawable.h"
+#include "SkImage.h"
 #include "SkImageFilter.h"
 #include "SkMatrix.h"
 #include "SkPath.h"
diff --git a/samplecode/SampleAAGeometry.cpp b/samplecode/SampleAAGeometry.cpp
index 6f6541b..69aa77f 100644
--- a/samplecode/SampleAAGeometry.cpp
+++ b/samplecode/SampleAAGeometry.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "SampleCode.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkGeometry.h"
 #include "SkIntersections.h"
diff --git a/samplecode/SampleAnimatedText.cpp b/samplecode/SampleAnimatedText.cpp
index e70530a..29bd192 100644
--- a/samplecode/SampleAnimatedText.cpp
+++ b/samplecode/SampleAnimatedText.cpp
@@ -11,6 +11,7 @@
 #include "SkUtils.h"
 #include "SkColorPriv.h"
 #include "SkColorFilter.h"
+#include "SkImage.h"
 #include "SkRandom.h"
 #include "SkSystemEventTypes.h"
 #include "SkTime.h"
diff --git a/samplecode/SampleLayerMask.cpp b/samplecode/SampleLayerMask.cpp
index f0c6a40..b039421 100644
--- a/samplecode/SampleLayerMask.cpp
+++ b/samplecode/SampleLayerMask.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "SampleCode.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkPath.h"
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index c09e6cb..ad03f73 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -20,6 +20,7 @@
 #include "SkImageFilter.h"
 #include "SkImageFilterCache.h"
 #include "SkLatticeIter.h"
+#include "SkLights.h"
 #include "SkMakeUnique.h"
 #include "SkMatrixUtils.h"
 #include "SkMetaData.h"
diff --git a/src/core/SkDraw.h b/src/core/SkDraw.h
index b142e7e..f2d5946 100644
--- a/src/core/SkDraw.h
+++ b/src/core/SkDraw.h
@@ -13,6 +13,7 @@
 #include "SkCanvas.h"
 #include "SkMask.h"
 #include "SkPaint.h"
+#include "SkPixmap.h"
 #include "SkStrokeRec.h"
 #include "SkVertices.h"
 
diff --git a/src/core/SkLiteDL.cpp b/src/core/SkLiteDL.cpp
index 71cbf68..4d3a5f9 100644
--- a/src/core/SkLiteDL.cpp
+++ b/src/core/SkLiteDL.cpp
@@ -8,6 +8,7 @@
 #include "SkCanvas.h"
 #include "SkData.h"
 #include "SkDrawFilter.h"
+#include "SkImage.h"
 #include "SkImageFilter.h"
 #include "SkLiteDL.h"
 #include "SkMath.h"
diff --git a/src/core/SkLiteDL.h b/src/core/SkLiteDL.h
index f8e7910..c88a86d 100644
--- a/src/core/SkLiteDL.h
+++ b/src/core/SkLiteDL.h
@@ -14,6 +14,7 @@
 #include "SkDrawable.h"
 #include "SkRect.h"
 #include "SkTDArray.h"
+#include "SkTemplates.h"
 
 class SkLiteDL final {
 public:
diff --git a/src/core/SkPictureCommon.h b/src/core/SkPictureCommon.h
index 6f6a9f1..a400264 100644
--- a/src/core/SkPictureCommon.h
+++ b/src/core/SkPictureCommon.h
@@ -14,6 +14,7 @@
 
 #include "SkPathEffect.h"
 #include "SkRecords.h"
+#include "SkShader.h"
 #include "SkTLogic.h"
 
 // N.B. This name is slightly historical: hunting season is now open for SkImages too.
diff --git a/src/core/SkRecord.cpp b/src/core/SkRecord.cpp
index 4df4131..3553ff5 100644
--- a/src/core/SkRecord.cpp
+++ b/src/core/SkRecord.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "SkRecord.h"
+#include "SkImage.h"
 #include <algorithm>
 
 SkRecord::~SkRecord() {
diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp
index 9e8d6fc..7999be3 100644
--- a/src/core/SkRecordDraw.cpp
+++ b/src/core/SkRecordDraw.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "SkRecordDraw.h"
+#include "SkImage.h"
 #include "SkPatchUtils.h"
 
 void SkRecordDraw(const SkRecord& record,
diff --git a/src/fonts/SkRandomScalerContext.cpp b/src/fonts/SkRandomScalerContext.cpp
index 3a292dc..a38f695 100644
--- a/src/fonts/SkRandomScalerContext.cpp
+++ b/src/fonts/SkRandomScalerContext.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkGlyph.h"
 #include "SkMakeUnique.h"
diff --git a/src/pdf/SkPDFCanvas.cpp b/src/pdf/SkPDFCanvas.cpp
index d946f48..c5cde3d 100644
--- a/src/pdf/SkPDFCanvas.cpp
+++ b/src/pdf/SkPDFCanvas.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "SkImage.h"
 #include "SkLatticeIter.h"
 #include "SkPDFCanvas.h"
 #include "SkPDFDevice.h"
diff --git a/src/utils/SkDumpCanvas.cpp b/src/utils/SkDumpCanvas.cpp
index 35b88de..05cabad 100644
--- a/src/utils/SkDumpCanvas.cpp
+++ b/src/utils/SkDumpCanvas.cpp
@@ -7,6 +7,7 @@
 
 #include "SkData.h"
 #include "SkDumpCanvas.h"
+#include "SkImage.h"
 #include "SkPatchUtils.h"
 #include "SkPicture.h"
 #include "SkPixelRef.h"
diff --git a/src/utils/SkShadowPaintFilterCanvas.h b/src/utils/SkShadowPaintFilterCanvas.h
index 190c68b..a03e000 100644
--- a/src/utils/SkShadowPaintFilterCanvas.h
+++ b/src/utils/SkShadowPaintFilterCanvas.h
@@ -8,6 +8,7 @@
 #ifndef SkShadowPaintFilterCanvas_DEFINED
 #define SkShadowPaintFilterCanvas_DEFINED
 
+#include "SkLights.h"
 #include "SkPaintFilterCanvas.h"
 
 #ifdef SK_EXPERIMENTAL_SHADOWING
diff --git a/src/utils/SkShadowUtils.cpp b/src/utils/SkShadowUtils.cpp
index 928eb66..6ea5566 100644
--- a/src/utils/SkShadowUtils.cpp
+++ b/src/utils/SkShadowUtils.cpp
@@ -8,6 +8,7 @@
 #include "SkShadowUtils.h"
 #include "SkCanvas.h"
 #include "SkColorFilter.h"
+#include "SkColorPriv.h"
 #include "SkPath.h"
 #include "SkRandom.h"
 #include "SkResourceCache.h"
diff --git a/tests/CanvasStateTest.cpp b/tests/CanvasStateTest.cpp
index 73c8a0e..ae417d4 100644
--- a/tests/CanvasStateTest.cpp
+++ b/tests/CanvasStateTest.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "CanvasStateHelpers.h"
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkClipOpPriv.h"
 #include "SkCanvasStateUtils.h"
diff --git a/tests/ClipCubicTest.cpp b/tests/ClipCubicTest.cpp
index 1d88eae..854ac32 100644
--- a/tests/ClipCubicTest.cpp
+++ b/tests/ClipCubicTest.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkCubicClipper.h"
 #include "SkGeometry.h"
@@ -165,41 +166,41 @@
 
 #include "SkSurface.h"
 
-DEF_TEST(test_fuzz_crbug_698714, reporter) {

-    auto surface(SkSurface::MakeRasterN32Premul(500, 500));

-    SkCanvas* canvas = surface->getCanvas();

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    SkPath path;

-    path.setFillType(SkPath::kWinding_FillType);

-    path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000));  // 0,0

-    path.lineTo(SkBits2Float(0x43434343), SkBits2Float(0x43430143));  //195.263f, 195.005f

-    path.lineTo(SkBits2Float(0x43434343), SkBits2Float(0x43434343));  //195.263f, 195.263f

-    path.lineTo(SkBits2Float(0xb5434343), SkBits2Float(0x434300be));  //-7.2741e-07f, 195.003f

-    // 195.263f, 195.263f, -1.16387e-05f, 3.58641e-38f, 3.85088e-29f,1.86082e-39f

-    path.cubicTo(SkBits2Float(0x43434343), SkBits2Float(0x43434341),

-            SkBits2Float(0xb74343bd), SkBits2Float(0x01434343),

-            SkBits2Float(0x10434343), SkBits2Float(0x00144332));

-    // 4.11823e-38f, 195.263f, 195.263f, 195.263f, -7.2741e-07f, 195.263f

-    path.cubicTo(SkBits2Float(0x016037c0), SkBits2Float(0x43434343),

-            SkBits2Float(0x43434343), SkBits2Float(0x43434343),

-            SkBits2Float(0xb5434343), SkBits2Float(0x43434343));

-    // 195.263f, 195.263f, -1.16387e-05f, 3.58641e-38f, 195.263f, -2

-    path.cubicTo(SkBits2Float(0x43434344), SkBits2Float(0x43434341),

-            SkBits2Float(0xb74343bd), SkBits2Float(0x01434343),

-            SkBits2Float(0x43434343), SkBits2Float(0xc0000014));

-    // -5.87228e+06f, 3.7773e-07f, 3.60231e-13f, -6.64511e+06f,2.77692e-15f, 2.48803e-15f

-    path.cubicTo(SkBits2Float(0xcab33535), SkBits2Float(0x34cacaca),

-            SkBits2Float(0x2acacaca), SkBits2Float(0xcacacae3),

-            SkBits2Float(0x27481927), SkBits2Float(0x27334805));

-    path.lineTo(SkBits2Float(0xb5434343), SkBits2Float(0x43434343));  //-7.2741e-07f, 195.263f

-    // 195.263f, 195.263f, -1.16387e-05f, 195.212f, 195.263f, -2

-    path.cubicTo(SkBits2Float(0x43434343), SkBits2Float(0x43434341),

-            SkBits2Float(0xb74343b9), SkBits2Float(0x43433643),

-            SkBits2Float(0x43434343), SkBits2Float(0xc0000014));

-    path.lineTo(SkBits2Float(0xc7004343), SkBits2Float(0x27480527));  //-32835.3f, 2.77584e-15f

-    path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000));  // 0,0

-    path.close();

-    canvas->clipRect({0, 0, 65, 202});

-    canvas->drawPath(path, paint);

-}

+DEF_TEST(test_fuzz_crbug_698714, reporter) {
+    auto surface(SkSurface::MakeRasterN32Premul(500, 500));
+    SkCanvas* canvas = surface->getCanvas();
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    SkPath path;
+    path.setFillType(SkPath::kWinding_FillType);
+    path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000));  // 0,0
+    path.lineTo(SkBits2Float(0x43434343), SkBits2Float(0x43430143));  //195.263f, 195.005f
+    path.lineTo(SkBits2Float(0x43434343), SkBits2Float(0x43434343));  //195.263f, 195.263f
+    path.lineTo(SkBits2Float(0xb5434343), SkBits2Float(0x434300be));  //-7.2741e-07f, 195.003f
+    // 195.263f, 195.263f, -1.16387e-05f, 3.58641e-38f, 3.85088e-29f,1.86082e-39f
+    path.cubicTo(SkBits2Float(0x43434343), SkBits2Float(0x43434341),
+            SkBits2Float(0xb74343bd), SkBits2Float(0x01434343),
+            SkBits2Float(0x10434343), SkBits2Float(0x00144332));
+    // 4.11823e-38f, 195.263f, 195.263f, 195.263f, -7.2741e-07f, 195.263f
+    path.cubicTo(SkBits2Float(0x016037c0), SkBits2Float(0x43434343),
+            SkBits2Float(0x43434343), SkBits2Float(0x43434343),
+            SkBits2Float(0xb5434343), SkBits2Float(0x43434343));
+    // 195.263f, 195.263f, -1.16387e-05f, 3.58641e-38f, 195.263f, -2
+    path.cubicTo(SkBits2Float(0x43434344), SkBits2Float(0x43434341),
+            SkBits2Float(0xb74343bd), SkBits2Float(0x01434343),
+            SkBits2Float(0x43434343), SkBits2Float(0xc0000014));
+    // -5.87228e+06f, 3.7773e-07f, 3.60231e-13f, -6.64511e+06f,2.77692e-15f, 2.48803e-15f
+    path.cubicTo(SkBits2Float(0xcab33535), SkBits2Float(0x34cacaca),
+            SkBits2Float(0x2acacaca), SkBits2Float(0xcacacae3),
+            SkBits2Float(0x27481927), SkBits2Float(0x27334805));
+    path.lineTo(SkBits2Float(0xb5434343), SkBits2Float(0x43434343));  //-7.2741e-07f, 195.263f
+    // 195.263f, 195.263f, -1.16387e-05f, 195.212f, 195.263f, -2
+    path.cubicTo(SkBits2Float(0x43434343), SkBits2Float(0x43434341),
+            SkBits2Float(0xb74343b9), SkBits2Float(0x43433643),
+            SkBits2Float(0x43434343), SkBits2Float(0xc0000014));
+    path.lineTo(SkBits2Float(0xc7004343), SkBits2Float(0x27480527));  //-32835.3f, 2.77584e-15f
+    path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000));  // 0,0
+    path.close();
+    canvas->clipRect({0, 0, 65, 202});
+    canvas->drawPath(path, paint);
+}
diff --git a/tests/ClipperTest.cpp b/tests/ClipperTest.cpp
index 8ebd9b4..641ed01 100644
--- a/tests/ClipperTest.cpp
+++ b/tests/ClipperTest.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkEdgeClipper.h"
 #include "SkLineClipper.h"
diff --git a/tests/EmptyPathTest.cpp b/tests/EmptyPathTest.cpp
index 060ef8d..5b857a0 100644
--- a/tests/EmptyPathTest.cpp
+++ b/tests/EmptyPathTest.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 #include "Test.h"
diff --git a/tests/HighContrastFilterTest.cpp b/tests/HighContrastFilterTest.cpp
index 26f1a7c..7c3fc84 100644
--- a/tests/HighContrastFilterTest.cpp
+++ b/tests/HighContrastFilterTest.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkHighContrastFilter.h"
 #include "Test.h"
diff --git a/tests/PictureBBHTest.cpp b/tests/PictureBBHTest.cpp
index 64b09b1..0bc81c2 100644
--- a/tests/PictureBBHTest.cpp
+++ b/tests/PictureBBHTest.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkBBoxHierarchy.h"
 #include "SkPaint.h"
diff --git a/tests/SpecialSurfaceTest.cpp b/tests/SpecialSurfaceTest.cpp
index 1867e25..a336cf6 100644
--- a/tests/SpecialSurfaceTest.cpp
+++ b/tests/SpecialSurfaceTest.cpp
@@ -5,6 +5,7 @@
 * found in the LICENSE file
 */
 
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkSpecialImage.h"
 #include "SkSpecialSurface.h"
diff --git a/tools/debugger/SkDrawCommand.h b/tools/debugger/SkDrawCommand.h
index 4004b3b..fc15526 100644
--- a/tools/debugger/SkDrawCommand.h
+++ b/tools/debugger/SkDrawCommand.h
@@ -8,6 +8,7 @@
 #ifndef SKDRAWCOMMAND_H_
 #define SKDRAWCOMMAND_H_
 
+#include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkTLazy.h"
 #include "SkPath.h"
diff --git a/tools/dump_record.cpp b/tools/dump_record.cpp
index c1b87e7..24017bd 100644
--- a/tools/dump_record.cpp
+++ b/tools/dump_record.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "DumpRecord.h"
+#include "SkBitmap.h"
 #include "SkCommandLineFlags.h"
 #include "SkDeferredCanvas.h"
 #include "SkPicture.h"
diff --git a/tools/ok.cpp b/tools/ok.cpp
index 10f9afd..edda9be 100644
--- a/tools/ok.cpp
+++ b/tools/ok.cpp
@@ -10,6 +10,7 @@
 //   * ok is entirely opt-in.  No more maintaining huge --blacklists.
 
 #include "SkGraphics.h"
+#include "SkImage.h"
 #include "ok.h"
 #include <chrono>
 #include <future>
diff --git a/tools/ok_srcs.cpp b/tools/ok_srcs.cpp
index fd5f201..5630a34 100644
--- a/tools/ok_srcs.cpp
+++ b/tools/ok_srcs.cpp
@@ -7,6 +7,7 @@
 
 #include "ok.h"
 #include "gm.h"
+#include "SkData.h"
 #include "SkOSFile.h"
 #include "SkPicture.h"
 #include <vector>
diff --git a/tools/ok_vias.cpp b/tools/ok_vias.cpp
index 17e117a..20779cf 100644
--- a/tools/ok_vias.cpp
+++ b/tools/ok_vias.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "SkImage.h"
 #include "SkOSFile.h"
 #include "SkPictureRecorder.h"
 #include "ok.h"