| Index: components/app_modal_dialogs/javascript_app_modal_dialog.cc
 | 
| diff --git a/components/app_modal_dialogs/javascript_app_modal_dialog.cc b/components/app_modal_dialogs/javascript_app_modal_dialog.cc
 | 
| deleted file mode 100644
 | 
| index bf7157a58df3a31043b20eada4fac3b1d1e8d9b6..0000000000000000000000000000000000000000
 | 
| --- a/components/app_modal_dialogs/javascript_app_modal_dialog.cc
 | 
| +++ /dev/null
 | 
| @@ -1,176 +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_app_modal_dialog.h"
 | 
| -
 | 
| -#include "components/app_modal_dialogs/javascript_dialog_manager_impl.h"
 | 
| -#include "components/app_modal_dialogs/javascript_native_dialog_factory.h"
 | 
| -#include "content/public/browser/web_contents.h"
 | 
| -#include "ui/gfx/text_elider.h"
 | 
| -
 | 
| -#if defined(USE_AURA)
 | 
| -#include "ui/aura/window.h"
 | 
| -#include "ui/aura/window_event_dispatcher.h"
 | 
| -#endif
 | 
| -
 | 
| -using content::JavaScriptDialogManager;
 | 
| -using content::WebContents;
 | 
| -
 | 
| -namespace {
 | 
| -
 | 
| -// Control maximum sizes of various texts passed to us from javascript.
 | 
| -#if defined(OS_POSIX) && !defined(OS_MACOSX)
 | 
| -// Two-dimensional eliding.  Reformat the text of the message dialog
 | 
| -// inserting line breaks because otherwise a single long line can overflow
 | 
| -// the message dialog (and crash/hang the GTK, depending on the version).
 | 
| -const int kMessageTextMaxRows = 32;
 | 
| -const int kMessageTextMaxCols = 132;
 | 
| -const int kDefaultPromptMaxRows = 24;
 | 
| -const int kDefaultPromptMaxCols = 132;
 | 
| -void EnforceMaxTextSize(const base::string16& in_string,
 | 
| -                        base::string16* out_string) {
 | 
| -  gfx::ElideRectangleString(in_string, kMessageTextMaxRows,
 | 
| -                           kMessageTextMaxCols, false, out_string);
 | 
| -}
 | 
| -void EnforceMaxPromptSize(const base::string16& in_string,
 | 
| -                          base::string16* out_string) {
 | 
| -  gfx::ElideRectangleString(in_string, kDefaultPromptMaxRows,
 | 
| -                           kDefaultPromptMaxCols, false, out_string);
 | 
| -}
 | 
| -#else
 | 
| -// One-dimensional eliding.  Trust the window system to break the string
 | 
| -// appropriately, but limit its overall length to something reasonable.
 | 
| -const int kMessageTextMaxSize = 3000;
 | 
| -const int kDefaultPromptMaxSize = 2000;
 | 
| -void EnforceMaxTextSize(const base::string16& in_string,
 | 
| -                        base::string16* out_string) {
 | 
| -  gfx::ElideString(in_string, kMessageTextMaxSize, out_string);
 | 
| -}
 | 
| -void EnforceMaxPromptSize(const base::string16& in_string,
 | 
| -                          base::string16* out_string) {
 | 
| -  gfx::ElideString(in_string, kDefaultPromptMaxSize, out_string);
 | 
| -}
 | 
| -#endif
 | 
| -
 | 
| -}  // namespace
 | 
| -
 | 
| -ChromeJavaScriptDialogExtraData::ChromeJavaScriptDialogExtraData()
 | 
| -    : suppress_javascript_messages_(false) {
 | 
| -}
 | 
| -
 | 
| -JavaScriptAppModalDialog::JavaScriptAppModalDialog(
 | 
| -    WebContents* web_contents,
 | 
| -    ExtraDataMap* extra_data_map,
 | 
| -    const base::string16& title,
 | 
| -    content::JavaScriptMessageType javascript_message_type,
 | 
| -    const base::string16& message_text,
 | 
| -    const base::string16& default_prompt_text,
 | 
| -    bool display_suppress_checkbox,
 | 
| -    bool is_before_unload_dialog,
 | 
| -    bool is_reload,
 | 
| -    const JavaScriptDialogManager::DialogClosedCallback& callback)
 | 
| -    : AppModalDialog(web_contents, title),
 | 
| -      extra_data_map_(extra_data_map),
 | 
| -      javascript_message_type_(javascript_message_type),
 | 
| -      display_suppress_checkbox_(display_suppress_checkbox),
 | 
| -      is_before_unload_dialog_(is_before_unload_dialog),
 | 
| -      is_reload_(is_reload),
 | 
| -      callback_(callback),
 | 
| -      use_override_prompt_text_(false) {
 | 
| -  EnforceMaxTextSize(message_text, &message_text_);
 | 
| -  EnforceMaxPromptSize(default_prompt_text, &default_prompt_text_);
 | 
| -}
 | 
