| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 21b30de751a5e3760cc887bf50099375046acaa7..b63027f439e051495a47419d5064e1e542332935 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -600,6 +600,7 @@ RenderViewImpl::RenderViewImpl(RenderViewImplParams* params)
|
| #endif
|
| session_storage_namespace_id_(params->session_storage_namespace_id),
|
| handling_select_range_(false),
|
| + next_snapshot_id_(0),
|
| #if defined(OS_WIN)
|
| focused_plugin_id_(-1),
|
| #endif
|
| @@ -1043,6 +1044,8 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
|
| #endif
|
| IPC_MESSAGE_HANDLER(ViewMsg_ReleaseDisambiguationPopupDIB,
|
| OnReleaseDisambiguationPopupDIB)
|
| + IPC_MESSAGE_HANDLER(ViewMsg_WindowSnapshotCompleted,
|
| + OnWindowSnapshotCompleted)
|
|
|
| // Have the super handle all other messages.
|
| IPC_MESSAGE_UNHANDLED(handled = RenderWidget::OnMessageReceived(message))
|
| @@ -1757,6 +1760,20 @@ bool RenderViewImpl::SendAndRunNestedMessageLoop(IPC::SyncMessage* message) {
|
| return Send(message);
|
| }
|
|
|
| +void RenderViewImpl::GetWindowSnapshot(const WindowSnapshotCallback& callback) {
|
| + int id = next_snapshot_id_++;
|
| + pending_snapshots_.insert(std::make_pair(id, callback));
|
| + Send(new ViewHostMsg_GetWindowSnapshot(routing_id_, id));
|
| +}
|
| +
|
| +void RenderViewImpl::OnWindowSnapshotCompleted(const int snapshot_id,
|
| + const gfx::Size& size, const std::vector<unsigned char>& png) {
|
| + PendingSnapshotMap::iterator it = pending_snapshots_.find(snapshot_id);
|
| + DCHECK(it != pending_snapshots_.end());
|
| + it->second.Run(size, png);
|
| + pending_snapshots_.erase(it);
|
| +}
|
| +
|
| // WebKit::WebViewClient ------------------------------------------------------
|
|
|
| WebView* RenderViewImpl::createView(
|
|
|