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