| Index: content/shell/renderer/shell_render_view_observer.cc
|
| diff --git a/content/shell/renderer/shell_render_view_observer.cc b/content/shell/renderer/shell_render_view_observer.cc
|
| index 3ef6cbf9ee39319188bae780658af1a4548f3e5d..17e61d419998705807f913d4ed94b6f373fcb43b 100644
|
| --- a/content/shell/renderer/shell_render_view_observer.cc
|
| +++ b/content/shell/renderer/shell_render_view_observer.cc
|
| @@ -5,9 +5,12 @@
|
| #include "content/shell/renderer/shell_render_view_observer.h"
|
|
|
| #include "base/command_line.h"
|
| +#include "content/public/renderer/render_thread.h"
|
| #include "content/public/renderer/render_view.h"
|
| #include "content/public/renderer/render_view_observer.h"
|
| +#include "content/shell/common/shell_messages.h"
|
| #include "content/shell/common/shell_switches.h"
|
| +#include "content/shell/renderer/ipc_echo.h"
|
| #include "third_party/WebKit/public/web/WebTestingSupport.h"
|
| #include "third_party/WebKit/public/web/WebView.h"
|
|
|
| @@ -17,12 +20,38 @@ ShellRenderViewObserver::ShellRenderViewObserver(RenderView* render_view)
|
| : RenderViewObserver(render_view) {
|
| }
|
|
|
| +ShellRenderViewObserver::~ShellRenderViewObserver() {
|
| +}
|
| +
|
| void ShellRenderViewObserver::DidClearWindowObject(
|
| blink::WebLocalFrame* frame) {
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kExposeInternalsForTesting)) {
|
| blink::WebTestingSupport::injectInternalsObject(frame);
|
| }
|
| +
|
| + if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kExposeIpcEcho)) {
|
| + RenderView* view = render_view();
|
| + if (!ipc_echo_)
|
| + ipc_echo_.reset(new IPCEcho(view->GetWebView()->mainFrame()->document(),
|
| + RenderThread::Get(), view->GetRoutingID()));
|
| + ipc_echo_->Install(view->GetWebView()->mainFrame());
|
| + }
|
| +}
|
| +
|
| +bool ShellRenderViewObserver::OnMessageReceived(const IPC::Message& message) {
|
| + bool handled = true;
|
| + IPC_BEGIN_MESSAGE_MAP(ShellRenderViewObserver, message)
|
| + IPC_MESSAGE_HANDLER(ShellViewMsg_EchoPong, OnEchoPong)
|
| + IPC_MESSAGE_UNHANDLED(handled = false)
|
| + IPC_END_MESSAGE_MAP()
|
| +
|
| + return handled;
|
| +}
|
| +
|
| +void ShellRenderViewObserver::OnEchoPong(int id, const std::string& body) {
|
| + ipc_echo_->DidRespondEcho(id, body.size());
|
| }
|
|
|
| } // namespace content
|
|
|