OLD | NEW |
| (Empty) |
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 | |
OLD | NEW |