• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 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 ANDROID_WEBVIEW_RENDERER_AW_CONTENT_RENDERER_CLIENT_H_
6 #define ANDROID_WEBVIEW_RENDERER_AW_CONTENT_RENDERER_CLIENT_H_
7 
8 #include "content/public/renderer/content_renderer_client.h"
9 
10 #include "android_webview/renderer/aw_render_process_observer.h"
11 #include "base/compiler_specific.h"
12 
13 namespace visitedlink {
14 class VisitedLinkSlave;
15 }
16 
17 namespace android_webview {
18 
19 class AwContentRendererClient : public content::ContentRendererClient {
20  public:
21   AwContentRendererClient();
22   virtual ~AwContentRendererClient();
23 
24   // ContentRendererClient implementation.
25   virtual void RenderThreadStarted() OVERRIDE;
26   virtual void RenderViewCreated(content::RenderView* render_view) OVERRIDE;
27   virtual std::string GetDefaultEncoding() OVERRIDE;
28   virtual bool HasErrorPage(int http_status_code,
29                             std::string* error_domain) OVERRIDE;
30   virtual void GetNavigationErrorStrings(
31       blink::WebFrame* frame,
32       const blink::WebURLRequest& failed_request,
33       const blink::WebURLError& error,
34       const std::string& accept_languages,
35       std::string* error_html,
36       string16* error_description) OVERRIDE;
37   virtual unsigned long long VisitedLinkHash(const char* canonical_url,
38                                              size_t length) OVERRIDE;
39   virtual bool IsLinkVisited(unsigned long long link_hash) OVERRIDE;
40   virtual void AddKeySystems(
41       std::vector<content::KeySystemInfo>* key_systems) OVERRIDE;
42 
43   virtual bool HandleNavigation(content::RenderView* view,
44                                 content::DocumentState* document_state,
45                                 int opener_id,
46                                 blink::WebFrame* frame,
47                                 const blink::WebURLRequest& request,
48                                 blink::WebNavigationType type,
49                                 blink::WebNavigationPolicy default_policy,
50                                 bool is_redirect) OVERRIDE;
51 
52  private:
53   scoped_ptr<AwRenderProcessObserver> aw_render_process_observer_;
54   scoped_ptr<visitedlink::VisitedLinkSlave> visited_link_slave_;
55 };
56 
57 }  // namespace android_webview
58 
59 #endif  // ANDROID_WEBVIEW_RENDERER_AW_CONTENT_RENDERER_CLIENT_H_
60