| Index: android_webview/native/java_browser_view_renderer_helper.cc
 | 
| diff --git a/android_webview/native/java_browser_view_renderer_helper.cc b/android_webview/native/java_browser_view_renderer_helper.cc
 | 
| index 348926d6c3e6dcb0cba85c6be9c6fd0c5c7f0ce0..587511940d135f9d92e46714c66da4dc8f34fd04 100644
 | 
| --- a/android_webview/native/java_browser_view_renderer_helper.cc
 | 
| +++ b/android_webview/native/java_browser_view_renderer_helper.cc
 | 
| @@ -11,6 +11,7 @@
 | 
|  #include "base/trace_event/trace_event.h"
 | 
|  #include "jni/JavaBrowserViewRendererHelper_jni.h"
 | 
|  #include "third_party/skia/include/core/SkBitmap.h"
 | 
| +#include "third_party/skia/include/core/SkRefCnt.h"
 | 
|  #include "third_party/skia/include/utils/SkCanvasStateUtils.h"
 | 
|  
 | 
|  using base::android::ScopedJavaLocalRef;
 | 
| @@ -34,7 +35,7 @@ class JavaCanvasHolder : public SoftwareCanvasHolder {
 | 
|  
 | 
|   private:
 | 
|    AwPixelInfo* pixels_;
 | 
| -  skia::RefPtr<SkCanvas> canvas_;
 | 
| +  sk_sp<SkCanvas> canvas_;
 | 
|    DISALLOW_COPY_AND_ASSIGN(JavaCanvasHolder);
 | 
|  };
 | 
|  
 | 
| @@ -48,14 +49,14 @@ JavaCanvasHolder::JavaCanvasHolder(JNIEnv* env,
 | 
|    if (!pixels_ || !pixels_->state)
 | 
|      return;
 | 
|  
 | 
| -  canvas_ =
 | 
| -      skia::AdoptRef(SkCanvasStateUtils::CreateFromCanvasState(pixels_->state));
 | 
| +  canvas_ = sk_sp<SkCanvas>(
 | 
| +      SkCanvasStateUtils::CreateFromCanvasState(pixels_->state));
 | 
|    // Workarounds for http://crbug.com/271096: SW draw only supports
 | 
|    // translate & scale transforms, and a simple rectangular clip.
 | 
|    if (canvas_ && (!canvas_->isClipRect() ||
 | 
|                    (canvas_->getTotalMatrix().getType() &
 | 
|                     ~(SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask)))) {
 | 
| -    canvas_.clear();
 | 
| +    canvas_.reset();
 | 
|    }
 | 
|    if (canvas_) {
 | 
|      canvas_->translate(scroll.x(), scroll.y());
 | 
| @@ -63,7 +64,6 @@ JavaCanvasHolder::JavaCanvasHolder(JNIEnv* env,
 | 
|  }
 | 
|  
 | 
|  JavaCanvasHolder::~JavaCanvasHolder() {
 | 
| -  canvas_.clear();
 | 
|    if (pixels_)
 | 
|      g_sw_draw_functions->release_pixels(pixels_);
 | 
|    pixels_ = nullptr;
 | 
| @@ -88,7 +88,7 @@ class AuxiliaryCanvasHolder : public SoftwareCanvasHolder {
 | 
|    ScopedJavaLocalRef<jobject> jbitmap_;
 | 
|    gfx::Vector2d scroll_;
 | 
|    std::unique_ptr<SkBitmap> bitmap_;
 | 
| -  skia::RefPtr<SkCanvas> canvas_;
 | 
| +  sk_sp<SkCanvas> canvas_;
 | 
|    DISALLOW_COPY_AND_ASSIGN(AuxiliaryCanvasHolder);
 | 
|  };
 | 
|  
 | 
| @@ -121,11 +121,10 @@ AuxiliaryCanvasHolder::AuxiliaryCanvasHolder(
 | 
|        SkImageInfo::MakeN32Premul(bitmap_info.width, bitmap_info.height);
 | 
|    bitmap_.reset(new SkBitmap);
 | 
|    bitmap_->installPixels(info, pixels, bitmap_info.stride);
 | 
| -  canvas_ = skia::AdoptRef(new SkCanvas(*bitmap_));
 | 
| +  canvas_ = sk_make_sp<SkCanvas>(*bitmap_);
 | 
|  }
 | 
|  
 | 
|  AuxiliaryCanvasHolder::~AuxiliaryCanvasHolder() {
 | 
| -  canvas_.clear();
 | 
|    bitmap_.reset();
 | 
|  
 | 
|    JNIEnv* env = base::android::AttachCurrentThread();
 | 
| 
 |