Fixing Chromium Android build's reliance on old SkPicture recording API
Skia is moving to an API where SkPicture can no longer invoke beginRecording/endRecording on itself. This functionality is deferred to a separate SkPictureRecorder object to clarify when SkPictures are complete (and make them immutable). This CL updates webview to the new interface.
torne for OWNER review
fmalita for skia-side review
Review URL: https://codereview.chromium.org/251843005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267210 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
index 937ed132..9e9711d 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -17,6 +17,7 @@
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkPicture.h"
+#include "third_party/skia/include/core/SkPictureRecorder.h"
#include "ui/gfx/vector2d_conversions.h"
using base::android::AttachCurrentThread;
@@ -146,9 +147,8 @@
TRACE_EVENT0("android_webview", "BrowserViewRenderer::CapturePicture");
// Return empty Picture objects for empty SkPictures.
- skia::RefPtr<SkPicture> picture = skia::AdoptRef(new SkPicture);
if (width <= 0 || height <= 0) {
- return picture;
+ return skia::AdoptRef(new SkPicture);
}
// Reset scroll back to the origin, will go back to the old
@@ -156,11 +156,11 @@
AutoResetWithLock scroll_reset(
&scroll_offset_dip_, gfx::Vector2dF(), scroll_offset_dip_lock_);
- SkCanvas* rec_canvas = picture->beginRecording(width, height, 0);
+ SkPictureRecorder recorder;
+ SkCanvas* rec_canvas = recorder.beginRecording(width, height, NULL, 0);
if (has_compositor_)
CompositeSW(rec_canvas);
- picture->endRecording();
- return picture;
+ return skia::AdoptRef(recorder.endRecording());
}
void BrowserViewRenderer::EnableOnNewPicture(bool enabled) {