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 "ipc/ipc_message.h"
8 #include "content/renderer/browser_plugin/mock_browser_plugin.h"
12 MockBrowserPluginManager::MockBrowserPluginManager(
13 RenderViewImpl
* render_view
)
14 : BrowserPluginManager(render_view
) {
17 MockBrowserPluginManager::~MockBrowserPluginManager() {
20 BrowserPlugin
* MockBrowserPluginManager::CreateBrowserPlugin(
21 RenderViewImpl
* render_view
,
22 WebKit::WebFrame
* frame
,
23 const WebKit::WebPluginParams
& params
) {
24 return new MockBrowserPlugin(++browser_plugin_counter_
,
30 void MockBrowserPluginManager::Cleanup() {
31 IDMap
<BrowserPlugin
>::iterator
iter(&instances_
);
32 while (!iter
.IsAtEnd()) {
33 iter
.GetCurrentValue()->Cleanup();
38 bool MockBrowserPluginManager::Send(IPC::Message
* msg
) {
39 // This is a copy-and-paste from MockRenderThread::Send.
40 // We need to simulate a synchronous channel, thus we are going to receive
41 // through this function messages, messages with reply and reply messages.
42 // We can only handle one synchronous message at a time.
43 if (msg
->is_reply()) {
44 if (reply_deserializer_
.get()) {
45 reply_deserializer_
->SerializeOutputParameters(*msg
);
46 reply_deserializer_
.reset();
50 // We actually need to handle deleting the reply deserializer for sync
52 reply_deserializer_
.reset(
53 static_cast<IPC::SyncMessage
*>(msg
)->GetReplyDeserializer());
55 OnMessageReceived(*msg
);
61 bool MockBrowserPluginManager::OnMessageReceived(
62 const IPC::Message
& message
) {
63 // Save the message in the sink.
64 sink_
.OnMessageReceived(message
);
68 } // namespace content