Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / renderer / browser_plugin / mock_browser_plugin_manager.cc
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.
4
5 #include "content/renderer/browser_plugin/mock_browser_plugin_manager.h"
6
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"
11
12 namespace content {
13
14 MockBrowserPluginManager::MockBrowserPluginManager(
15     RenderViewImpl* render_view)
16     : BrowserPluginManager(render_view),
17       last_plugin_(NULL) {
18 }
19
20 MockBrowserPluginManager::~MockBrowserPluginManager() {
21 }
22
23 BrowserPlugin* MockBrowserPluginManager::CreateBrowserPlugin(
24     RenderViewImpl* render_view,
25     blink::WebFrame* frame,
26     scoped_ptr<BrowserPluginDelegate> delegate) {
27   last_plugin_ = new MockBrowserPlugin(render_view, frame, delegate.Pass());
28   return last_plugin_;
29 }
30
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();
40     }
41   } else {
42     if (msg->is_sync()) {
43       // We actually need to handle deleting the reply deserializer for sync
44       // messages.
45       reply_deserializer_.reset(
46           static_cast<IPC::SyncMessage*>(msg)->GetReplyDeserializer());
47     }
48     OnMessageReceived(*msg);
49   }
50   delete msg;
51   return true;
52 }
53
54 bool MockBrowserPluginManager::OnMessageReceived(
55     const IPC::Message& message) {
56   // Save the message in the sink.
57   sink_.OnMessageReceived(message);
58   return false;
59 }
60
61 }  // namespace content