1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/renderer/browser_plugin/mock_browser_plugin_manager.h"
7 #include "base/message_loop/message_loop.h"
8 #include "content/common/browser_plugin/browser_plugin_messages.h"
9 #include "content/renderer/browser_plugin/mock_browser_plugin.h"
10 #include "ipc/ipc_message.h"
14 MockBrowserPluginManager::MockBrowserPluginManager(
15 RenderViewImpl
* render_view
)
16 : BrowserPluginManager(render_view
),
20 MockBrowserPluginManager::~MockBrowserPluginManager() {
23 BrowserPlugin
* MockBrowserPluginManager::CreateBrowserPlugin(
24 RenderViewImpl
* render_view
,
25 blink::WebFrame
* frame
,
27 last_plugin_
= new MockBrowserPlugin(render_view
, frame
, auto_navigate
);
31 bool MockBrowserPluginManager::Send(IPC::Message
* msg
) {
32 // This is a copy-and-paste from MockRenderThread::Send.
33 // We need to simulate a synchronous channel, thus we are going to receive
34 // through this function messages, messages with reply and reply messages.
35 // We can only handle one synchronous message at a time.
36 if (msg
->is_reply()) {
37 if (reply_deserializer_
) {
38 reply_deserializer_
->SerializeOutputParameters(*msg
);
39 reply_deserializer_
.reset();
43 // We actually need to handle deleting the reply deserializer for sync
45 reply_deserializer_
.reset(
46 static_cast<IPC::SyncMessage
*>(msg
)->GetReplyDeserializer());
48 OnMessageReceived(*msg
);
54 bool MockBrowserPluginManager::OnMessageReceived(
55 const IPC::Message
& message
) {
56 // Save the message in the sink.
57 sink_
.OnMessageReceived(message
);
61 } // namespace content