- add sources.
[platform/framework/web/crosswalk.git] / src / content / test / test_render_view_host_factory.h
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_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_
6 #define CONTENT_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_
7
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "content/browser/renderer_host/render_view_host_factory.h"
11
12 namespace content {
13
14 class SiteInstance;
15 class RenderViewHostDelegate;
16 class RenderProcessHostFactory;
17 class SessionStorageNamespace;
18
19 // Manages creation of the RenderViewHosts using our special subclass. This
20 // automatically registers itself when it goes in scope, and unregisters itself
21 // when it goes out of scope. Since you can't have more than one factory
22 // registered at a time, you can only have one of these objects at a time.
23 class TestRenderViewHostFactory : public RenderViewHostFactory {
24  public:
25   explicit TestRenderViewHostFactory(RenderProcessHostFactory* rph_factory);
26   virtual ~TestRenderViewHostFactory();
27
28   virtual void set_render_process_host_factory(
29       RenderProcessHostFactory* rph_factory);
30   virtual RenderViewHost* CreateRenderViewHost(
31       SiteInstance* instance,
32       RenderViewHostDelegate* delegate,
33       RenderWidgetHostDelegate* widget_delegate,
34       int routing_id,
35       int main_frame_routing_id,
36       bool swapped_out) OVERRIDE;
37
38  private:
39   DISALLOW_COPY_AND_ASSIGN(TestRenderViewHostFactory);
40 };
41
42 }  // namespace content
43
44 #endif  // CONTENT_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_