1fdb4253a8ab1fccf111825fdcd478e7b2def867
[platform/framework/web/crosswalk.git] / src / xwalk / runtime / renderer / xwalk_content_renderer_client.h
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.
4
5 #ifndef XWALK_RUNTIME_RENDERER_XWALK_CONTENT_RENDERER_CLIENT_H_
6 #define XWALK_RUNTIME_RENDERER_XWALK_CONTENT_RENDERER_CLIENT_H_
7
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"
13
14 namespace xwalk {
15
16 class XWalkRenderProcessObserver;
17
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 {
23  public:
24   static XWalkContentRendererClient* Get();
25
26   XWalkContentRendererClient();
27   virtual ~XWalkContentRendererClient();
28
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;
39
40  private:
41   // XWalkExtensionRendererController::Delegate implementation.
42   virtual void DidCreateModuleSystem(
43       extensions::XWalkModuleSystem* module_system) OVERRIDE;
44
45   scoped_ptr<extensions::XWalkExtensionRendererController>
46       extension_controller_;
47
48 #if defined(OS_ANDROID)
49   scoped_ptr<XWalkRenderProcessObserver> xwalk_render_process_observer_;
50 #endif
51
52   DISALLOW_COPY_AND_ASSIGN(XWalkContentRendererClient);
53 };
54
55 }  // namespace xwalk
56
57 #endif  // XWALK_RUNTIME_RENDERER_XWALK_CONTENT_RENDERER_CLIENT_H_