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

Unified Diff: components/app_modal_dialogs/javascript_dialog_manager_impl.cc

Issue 735473002: Rename app_modal_dialogs dir to app_modal (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: rebase Created 6 years, 1 month 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_impl.cc
diff --git a/components/app_modal_dialogs/javascript_dialog_manager_impl.cc b/components/app_modal_dialogs/javascript_dialog_manager_impl.cc
deleted file mode 100644
index ea7e95fd91d7f990c1bd6094e5b114953adf10de..0000000000000000000000000000000000000000
--- a/components/app_modal_dialogs/javascript_dialog_manager_impl.cc
+++ /dev/null
@@ -1,233 +0,0 @@
-// 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 "components/app_modal_dialogs/javascript_dialog_manager_impl.h"
-
-#include "base/bind.h"
-#include "base/compiler_specific.h"
-#include "base/i18n/rtl.h"
-#include "base/strings/utf_string_conversions.h"
-#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_dialog_extensions_client.h"
-#include "components/app_modal_dialogs/javascript_native_dialog_factory.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"
-#include "content/public/common/javascript_message_type.h"
-#include "grit/components_strings.h"
-#include "net/base/net_util.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace {
-
-class DefaultExtensionsClient : public JavaScriptDialogExtensionsClient {
- public:
- DefaultExtensionsClient() {}
- ~DefaultExtensionsClient() override {}
-
- private:
- // JavaScriptDialogExtensionsClient:
- void OnDialogOpened(content::WebContents* web_contents) override {}
- void OnDialogClosed(content::WebContents* web_contents) override {}
- bool GetExtensionName(content::WebContents* web_contents,
- const GURL& origin_url,
- std::string* name_out) override {
- return false;
- }
-
- DISALLOW_COPY_AND_ASSIGN(DefaultExtensionsClient);
-};
-
-} // namespace
-
-////////////////////////////////////////////////////////////////////////////////
-// JavaScriptDialogManagerImpl, public:
-
-// static
-JavaScriptDialogManagerImpl* JavaScriptDialogManagerImpl::GetInstance() {
- return Singleton<JavaScriptDialogManagerImpl>::get();
-}
-
-void JavaScriptDialogManagerImpl::RunJavaScriptDialog(
- content::WebContents* web_contents,
- const GURL& origin_url,
- const std::string& accept_lang,
- content::JavaScriptMessageType message_type,
- const base::string16& message_text,
- const base::string16& default_prompt_text,
- const DialogClosedCallback& callback,
- bool* did_suppress_message) {
- *did_suppress_message = false;
-
- ChromeJavaScriptDialogExtraData* extra_data =
- &javascript_dialog_extra_data_[web_contents];
-
- if (extra_data->suppress_javascript_messages_) {
- *did_suppress_message = true;
- return;
- }
-
- base::TimeDelta time_since_last_message = base::TimeTicks::Now() -
- extra_data->last_javascript_message_dismissal_;
- bool display_suppress_checkbox = false;
- // If a WebContents is impolite and displays a second JavaScript
- // alert within kJavaScriptMessageExpectedDelay of a previous
- // JavaScript alert being dismissed, show a checkbox offering to
- // suppress future alerts from this WebContents.
- const int kJavaScriptMessageExpectedDelay = 1000;
-
- if (time_since_last_message <
- base::TimeDelta::FromMilliseconds(kJavaScriptMessageExpectedDelay)) {
- display_suppress_checkbox = true;
- } else {
- display_suppress_checkbox = false;
- }
-
- bool is_alert = message_type == content::JAVASCRIPT_MESSAGE_TYPE_ALERT;
- base::string16 dialog_title =
- GetTitle(web_contents, origin_url, accept_lang, is_alert);
-
- extensions_client_->OnDialogOpened(web_contents);
-
- AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
- web_contents,
- &javascript_dialog_extra_data_,
- dialog_title,
- message_type,
- message_text,
- default_prompt_text,
- display_suppress_checkbox,
- false, // is_before_unload_dialog
- false, // is_reload
- base::Bind(&JavaScriptDialogManagerImpl::OnDialogClosed,
- base::Unretained(this), web_contents, callback)));
-}
-
-void JavaScriptDialogManagerImpl::RunBeforeUnloadDialog(
- content::WebContents* web_contents,
- const base::string16& message_text,
- bool is_reload,
- const DialogClosedCallback& callback) {
- const base::string16 title = l10n_util::GetStringUTF16(is_reload ?
- IDS_BEFORERELOAD_MESSAGEBOX_TITLE : IDS_BEFOREUNLOAD_MESSAGEBOX_TITLE);
- const base::string16 footer = l10n_util::GetStringUTF16(is_reload ?
- IDS_BEFORERELOAD_MESSAGEBOX_FOOTER : IDS_BEFOREUNLOAD_MESSAGEBOX_FOOTER);
-
- base::string16 full_message =
- message_text + base::ASCIIToUTF16("\n\n") + footer;
-
- extensions_client_->OnDialogOpened(web_contents);
-
- AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
- web_contents,
- &javascript_dialog_extra_data_,
- title,
- content::JAVASCRIPT_MESSAGE_TYPE_CONFIRM,
- full_message,
- base::string16(), // default_prompt_text
- false, // display_suppress_checkbox
- true, // is_before_unload_dialog
- is_reload,
- base::Bind(&JavaScriptDialogManagerImpl::OnDialogClosed,
- base::Unretained(this), web_contents, callback)));
-}
-
-bool JavaScriptDialogManagerImpl::HandleJavaScriptDialog(
- content::WebContents* web_contents,
- bool accept,
- const base::string16* prompt_override) {
- AppModalDialogQueue* dialog_queue = AppModalDialogQueue::GetInstance();
- if (!dialog_queue->HasActiveDialog() ||
- !dialog_queue->active_dialog()->IsJavaScriptModalDialog() ||
- dialog_queue->active_dialog()->web_contents() != web_contents) {
- return false;
- }
- JavaScriptAppModalDialog* dialog = static_cast<JavaScriptAppModalDialog*>(
- dialog_queue->active_dialog());
- if (accept) {
- if (prompt_override)
- dialog->SetOverridePromptText(*prompt_override);
- dialog->native_dialog()->AcceptAppModalDialog();
- } else {
- dialog->native_dialog()->CancelAppModalDialog();
- }
- return true;
-}
-
-void JavaScriptDialogManagerImpl::WebContentsDestroyed(
- content::WebContents* web_contents) {
- CancelActiveAndPendingDialogs(web_contents);
- javascript_dialog_extra_data_.erase(web_contents);
-}
-
-void JavaScriptDialogManagerImpl::SetNativeDialogFactory(
- scoped_ptr<JavaScriptNativeDialogFactory> factory) {
- native_dialog_factory_ = factory.Pass();
-}
-
-void JavaScriptDialogManagerImpl::SetExtensionsClient(
- scoped_ptr<JavaScriptDialogExtensionsClient> extensions_client) {
- extensions_client_ = extensions_client.Pass();
-}
-
-JavaScriptDialogManagerImpl::JavaScriptDialogManagerImpl()
- : extensions_client_(new DefaultExtensionsClient) {
-}
-
-JavaScriptDialogManagerImpl::~JavaScriptDialogManagerImpl() {
-}
-
-base::string16 JavaScriptDialogManagerImpl::GetTitle(
- content::WebContents* web_contents,
- const GURL& origin_url,
- const std::string& accept_lang,
- bool is_alert) {
- // If the URL hasn't any host, return the default string.
- if (!origin_url.has_host()) {
- return l10n_util::GetStringUTF16(
- is_alert ? IDS_JAVASCRIPT_ALERT_DEFAULT_TITLE
- : IDS_JAVASCRIPT_MESSAGEBOX_DEFAULT_TITLE);
- }
-
- // For extensions, show the extension name, but only if the origin of
- // the alert matches the top-level WebContents.
- std::string name;
- if (extensions_client_->GetExtensionName(web_contents, origin_url, &name))
- return base::UTF8ToUTF16(name);
-
- // Otherwise, return the formatted URL.
- // In this case, force URL to have LTR directionality.
- base::string16 url_string = net::FormatUrl(origin_url, accept_lang);
- return l10n_util::GetStringFUTF16(
- is_alert ? IDS_JAVASCRIPT_ALERT_TITLE
- : IDS_JAVASCRIPT_MESSAGEBOX_TITLE,
- base::i18n::GetDisplayStringInLTRDirectionality(url_string));
-}
-
-void JavaScriptDialogManagerImpl::CancelActiveAndPendingDialogs(
- content::WebContents* web_contents) {
- AppModalDialogQueue* queue = AppModalDialogQueue::GetInstance();
- AppModalDialog* active_dialog = queue->active_dialog();
- if (active_dialog && active_dialog->web_contents() == web_contents)
- active_dialog->Invalidate();
- for (AppModalDialogQueue::iterator i = queue->begin();
- i != queue->end(); ++i) {
- if ((*i)->web_contents() == web_contents)
- (*i)->Invalidate();
- }
-}
-
-void JavaScriptDialogManagerImpl::OnDialogClosed(
- content::WebContents* web_contents,
- DialogClosedCallback callback,
- bool success,
- const base::string16& user_input) {
- // 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.)
- extensions_client_->OnDialogClosed(web_contents);
-
- callback.Run(success, user_input);
-}

Powered by Google App Engine
This is Rietveld 408576698