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