diff --git a/DEPS b/DEPS
index 6f89773..031ae55 100644
--- a/DEPS
+++ b/DEPS
@@ -16,7 +16,7 @@
   'icu_revision': '2341038bf72869a5683a893a2b319a48ffec7f62',
   'instrumented_lib_revision': '45f5814b1543e41ea0be54c771e3840ea52cca4a',
   'pdfium_tests_revision': '9d17ef47f310332ac64e78e636681d493482a409',
-  'skia_revision': 'a9fd106d0c4dd5449c607add0716db7bbd81bc73',
+  'skia_revision': '76073c11040204d51dceb49cbd0b05be8e7fd0a2',
   'tools_memory_revision': '427f10475e1a8d72424c29d00bf689122b738e5d',
   'trace_event_revision': '06294c8a4a6f744ef284cd63cfe54dbf61eea290',
   'v8_revision': '8e0dcfc4ac75c0bef9063bd5dec4dafaa3409b6d',
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index 9c0ea07..51379b8 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -1038,7 +1038,7 @@
       } else {
         SkASSERT(Clip::kPath == m_commands[m_clipIndex]);
         m_pDriver->SkiaCanvas()->clipPath(m_clips[m_clipIndex],
-                                          SkCanvas::kIntersect_Op, true);
+                                          kIntersect_SkClipOp, true);
       }
       ++m_clipIndex;
     }
@@ -1449,7 +1449,7 @@
         SkRect skClipRect =
             SkRect::MakeLTRB(rectf.left, rectf.bottom, rectf.right, rectf.top);
         DebugDrawSkiaClipRect(m_pCanvas, skClipRect);
-        m_pCanvas->clipRect(skClipRect, SkCanvas::kIntersect_Op, true);
+        m_pCanvas->clipRect(skClipRect, kIntersect_SkClipOp, true);
       }
 
 #ifdef _SKIA_SUPPORT_PATHS_
@@ -1469,7 +1469,7 @@
   DebugShowSkiaPath(skClipPath);
   if (!cached) {
     DebugDrawSkiaClipPath(m_pCanvas, skClipPath);
-    m_pCanvas->clipPath(skClipPath, SkCanvas::kIntersect_Op, true);
+    m_pCanvas->clipPath(skClipPath, kIntersect_SkClipOp, true);
   }
 #ifdef _SKIA_SUPPORT_PATHS_
   FX_RECT clipBox(0, 0, GetDeviceCaps(FXDC_PIXEL_WIDTH),
@@ -1503,7 +1503,7 @@
   dst_path.transform(skMatrix);
   if (!cached) {
     DebugDrawSkiaClipPath(m_pCanvas, dst_path);
-    m_pCanvas->clipPath(dst_path, SkCanvas::kIntersect_Op, true);
+    m_pCanvas->clipPath(dst_path, kIntersect_SkClipOp, true);
   }
 #ifdef _SKIA_SUPPORT_PATHS_
   FX_RECT clipBox(0, 0, GetDeviceCaps(FXDC_PIXEL_WIDTH),
@@ -1745,7 +1745,7 @@
     SkColor colors[4];
     m_pCanvas->save();
     if (!skClip.isEmpty())
-      m_pCanvas->clipPath(skClip, SkCanvas::kIntersect_Op, true);
+      m_pCanvas->clipPath(skClip, kIntersect_SkClipOp, true);
     m_pCanvas->concat(skMatrix);
     while (!stream.BitStream()->IsEOF()) {
       uint32_t flag = stream.GetFlag();
@@ -1776,7 +1776,7 @@
   }
   m_pCanvas->save();
   if (!skClip.isEmpty())
-    m_pCanvas->clipPath(skClip, SkCanvas::kIntersect_Op, true);
+    m_pCanvas->clipPath(skClip, kIntersect_SkClipOp, true);
   m_pCanvas->concat(skMatrix);
   m_pCanvas->drawPath(skPath, paint);
   m_pCanvas->restore();
@@ -1915,7 +1915,7 @@
   m_pCanvas->save();
   SkRect skClipRect = SkRect::MakeLTRB(pClipRect->left, pClipRect->bottom,
                                        pClipRect->right, pClipRect->top);
-  m_pCanvas->clipRect(skClipRect, SkCanvas::kIntersect_Op, true);
+  m_pCanvas->clipRect(skClipRect, kIntersect_SkClipOp, true);
   void* dummy;
   bool result = StartDIBits(pSource, 0xFF, argb, &m, 0, dummy, blend_type);
   m_pCanvas->restore();
