[content shell] implement testRunner.overridePreference
[chromium-blink-merge.git] / content / renderer / browser_plugin / mock_browser_plugin_manager.cc
blob347ae1d072bbe2f45e623ef72d860931d2ebac01
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"
10 namespace content {
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_,
25 render_view,
26 frame,
27 params);
30 void MockBrowserPluginManager::Cleanup() {
31 IDMap<BrowserPlugin>::iterator iter(&instances_);
32 while (!iter.IsAtEnd()) {
33 iter.GetCurrentValue()->Cleanup();
34 iter.Advance();
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();
48 } else {
49 if (msg->is_sync()) {
50 // We actually need to handle deleting the reply deserializer for sync
51 // messages.
52 reply_deserializer_.reset(
53 static_cast<IPC::SyncMessage*>(msg)->GetReplyDeserializer());
55 OnMessageReceived(*msg);
57 delete msg;
58 return true;
61 bool MockBrowserPluginManager::OnMessageReceived(
62 const IPC::Message& message) {
63 // Save the message in the sink.
64 sink_.OnMessageReceived(message);
65 return false;
68 } // namespace content