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 12namespace content { 13 14class SiteInstance; 15class RenderViewHostDelegate; 16class RenderProcessHostFactory; 17class 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. 23class 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