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/common/page_transition_types.h"
12 #include "content/public/renderer/content_renderer_client.h"
13 #include "xwalk/extensions/renderer/xwalk_extension_renderer_controller.h"
14 #if defined(OS_ANDROID)
15 #include "xwalk/runtime/renderer/android/xwalk_render_process_observer.h"
17 #include "xwalk/runtime/renderer/xwalk_render_process_observer_generic.h"
20 namespace visitedlink {
21 class VisitedLinkSlave;
26 class XWalkRenderProcessObserver;
28 // When implementing a derived class, make sure to update
29 // `in_process_browser_test.cc` and `xwalk_main_delegate.cc`.
30 class XWalkContentRendererClient
31 : public content::ContentRendererClient,
32 public extensions::XWalkExtensionRendererController::Delegate {
34 static XWalkContentRendererClient* Get();
36 XWalkContentRendererClient();
37 virtual ~XWalkContentRendererClient();
39 // ContentRendererClient implementation.
40 virtual void RenderThreadStarted() OVERRIDE;
41 virtual void RenderFrameCreated(content::RenderFrame* render_frame) OVERRIDE;
42 virtual void RenderViewCreated(content::RenderView* render_view) OVERRIDE;
43 virtual void DidCreateScriptContext(
44 blink::WebFrame* frame, v8::Handle<v8::Context> context,
45 int extension_group, int world_id) OVERRIDE;
46 #if defined(OS_ANDROID)
47 virtual unsigned long long VisitedLinkHash(const char* canonical_url, // NOLINT
48 size_t length) OVERRIDE;
49 virtual bool IsLinkVisited(unsigned long long link_hash) OVERRIDE; // NOLINT
52 virtual bool WillSendRequest(blink::WebFrame* frame,
53 content::PageTransition transition_type,
55 const GURL& first_party_for_cookies,
56 GURL* new_url) OVERRIDE;
59 // XWalkExtensionRendererController::Delegate implementation.
60 virtual void DidCreateModuleSystem(
61 extensions::XWalkModuleSystem* module_system) OVERRIDE;
63 scoped_ptr<extensions::XWalkExtensionRendererController>
64 extension_controller_;
66 scoped_ptr<XWalkRenderProcessObserver> xwalk_render_process_observer_;
67 #if defined(OS_ANDROID)
68 scoped_ptr<visitedlink::VisitedLinkSlave> visited_link_slave_;
71 DISALLOW_COPY_AND_ASSIGN(XWalkContentRendererClient);
76 #endif // XWALK_RUNTIME_RENDERER_XWALK_CONTENT_RENDERER_CLIENT_H_