1 // Copyright (c) 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_NATIVE_AW_WEB_CONTENTS_DELEGATE_H_ 6 #define ANDROID_WEBVIEW_NATIVE_AW_WEB_CONTENTS_DELEGATE_H_ 7 8 #include <jni.h> 9 10 #include "components/web_contents_delegate_android/web_contents_delegate_android.h" 11 12 namespace android_webview { 13 14 // WebView specific WebContentsDelegate. 15 // Should contain WebContentsDelegate code required by WebView that should not 16 // be part of the Chromium Android port. 17 class AwWebContentsDelegate 18 : public web_contents_delegate_android::WebContentsDelegateAndroid { 19 public: 20 AwWebContentsDelegate(JNIEnv* env, jobject obj); 21 virtual ~AwWebContentsDelegate(); 22 virtual content::JavaScriptDialogManager* GetJavaScriptDialogManager() 23 OVERRIDE; 24 virtual void FindReply(content::WebContents* web_contents, 25 int request_id, 26 int number_of_matches, 27 const gfx::Rect& selection_rect, 28 int active_match_ordinal, 29 bool final_update) OVERRIDE; 30 virtual void CanDownload(content::RenderViewHost* source, 31 const GURL& url, 32 const std::string& request_method, 33 const base::Callback<void(bool)>& callback) OVERRIDE; 34 virtual void RunFileChooser( 35 content::WebContents* web_contents, 36 const content::FileChooserParams& params) OVERRIDE; 37 virtual void AddNewContents(content::WebContents* source, 38 content::WebContents* new_contents, 39 WindowOpenDisposition disposition, 40 const gfx::Rect& initial_pos, 41 bool user_gesture, 42 bool* was_blocked) OVERRIDE; 43 44 virtual void WebContentsCreated(content::WebContents* source_contents, 45 int opener_render_frame_id, 46 const base::string16& frame_name, 47 const GURL& target_url, 48 content::WebContents* new_contents) OVERRIDE; 49 50 virtual void CloseContents(content::WebContents* source) OVERRIDE; 51 virtual void ActivateContents(content::WebContents* contents) OVERRIDE; 52 virtual void RequestMediaAccessPermission( 53 content::WebContents* web_contents, 54 const content::MediaStreamRequest& request, 55 const content::MediaResponseCallback& callback) OVERRIDE; 56 virtual void ToggleFullscreenModeForTab(content::WebContents* web_contents, 57 bool enter_fullscreen) OVERRIDE; 58 virtual bool IsFullscreenForTabOrPending( 59 const content::WebContents* web_contents) const OVERRIDE; 60 61 private: 62 bool is_fullscreen_; 63 }; 64 65 bool RegisterAwWebContentsDelegate(JNIEnv* env); 66 67 } // namespace android_webview 68 69 #endif // ANDROID_WEBVIEW_NATIVE_AW_WEB_CONTENTS_DELEGATE_H_ 70