- add sources.
[platform/framework/web/crosswalk.git] / src / android_webview / browser / aw_contents_client_bridge_base.h
1 // Copyright (c) 2013 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_BROWSER_AW_CONTENTS_CLIENT_BRIDGE_BASE_H_
6 #define ANDROID_WEBVIEW_BROWSER_AW_CONTENTS_CLIENT_BRIDGE_BASE_H_
7
8 #include "base/callback_forward.h"
9 #include "base/supports_user_data.h"
10 #include "content/public/browser/javascript_dialog_manager.h"
11
12 class GURL;
13
14 namespace content {
15 class WebContents;
16 }
17
18 namespace net {
19 class X509Certificate;
20 }
21
22 namespace android_webview {
23
24 // browser/ layer interface for AwContensClientBridge, as DEPS prevents this
25 // layer from depending on native/ where the implementation lives. The
26 // implementor of the base class plumbs the request to the Java side and
27 // eventually to the webviewclient. This layering hides the details of
28 // native/ from browser/ layer.
29 class AwContentsClientBridgeBase {
30  public:
31   // Adds the handler to the UserData registry.
32   static void Associate(content::WebContents* web_contents,
33                         AwContentsClientBridgeBase* handler);
34   static AwContentsClientBridgeBase* FromWebContents(
35       content::WebContents* web_contents);
36   static AwContentsClientBridgeBase* FromID(int render_process_id,
37                                             int render_view_id);
38
39   virtual ~AwContentsClientBridgeBase();
40
41   virtual void AllowCertificateError(int cert_error,
42                                      net::X509Certificate* cert,
43                                      const GURL& request_url,
44                                      const base::Callback<void(bool)>& callback,
45                                      bool* cancel_request) = 0;
46
47   virtual void RunJavaScriptDialog(
48       content::JavaScriptMessageType message_type,
49       const GURL& origin_url,
50       const string16& message_text,
51       const string16& default_prompt_text,
52       const content::JavaScriptDialogManager::DialogClosedCallback& callback)
53       = 0;
54   virtual void RunBeforeUnloadDialog(
55       const GURL& origin_url,
56       const string16& message_text,
57       const content::JavaScriptDialogManager::DialogClosedCallback& callback)
58       = 0;
59 };
60
61 }  // namespace android_webview
62
63 #endif  // ANDROID_WEBVIEW_BROWSER_AW_CONTENTS_CLIENT_BRIDGE_BASE_H_