diff options
author | kristianm@chromium.org <kristianm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-05 02:05:39 +0000 |
---|---|---|
committer | kristianm@chromium.org <kristianm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-05 02:05:39 +0000 |
commit | 44100446a3f13e5fa2ef69a0f5d342e9bf5d23f4 (patch) | |
tree | 87f4650da39d5f67907a76f331f6f775ee00e32c /android_webview/browser | |
parent | e2d81b055fbfcdaff73c52da161ce330ea25b0ab (diff) | |
download | chromium_src-44100446a3f13e5fa2ef69a0f5d342e9bf5d23f4.zip chromium_src-44100446a3f13e5fa2ef69a0f5d342e9bf5d23f4.tar.gz chromium_src-44100446a3f13e5fa2ef69a0f5d342e9bf5d23f4.tar.bz2 |
Callbacks cannot be owned by Java
Would like to merge js_result_handler into aw_javascript_dialog_manager
as it is not that much code, and it would mean one less global.
BUG=
Review URL: https://chromiumcodereview.appspot.com/12797007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192445 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/browser')
3 files changed, 106 insertions, 0 deletions
diff --git a/android_webview/browser/aw_contents_client_bridge_base.h b/android_webview/browser/aw_contents_client_bridge_base.h index de2c13a..c9ab34d 100644 --- a/android_webview/browser/aw_contents_client_bridge_base.h +++ b/android_webview/browser/aw_contents_client_bridge_base.h @@ -7,6 +7,7 @@ #include "base/callback_forward.h" #include "base/supports_user_data.h" +#include "content/public/browser/javascript_dialog_manager.h" class GURL; @@ -42,6 +43,19 @@ class AwContentsClientBridgeBase { const GURL& request_url, const base::Callback<void(bool)>& callback, bool* cancel_request) = 0; + + virtual void RunJavaScriptDialog( + content::JavaScriptMessageType message_type, + const GURL& origin_url, + const string16& message_text, + const string16& default_prompt_text, + const content::JavaScriptDialogManager::DialogClosedCallback& callback) + = 0; + virtual void RunBeforeUnloadDialog( + const GURL& origin_url, + const string16& message_text, + const content::JavaScriptDialogManager::DialogClosedCallback& callback) + = 0; }; } // namespace android_webview diff --git a/android_webview/browser/aw_javascript_dialog_manager.cc b/android_webview/browser/aw_javascript_dialog_manager.cc new file mode 100644 index 0000000..4e9f6195 --- /dev/null +++ b/android_webview/browser/aw_javascript_dialog_manager.cc @@ -0,0 +1,51 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "android_webview/browser/aw_javascript_dialog_manager.h" + +#include "android_webview/browser/aw_contents_client_bridge_base.h" +#include "content/public/browser/javascript_dialog_manager.h" +#include "content/public/browser/web_contents.h" + +namespace android_webview { + +AwJavaScriptDialogManager::AwJavaScriptDialogManager() {} + +AwJavaScriptDialogManager::~AwJavaScriptDialogManager() {} + +void AwJavaScriptDialogManager::RunJavaScriptDialog( + content::WebContents* web_contents, + const GURL& origin_url, + const std::string& accept_lang, + content::JavaScriptMessageType message_type, + const string16& message_text, + const string16& default_prompt_text, + const DialogClosedCallback& callback, + bool* did_suppress_message) { + AwContentsClientBridgeBase* bridge = + AwContentsClientBridgeBase::FromWebContents(web_contents); + bridge->RunJavaScriptDialog(message_type, + origin_url, + message_text, + default_prompt_text, + callback); +} + +void AwJavaScriptDialogManager::RunBeforeUnloadDialog( + content::WebContents* web_contents, + const string16& message_text, + bool is_reload, + const DialogClosedCallback& callback) { + AwContentsClientBridgeBase* bridge = + AwContentsClientBridgeBase::FromWebContents(web_contents); + bridge->RunBeforeUnloadDialog(web_contents->GetURL(), + message_text, + callback); +} + +void AwJavaScriptDialogManager::ResetJavaScriptState( + content::WebContents* web_contents) { +} + +} // namespace android_webview diff --git a/android_webview/browser/aw_javascript_dialog_manager.h b/android_webview/browser/aw_javascript_dialog_manager.h new file mode 100644 index 0000000..69436dd --- /dev/null +++ b/android_webview/browser/aw_javascript_dialog_manager.h @@ -0,0 +1,41 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ANDROID_WEBVIEW_BROWSER_AW_JAVASCRIPT_DIALOG_MANAGER_H_ +#define ANDROID_WEBVIEW_BROWSER_AW_JAVASCRIPT_DIALOG_MANAGER_H_ + +#include "content/public/browser/javascript_dialog_manager.h" + +namespace android_webview { + +class AwJavaScriptDialogManager : public content::JavaScriptDialogManager { + public: + explicit AwJavaScriptDialogManager(); + virtual ~AwJavaScriptDialogManager(); + + // Overridden from content::JavaScriptDialogManager: + virtual void RunJavaScriptDialog( + content::WebContents* web_contents, + const GURL& origin_url, + const std::string& accept_lang, + content::JavaScriptMessageType message_type, + const string16& message_text, + const string16& default_prompt_text, + const DialogClosedCallback& callback, + bool* did_suppress_message) OVERRIDE; + virtual void RunBeforeUnloadDialog( + content::WebContents* web_contents, + const string16& message_text, + bool is_reload, + const DialogClosedCallback& callback) OVERRIDE; + virtual void ResetJavaScriptState( + content::WebContents* web_contents) OVERRIDE; + + private: + DISALLOW_COPY_AND_ASSIGN(AwJavaScriptDialogManager); +}; + +} // namespace android_webview + +#endif // ANDROID_WEBVIEW_BROWSER_AW_JAVASCRIPT_DIALOG_MANAGER_H_ |