1 // Copyright (c) 2013 Intel Corporation. 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.
5 #ifndef XWALK_RUNTIME_RENDERER_XWALK_CONTENT_RENDERER_CLIENT_H_
6 #define XWALK_RUNTIME_RENDERER_XWALK_CONTENT_RENDERER_CLIENT_H_
8 #include "base/compiler_specific.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/platform_file.h"
11 #include "content/public/renderer/content_renderer_client.h"
12 #include "xwalk/extensions/renderer/xwalk_extension_renderer_controller.h"
16 class XWalkRenderProcessObserver;
18 // When implementing a derived class, make sure to update
19 // `in_process_browser_test.cc` and `xwalk_main_delegate.cc`.
20 class XWalkContentRendererClient
21 : public content::ContentRendererClient,
22 public extensions::XWalkExtensionRendererController::Delegate {
24 static XWalkContentRendererClient* Get();
26 XWalkContentRendererClient();
27 virtual ~XWalkContentRendererClient();
29 // ContentRendererClient implementation.
30 virtual void RenderThreadStarted() OVERRIDE;
31 virtual void RenderFrameCreated(content::RenderFrame* render_frame) OVERRIDE;
32 virtual void RenderViewCreated(content::RenderView* render_view) OVERRIDE;
33 virtual void DidCreateScriptContext(
34 blink::WebFrame* frame, v8::Handle<v8::Context> context,
35 int extension_group, int world_id) OVERRIDE;
36 virtual void WillReleaseScriptContext(blink::WebFrame* frame,
37 v8::Handle<v8::Context>,
38 int world_id) OVERRIDE;
41 // XWalkExtensionRendererController::Delegate implementation.
42 virtual void DidCreateModuleSystem(
43 extensions::XWalkModuleSystem* module_system) OVERRIDE;
45 scoped_ptr<extensions::XWalkExtensionRendererController>
46 extension_controller_;
48 #if defined(OS_ANDROID)
49 scoped_ptr<XWalkRenderProcessObserver> xwalk_render_process_observer_;
52 DISALLOW_COPY_AND_ASSIGN(XWalkContentRendererClient);
57 #endif // XWALK_RUNTIME_RENDERER_XWALK_CONTENT_RENDERER_CLIENT_H_