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 RenderFrameCreated(content::RenderFrame* render_frame) OVERRIDE; 27 virtual void RenderViewCreated(content::RenderView* render_view) OVERRIDE; 28 virtual std::string GetDefaultEncoding() OVERRIDE; 29 virtual bool HasErrorPage(int http_status_code, 30 std::string* error_domain) OVERRIDE; 31 virtual void GetNavigationErrorStrings( 32 content::RenderView* render_view, 33 blink::WebFrame* frame, 34 const blink::WebURLRequest& failed_request, 35 const blink::WebURLError& error, 36 std::string* error_html, 37 base::string16* error_description) OVERRIDE; 38 virtual unsigned long long VisitedLinkHash(const char* canonical_url, 39 size_t length) OVERRIDE; 40 virtual bool IsLinkVisited(unsigned long long link_hash) OVERRIDE; 41 virtual void AddKeySystems( 42 std::vector<content::KeySystemInfo>* key_systems) OVERRIDE; 43 44 virtual bool HandleNavigation(content::RenderFrame* render_frame, 45 content::DocumentState* document_state, 46 int opener_id, 47 blink::WebFrame* frame, 48 const blink::WebURLRequest& request, 49 blink::WebNavigationType type, 50 blink::WebNavigationPolicy default_policy, 51 bool is_redirect) OVERRIDE; 52 53 private: 54 scoped_ptr<AwRenderProcessObserver> aw_render_process_observer_; 55 scoped_ptr<visitedlink::VisitedLinkSlave> visited_link_slave_; 56 }; 57 58 } // namespace android_webview 59 60 #endif // ANDROID_WEBVIEW_RENDERER_AW_CONTENT_RENDERER_CLIENT_H_ 61