15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ANDROID_WEBVIEW_NATIVE_AW_WEB_CONTENTS_DELEGATE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ANDROID_WEBVIEW_NATIVE_AW_WEB_CONTENTS_DELEGATE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <jni.h> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "components/web_contents_delegate_android/web_contents_delegate_android.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace android_webview { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// WebView specific WebContentsDelegate. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Should contain WebContentsDelegate code required by WebView that should not 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// be part of the Chromium Android port. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AwWebContentsDelegate 18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) : public web_contents_delegate_android::WebContentsDelegateAndroid { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AwWebContentsDelegate(JNIEnv* env, jobject obj); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~AwWebContentsDelegate(); 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual content::JavaScriptDialogManager* GetJavaScriptDialogManager() 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OVERRIDE; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void FindReply(content::WebContents* web_contents, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int request_id, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int number_of_matches, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& selection_rect, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int active_match_ordinal, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool final_update) OVERRIDE; 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void CanDownload(content::RenderViewHost* source, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int request_id, 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& request_method, 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::Callback<void(bool)>& callback) OVERRIDE; 34ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual void RunFileChooser( 35ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch content::WebContents* web_contents, 36ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const content::FileChooserParams& params) OVERRIDE; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void AddNewContents(content::WebContents* source, 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) content::WebContents* new_contents, 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WindowOpenDisposition disposition, 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Rect& initial_pos, 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool user_gesture, 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool* was_blocked) OVERRIDE; 43a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 44a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual void WebContentsCreated(content::WebContents* source_contents, 45a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int64 source_frame_id, 46a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const string16& frame_name, 47a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const GURL& target_url, 48a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) content::WebContents* new_contents) OVERRIDE; 49a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void CloseContents(content::WebContents* source) OVERRIDE; 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void ActivateContents(content::WebContents* contents) OVERRIDE; 5268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) virtual void RequestProtectedMediaIdentifierPermission( 5368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const content::WebContents* web_contents, 5468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const GURL& frame_url, 5568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const base::Callback<void(bool)>& callback) OVERRIDE; 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool RegisterAwWebContentsDelegate(JNIEnv* env); 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace android_webview 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ANDROID_WEBVIEW_NATIVE_AW_WEB_CONTENTS_DELEGATE_H_ 63