• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef CONTENT_RENDERER_BROWSER_PLUGIN_MOCK_BROWSER_PLUGIN_MANAGER_H_
6 #define CONTENT_RENDERER_BROWSER_PLUGIN_MOCK_BROWSER_PLUGIN_MANAGER_H_
7 
8 #include "content/renderer/browser_plugin/browser_plugin_manager.h"
9 
10 #include "base/memory/scoped_ptr.h"
11 #include "ipc/ipc_message_utils.h"
12 #include "ipc/ipc_test_sink.h"
13 
14 namespace content {
15 
16 class MockBrowserPlugin;
17 
18 class MockBrowserPluginManager : public BrowserPluginManager {
19  public:
20   MockBrowserPluginManager(RenderViewImpl* render_view);
21 
22   // BrowserPluginManager implementation.
23   virtual BrowserPlugin* CreateBrowserPlugin(
24       RenderViewImpl* render_view,
25       blink::WebFrame* frame,
26       bool auto_navigate) OVERRIDE;
27 
28   // Provides access to the messages that have been received by this thread.
sink()29   IPC::TestSink& sink() { return sink_; }
30 
31   // Allocates instance ID for the browser plugin.
32   void AllocateInstanceID(BrowserPlugin* browser_plugin);
33 
34   // RenderViewObserver override.
35   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
36   virtual bool Send(IPC::Message* msg) OVERRIDE;
37 
38   // Returns the latest browser plugin that was created by this manager.
last_plugin()39   MockBrowserPlugin* last_plugin() { return last_plugin_; }
40 
41  protected:
42   virtual ~MockBrowserPluginManager();
43   void AllocateInstanceIDACK(BrowserPlugin* browser_plugin,
44                              int guest_instance_id);
45 
46   IPC::TestSink sink_;
47 
48   // The last known good deserializer for sync messages.
49   scoped_ptr<IPC::MessageReplyDeserializer> reply_deserializer_;
50 
51   int guest_instance_id_counter_;
52   MockBrowserPlugin* last_plugin_;
53 
54   DISALLOW_COPY_AND_ASSIGN(MockBrowserPluginManager);
55 };
56 
57 }  // namespace content
58 
59 #endif  // CONTENT_RENDERER_BROWSER_PLUGIN_MOCK_BROWSER_PLUGIN_MANAGER_H_
60