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_ 45