Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(507)

Unified Diff: components/app_modal_dialogs/javascript_dialog_manager.cc

Issue 666533007: Move JavaScriptDialogManager, JavascriptAppModalDialogViews to components/app_modal_dialogs (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/app_modal_dialogs/javascript_dialog_manager.cc
diff --git a/chrome/browser/ui/app_modal_dialogs/javascript_dialog_manager.cc b/components/app_modal_dialogs/javascript_dialog_manager.cc
similarity index 68%
rename from chrome/browser/ui/app_modal_dialogs/javascript_dialog_manager.cc
rename to components/app_modal_dialogs/javascript_dialog_manager.cc
index 4b770cce29324d6e1820617d7def7ad3f401ea27..067ff261a2a0e26f4dc27b8d403e19a7de490770 100644
--- a/chrome/browser/ui/app_modal_dialogs/javascript_dialog_manager.cc
+++ b/components/app_modal_dialogs/javascript_dialog_manager.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/app_modal_dialogs/javascript_dialog_manager.h"
+#include "components/app_modal_dialogs/javascript_dialog_manager.h"
#include "base/bind.h"
#include "base/compiler_specific.h"
@@ -12,6 +12,7 @@
#include "components/app_modal_dialogs/app_modal_dialog.h"
#include "components/app_modal_dialogs/app_modal_dialog_queue.h"
#include "components/app_modal_dialogs/javascript_app_modal_dialog.h"
+#include "components/app_modal_dialogs/javascript_dialog_manager_client.h"
#include "components/app_modal_dialogs/native_app_modal_dialog.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_client.h"
@@ -20,70 +21,15 @@
#include "net/base/net_util.h"
#include "ui/base/l10n/l10n_util.h"
-#if defined(ENABLE_EXTENSIONS)
-#include "extensions/browser/process_manager.h"
-#include "extensions/common/extension.h"
-#endif // defined(ENABLE_EXTENSIONS)
-
using content::BrowserContext;
using content::JavaScriptDialogManager;
using content::WebContents;
-#if defined(ENABLE_EXTENSIONS)
-using extensions::Extension;
-#endif // defined(ENABLE_EXTENSIONS)
-
namespace {
-#if defined(ENABLE_EXTENSIONS)
-// Returns the ProcessManager for the browser context from |web_contents|.
-extensions::ProcessManager* GetExtensionsProcessManager(
- WebContents* web_contents) {
- return extensions::ProcessManager::Get(web_contents->GetBrowserContext());
-}
-
-// Returns the extension associated with |web_contents| or NULL if there is no
-// associated extension (or extensions are not supported).
-const Extension* GetExtensionForWebContents(WebContents* web_contents) {
- extensions::ProcessManager* pm = GetExtensionsProcessManager(web_contents);
- return pm->GetExtensionForRenderViewHost(web_contents->GetRenderViewHost());
-}
-#endif // defined(ENABLE_EXTENSIONS)
-
-// Keeps an |extension| from shutting down its lazy background page. If an
-// extension opens a dialog its lazy background page must stay alive until the
-// dialog closes.
-void IncrementLazyKeepaliveCount(WebContents* web_contents) {
-#if defined(ENABLE_EXTENSIONS)
- const Extension* extension = GetExtensionForWebContents(web_contents);
- if (extension == NULL)
- return;
-
- DCHECK(web_contents);
- extensions::ProcessManager* pm = GetExtensionsProcessManager(web_contents);
- if (pm)
- pm->IncrementLazyKeepaliveCount(extension);
-#endif // defined(ENABLE_EXTENSIONS)
-}
-
-// Allows an |extension| to shut down its lazy background page after a dialog
-// closes (if nothing else is keeping it open).
-void DecrementLazyKeepaliveCount(WebContents* web_contents) {
-#if defined(ENABLE_EXTENSIONS)
- const Extension* extension = GetExtensionForWebContents(web_contents);
- if (extension == NULL)
- return;
-
- DCHECK(web_contents);
- extensions::ProcessManager* pm = GetExtensionsProcessManager(web_contents);
- if (pm)
- pm->DecrementLazyKeepaliveCount(extension);
-#endif // defined(ENABLE_EXTENSIONS)
-}
-
-class ChromeJavaScriptDialogManager : public JavaScriptDialogManager {
+class JavaScriptDialogManagerImpl : public JavaScriptDialogManager {
public:
- static ChromeJavaScriptDialogManager* GetInstance();
+ static JavaScriptDialogManagerImpl* GetInstance();
void RunJavaScriptDialog(WebContents* web_contents,
const GURL& origin_url,
@@ -108,10 +54,10 @@ class ChromeJavaScriptDialogManager : public JavaScriptDialogManager {
void WebContentsDestroyed(WebContents* web_contents) override;
private:
- friend struct DefaultSingletonTraits<ChromeJavaScriptDialogManager>;
+ friend struct DefaultSingletonTraits<JavaScriptDialogManagerImpl>;
- ChromeJavaScriptDialogManager();
- ~ChromeJavaScriptDialogManager() override;
+ JavaScriptDialogManagerImpl();
+ ~JavaScriptDialogManagerImpl() override;
base::string16 GetTitle(WebContents* web_contents,
const GURL& origin_url,
@@ -129,24 +75,24 @@ class ChromeJavaScriptDialogManager : public JavaScriptDialogManager {
// is a void* because the pointer is just a cookie and is never dereferenced.
JavaScriptAppModalDialog::ExtraDataMap javascript_dialog_extra_data_;
- DISALLOW_COPY_AND_ASSIGN(ChromeJavaScriptDialogManager);
+ DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogManagerImpl);
};
////////////////////////////////////////////////////////////////////////////////
-// ChromeJavaScriptDialogManager, public:
+// JavaScriptDialogManagerImpl, public:
-ChromeJavaScriptDialogManager::ChromeJavaScriptDialogManager() {
+JavaScriptDialogManagerImpl::JavaScriptDialogManagerImpl() {
}
-ChromeJavaScriptDialogManager::~ChromeJavaScriptDialogManager() {
+JavaScriptDialogManagerImpl::~JavaScriptDialogManagerImpl() {
}
// static
-ChromeJavaScriptDialogManager* ChromeJavaScriptDialogManager::GetInstance() {
- return Singleton<ChromeJavaScriptDialogManager>::get();
+JavaScriptDialogManagerImpl* JavaScriptDialogManagerImpl::GetInstance() {
+ return Singleton<JavaScriptDialogManagerImpl>::get();
}
-void ChromeJavaScriptDialogManager::RunJavaScriptDialog(
+void JavaScriptDialogManagerImpl::RunJavaScriptDialog(
WebContents* web_contents,
const GURL& origin_url,
const std::string& accept_lang,
@@ -185,7 +131,7 @@ void ChromeJavaScriptDialogManager::RunJavaScriptDialog(
base::string16 dialog_title =
GetTitle(web_contents, origin_url, accept_lang, is_alert);
- IncrementLazyKeepaliveCount(web_contents);
+ GetJavaScriptDialogManagerClient()->IncrementLazyKeepaliveCount(web_contents);
AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
web_contents,
@@ -197,11 +143,11 @@ void ChromeJavaScriptDialogManager::RunJavaScriptDialog(
display_suppress_checkbox,
false, // is_before_unload_dialog
false, // is_reload
- base::Bind(&ChromeJavaScriptDialogManager::OnDialogClosed,
+ base::Bind(&JavaScriptDialogManagerImpl::OnDialogClosed,
base::Unretained(this), web_contents, callback)));
}
-void ChromeJavaScriptDialogManager::RunBeforeUnloadDialog(
+void JavaScriptDialogManagerImpl::RunBeforeUnloadDialog(
WebContents* web_contents,
const base::string16& message_text,
bool is_reload,
@@ -214,7 +160,7 @@ void ChromeJavaScriptDialogManager::RunBeforeUnloadDialog(
base::string16 full_message =
message_text + base::ASCIIToUTF16("\n\n") + footer;
- IncrementLazyKeepaliveCount(web_contents);
+ GetJavaScriptDialogManagerClient()->IncrementLazyKeepaliveCount(web_contents);
AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
web_contents,
@@ -226,11 +172,11 @@ void ChromeJavaScriptDialogManager::RunBeforeUnloadDialog(
false, // display_suppress_checkbox
true, // is_before_unload_dialog
is_reload,
- base::Bind(&ChromeJavaScriptDialogManager::OnDialogClosed,
+ base::Bind(&JavaScriptDialogManagerImpl::OnDialogClosed,
base::Unretained(this), web_contents, callback)));
}
-bool ChromeJavaScriptDialogManager::HandleJavaScriptDialog(
+bool JavaScriptDialogManagerImpl::HandleJavaScriptDialog(
WebContents* web_contents,
bool accept,
const base::string16* prompt_override) {
@@ -252,13 +198,13 @@ bool ChromeJavaScriptDialogManager::HandleJavaScriptDialog(
return true;
}
-void ChromeJavaScriptDialogManager::WebContentsDestroyed(
+void JavaScriptDialogManagerImpl::WebContentsDestroyed(
WebContents* web_contents) {
CancelActiveAndPendingDialogs(web_contents);
javascript_dialog_extra_data_.erase(web_contents);
}
-base::string16 ChromeJavaScriptDialogManager::GetTitle(
+base::string16 JavaScriptDialogManagerImpl::GetTitle(
WebContents* web_contents,
const GURL& origin_url,
const std::string& accept_lang,
@@ -272,13 +218,11 @@ base::string16 ChromeJavaScriptDialogManager::GetTitle(
// For extensions, show the extension name, but only if the origin of
// the alert matches the top-level WebContents.
-#if defined(ENABLE_EXTENSIONS)
- const Extension* extension = GetExtensionForWebContents(web_contents);
- if (extension &&
- web_contents->GetLastCommittedURL().GetOrigin() == origin_url) {
- return base::UTF8ToUTF16(extension->name());
+ std::string name;
+ if (GetJavaScriptDialogManagerClient()
+ ->GetExtensionName(web_contents, origin_url, &name)) {
+ return base::UTF8ToUTF16(name);
}
-#endif // defined(ENABLE_EXTENSIONS)
// Otherwise, return the formatted URL.
// In this case, force URL to have LTR directionality.
@@ -289,7 +233,7 @@ base::string16 ChromeJavaScriptDialogManager::GetTitle(
base::i18n::GetDisplayStringInLTRDirectionality(url_string));
}
-void ChromeJavaScriptDialogManager::CancelActiveAndPendingDialogs(
+void JavaScriptDialogManagerImpl::CancelActiveAndPendingDialogs(
WebContents* web_contents) {
AppModalDialogQueue* queue = AppModalDialogQueue::GetInstance();
AppModalDialog* active_dialog = queue->active_dialog();
@@ -302,7 +246,7 @@ void ChromeJavaScriptDialogManager::CancelActiveAndPendingDialogs(
}
}
-void ChromeJavaScriptDialogManager::OnDialogClosed(
+void JavaScriptDialogManagerImpl::OnDialogClosed(
WebContents* web_contents,
DialogClosedCallback callback,
bool success,
@@ -310,7 +254,7 @@ void ChromeJavaScriptDialogManager::OnDialogClosed(
// If an extension opened this dialog then the extension may shut down its
// lazy background page after the dialog closes. (Dialogs are closed before
// their WebContents is destroyed so |web_contents| is still valid here.)
- DecrementLazyKeepaliveCount(web_contents);
+ GetJavaScriptDialogManagerClient()->DecrementLazyKeepaliveCount(web_contents);
callback.Run(success, user_input);
}
@@ -318,5 +262,5 @@ void ChromeJavaScriptDialogManager::OnDialogClosed(
} // namespace
content::JavaScriptDialogManager* GetJavaScriptDialogManagerInstance() {
- return ChromeJavaScriptDialogManager::GetInstance();
+ return JavaScriptDialogManagerImpl::GetInstance();
}

Powered by Google App Engine
This is Rietveld 408576698