15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CONTENT_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CONTENT_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/browser/renderer_host/render_view_host_factory.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SiteInstance;
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderViewHostDelegate;
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderProcessHostFactory;
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SessionStorageNamespace;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Manages creation of the RenderViewHosts using our special subclass. This
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// automatically registers itself when it goes in scope, and unregisters itself
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// when it goes out of scope. Since you can't have more than one factory
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// registered at a time, you can only have one of these objects at a time.
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TestRenderViewHostFactory : public RenderViewHostFactory {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  explicit TestRenderViewHostFactory(RenderProcessHostFactory* rph_factory);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~TestRenderViewHostFactory();
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void set_render_process_host_factory(
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      RenderProcessHostFactory* rph_factory);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual RenderViewHost* CreateRenderViewHost(
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      SiteInstance* instance,
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      RenderViewHostDelegate* delegate,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      RenderWidgetHostDelegate* widget_delegate,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      int routing_id,
35868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      int main_frame_routing_id,
36a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch      bool swapped_out) OVERRIDE;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(TestRenderViewHostFactory);
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CONTENT_TEST_TEST_RENDER_VIEW_HOST_FACTORY_H_
45