| Index: content/browser/renderer_host/render_widget_host_view_gtk.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_gtk.cc b/content/browser/renderer_host/render_widget_host_view_gtk.cc
|
| index 7a9ff552ff5a4b5482ce65f7389964c92acee756..996c2ea231deb6b08725315a93969ed26fa574ca 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_gtk.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_gtk.cc
|
| @@ -1045,53 +1045,12 @@ BackingStore* RenderWidgetHostViewGtk::AllocBackingStore(
|
| depth);
|
| }
|
|
|
| -// NOTE: |output| is initialized with the size of |src_subrect|, and |dst_size|
|
| -// is ignored on GTK.
|
| void RenderWidgetHostViewGtk::CopyFromCompositingSurface(
|
| const gfx::Rect& src_subrect,
|
| - const gfx::Size& /* dst_size */,
|
| + const gfx::Size& dst_size,
|
| const base::Callback<void(bool, const SkBitmap&)>& callback) {
|
| - base::ScopedClosureRunner scoped_callback_runner(
|
| - base::Bind(callback, false, SkBitmap()));
|
| -
|
| - XID parent_window = ui::GetParentWindow(compositing_surface_);
|
| - if (parent_window == None)
|
| - return;
|
| -
|
| - // Get the window offset with respect to its parent.
|
| - XWindowAttributes attr;
|
| - if (!XGetWindowAttributes(ui::GetXDisplay(), compositing_surface_, &attr))
|
| - return;
|
| -
|
| - gfx::Rect src_subrect_in_parent(src_subrect);
|
| - src_subrect_in_parent.Offset(attr.x, attr.y);
|
| -
|
| - ui::XScopedImage image(XGetImage(ui::GetXDisplay(), parent_window,
|
| - src_subrect_in_parent.x(),
|
| - src_subrect_in_parent.y(),
|
| - src_subrect_in_parent.width(),
|
| - src_subrect_in_parent.height(),
|
| - AllPlanes, ZPixmap));
|
| - if (!image.get())
|
| - return;
|
| -
|
| - SkBitmap bitmap;
|
| - bitmap.setConfig(SkBitmap::kARGB_8888_Config,
|
| - image->width,
|
| - image->height,
|
| - image->bytes_per_line);
|
| - if (!bitmap.allocPixels())
|
| - return;
|
| - bitmap.setIsOpaque(true);
|
| -
|
| - const size_t bitmap_size = bitmap.getSize();
|
| - DCHECK_EQ(bitmap_size,
|
| - static_cast<size_t>(image->height * image->bytes_per_line));
|
| - unsigned char* pixels = static_cast<unsigned char*>(bitmap.getPixels());
|
| - memcpy(pixels, image->data, bitmap_size);
|
| -
|
| - scoped_callback_runner.Release();
|
| - callback.Run(true, bitmap);
|
| + RenderWidgetHostImpl::From(GetRenderWidgetHost())
|
| + ->GetSnapshotFromRenderer(src_subrect, dst_size, callback);
|
| }
|
|
|
| void RenderWidgetHostViewGtk::CopyFromCompositingSurfaceToVideoFrame(
|
|
|