| -
 | 
| -JavaScriptAppModalDialog::~JavaScriptAppModalDialog() {
 | 
| -}
 | 
| -
 | 
| -NativeAppModalDialog* JavaScriptAppModalDialog::CreateNativeDialog() {
 | 
| -  gfx::NativeWindow parent_window = web_contents()->GetTopLevelNativeWindow();
 | 
| -
 | 
| -#if defined(USE_AURA)
 | 
| -  if (!parent_window->GetRootWindow()) {
 | 
| -    // When we are part of a WebContents that isn't actually being displayed on
 | 
| -    // the screen, we can't actually attach to it.
 | 
| -    parent_window = NULL;
 | 
| -  }
 | 
| -#endif  // defined(USE_AURA)
 | 
| -  return JavaScriptDialogManagerImpl::GetInstance()->native_dialog_factory()->
 | 
| -      CreateNativeJavaScriptDialog(this, parent_window);
 | 
| -}
 | 
| -
 | 
| -bool JavaScriptAppModalDialog::IsJavaScriptModalDialog() {
 | 
| -  return true;
 | 
| -}
 | 
| -
 | 
| -void JavaScriptAppModalDialog::Invalidate() {
 | 
| -  if (!IsValid())
 | 
| -    return;
 | 
| -
 | 
| -  AppModalDialog::Invalidate();
 | 
| -  if (!callback_.is_null()) {
 | 
| -    callback_.Run(false, base::string16());
 | 
| -    callback_.Reset();
 | 
| -  }
 | 
| -  if (native_dialog())
 | 
| -    CloseModalDialog();
 | 
| -}
 | 
| -
 | 
| -void JavaScriptAppModalDialog::OnCancel(bool suppress_js_messages) {
 | 
| -  // We need to do this before WM_DESTROY (WindowClosing()) as any parent frame
 | 
| -  // will receive its activation messages before this dialog receives
 | 
| -  // WM_DESTROY. The parent frame would then try to activate any modal dialogs
 | 
| -  // that were still open in the ModalDialogQueue, which would send activation
 | 
| -  // back to this one. The framework should be improved to handle this, so this
 | 
| -  // is a temporary workaround.
 | 
| -  CompleteDialog();
 | 
| -
 | 
| -  NotifyDelegate(false, base::string16(), suppress_js_messages);
 | 
| -}
 | 
| -
 | 
| -void JavaScriptAppModalDialog::OnAccept(const base::string16& prompt_text,
 | 
| -                                        bool suppress_js_messages) {
 | 
| -  base::string16 prompt_text_to_use = prompt_text;
 | 
| -  // This is only for testing.
 | 
| -  if (use_override_prompt_text_)
 | 
| -    prompt_text_to_use = override_prompt_text_;
 | 
| -
 | 
| -  CompleteDialog();
 | 
| -  NotifyDelegate(true, prompt_text_to_use, suppress_js_messages);
 | 
| -}
 | 
| -
 | 
| -void JavaScriptAppModalDialog::OnClose() {
 | 
| -  NotifyDelegate(false, base::string16(), false);
 | 
| -}
 | 
| -
 | 
| -void JavaScriptAppModalDialog::SetOverridePromptText(
 | 
| -    const base::string16& override_prompt_text) {
 | 
| -  override_prompt_text_ = override_prompt_text;
 | 
| -  use_override_prompt_text_ = true;
 | 
| -}
 | 
| -
 | 
| -void JavaScriptAppModalDialog::NotifyDelegate(bool success,
 | 
| -                                              const base::string16& user_input,
 | 
| -                                              bool suppress_js_messages) {
 | 
| -  if (!IsValid())
 | 
| -    return;
 | 
| -
 | 
| -  if (!callback_.is_null()) {
 | 
| -    callback_.Run(success, user_input);
 | 
| -    callback_.Reset();
 | 
| -  }
 | 
| -
 | 
| -  // The callback_ above may delete web_contents_, thus removing the extra
 | 
| -  // data from the map owned by ChromeJavaScriptDialogManager. Make sure
 | 
| -  // to only use the data if still present. http://crbug.com/236476
 | 
| -  ExtraDataMap::iterator extra_data = extra_data_map_->find(web_contents());
 | 
| -  if (extra_data != extra_data_map_->end()) {
 | 
| -    extra_data->second.last_javascript_message_dismissal_ =
 | 
| -        base::TimeTicks::Now();
 | 
| -    extra_data->second.suppress_javascript_messages_ = suppress_js_messages;
 | 
| -  }
 | 
| -
 | 
| -  // On Views, we can end up coming through this code path twice :(.
 | 
| -  // See crbug.com/63732.
 | 
| -  AppModalDialog::Invalidate();
 | 
| -}
 | 
| 
 |