Chromium Code Reviews| Index: android_webview/browser/renderer_host/view_renderer_host.cc |
| diff --git a/android_webview/browser/renderer_host/view_renderer_host.cc b/android_webview/browser/renderer_host/view_renderer_host.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1964efdd07e41f66febb0ad383f7b83ea6bb6cc8 |
| --- /dev/null |
| +++ b/android_webview/browser/renderer_host/view_renderer_host.cc |
| @@ -0,0 +1,61 @@ |
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "android_webview/browser/renderer_host/view_renderer_host.h" |
| + |
| +#include "android_webview/browser/scoped_allow_wait_for_legacy_web_view_api.h" |
| +#include "android_webview/common/render_view_messages.h" |
| +#include "android_webview/common/renderer_picture_map.h" |
| +#include "content/public/browser/render_process_host.h" |
| +#include "content/public/browser/web_contents.h" |
| + |
| +namespace android_webview { |
| + |
| +ViewRendererHost::ViewRendererHost(content::WebContents* contents, |
| + Client* client) |
| + : content::WebContentsObserver(contents), |
| + client_(client) { |
| +} |
| + |
| +ViewRendererHost::~ViewRendererHost() { |
| +} |
| + |
| +void ViewRendererHost::CapturePictureSync() { |
| + // Might lead to crashes if the connection is not ready yet. |
|
benm (inactive)
2013/01/21 20:34:49
What might lead to crashes? Calling this function
Leandro Graciá Gil
2013/01/22 08:18:46
Oh, this should not be here. This is the workaroun
|
| + if (!web_contents()->GetRenderProcessHost()->HasConnection()) |
| + return; |
| + |
| + ScopedAllowWaitForLegacyWebViewApi wait; |
| + Send(new AwViewMsg_CapturePictureSync(web_contents()->GetRoutingID())); |
| +} |
| + |
| +void ViewRendererHost::EnableCapturePictureCallback(bool enabled) { |
| + Send(new AwViewMsg_EnableCapturePictureCallback( |
| + web_contents()->GetRoutingID(), enabled)); |
| +} |
| + |
| +void ViewRendererHost::OnPictureUpdated() { |
| + if (client_) |
|
joth
2013/01/21 22:54:24
nit: use { } when the conditional is multiline
Leandro Graciá Gil
2013/01/22 08:18:46
Done.
|
| + client_->OnPictureUpdated(web_contents()->GetRenderProcessHost()->GetID(), |
| + routing_id()); |
| +} |
| + |
| +void ViewRendererHost::RenderViewGone(base::TerminationStatus status) { |
| + DCHECK(CalledOnValidThread()); |
| + RendererPictureMap::GetInstance()->ClearRendererPicture( |
| + web_contents()->GetRoutingID()); |
| +} |
| + |
| +bool ViewRendererHost::OnMessageReceived(const IPC::Message& message) { |
| + bool handled = true; |
| + IPC_BEGIN_MESSAGE_MAP(ViewRendererHost, message) |
| + IPC_MESSAGE_HANDLER(AwViewHostMsg_PictureUpdated, |
| + OnPictureUpdated) |
| + IPC_MESSAGE_UNHANDLED(handled = false) |
| + IPC_END_MESSAGE_MAP() |
| + |
| + return handled ? true : WebContentsObserver::OnMessageReceived(message); |
| +} |
| + |
| +} // namespace android_webview |