Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Unified Diff: content/renderer/render_view_impl.cc

Issue 11399002: Implemented GetWindowSnapshot on RenderViewImpl (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Addressing nits Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index a3c5cf06cdfb593c863ad1e65c982822e8a2a58d..bdba3f511d723d1fb402d6a9b971bb9872daa60f 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -593,6 +593,7 @@ RenderViewImpl::RenderViewImpl(
#endif
session_storage_namespace_id_(session_storage_namespace_id),
handling_select_range_(false),
+ next_snapshot_id_(0),
#if defined(OS_WIN)
focused_plugin_id_(-1),
#endif
@@ -1002,6 +1003,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))
@@ -1708,6 +1711,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,
jamesr 2012/11/12 18:41:19 we don't typically use const for primitive paramet
+ 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(
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698