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

Side by Side Diff: chrome/browser/ui/app_modal_dialogs/js_modal_dialog.cc

Issue 5964007: Last part of change for bug 49747.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « app/text_elider_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h" 5 #include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h"
6 6
7 #include "app/text_elider.h" 7 #include "app/text_elider.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/browser_shutdown.h" 10 #include "chrome/browser/browser_shutdown.h"
10 #include "chrome/browser/extensions/extension_host.h" 11 #include "chrome/browser/extensions/extension_host.h"
11 #include "chrome/browser/tab_contents/tab_contents.h" 12 #include "chrome/browser/tab_contents/tab_contents.h"
12 #include "chrome/browser/ui/app_modal_dialogs/native_app_modal_dialog.h" 13 #include "chrome/browser/ui/app_modal_dialogs/native_app_modal_dialog.h"
13 #include "chrome/common/notification_service.h" 14 #include "chrome/common/notification_service.h"
14 #include "chrome/common/notification_type.h" 15 #include "chrome/common/notification_type.h"
15 #include "ipc/ipc_message.h" 16 #include "ipc/ipc_message.h"
16 17
17 namespace { 18 namespace {
18 19
19 // The maximum sizes of various texts passed to us from javascript. 20 // The maximum sizes of various texts passed to us from javascript.
20 const int kMessageTextMaxSize = 3000; 21 const int kMessageTextMaxRows = 32;
22 const int kMessageTextMaxCols = 132;
21 const int kDefaultPromptTextSize = 2000; 23 const int kDefaultPromptTextSize = 2000;
22 24
23 } // namespace 25 } // namespace
24 26
25 JavaScriptAppModalDialog::JavaScriptAppModalDialog( 27 JavaScriptAppModalDialog::JavaScriptAppModalDialog(
26 JavaScriptAppModalDialogDelegate* delegate, 28 JavaScriptAppModalDialogDelegate* delegate,
27 const std::wstring& title, 29 const std::wstring& title,
28 int dialog_flags, 30 int dialog_flags,
29 const std::wstring& message_text, 31 const std::wstring& message_text,
30 const std::wstring& default_prompt_text, 32 const std::wstring& default_prompt_text,
31 bool display_suppress_checkbox, 33 bool display_suppress_checkbox,
32 bool is_before_unload_dialog, 34 bool is_before_unload_dialog,
33 IPC::Message* reply_msg) 35 IPC::Message* reply_msg)
34 : AppModalDialog(delegate->AsTabContents(), title), 36 : AppModalDialog(delegate->AsTabContents(), title),
35 delegate_(delegate), 37 delegate_(delegate),
36 extension_host_(delegate->AsExtensionHost()), 38 extension_host_(delegate->AsExtensionHost()),
37 dialog_flags_(dialog_flags), 39 dialog_flags_(dialog_flags),
38 display_suppress_checkbox_(display_suppress_checkbox), 40 display_suppress_checkbox_(display_suppress_checkbox),
39 is_before_unload_dialog_(is_before_unload_dialog), 41 is_before_unload_dialog_(is_before_unload_dialog),
40 reply_msg_(reply_msg) { 42 reply_msg_(reply_msg) {
41 // We trim the various parts of the message dialog because otherwise we can 43 // We trim the various parts of the message dialog because otherwise we can
42 // overflow the message dialog (and crash/hang the GTK+ version). 44 // overflow the message dialog (and crash/hang the GTK+ version).
43 gfx::ElideString(message_text, kMessageTextMaxSize, &message_text_); 45 string16 elided_text;
46 gfx::ElideRectangleString(WideToUTF16(message_text),
47 kMessageTextMaxRows, kMessageTextMaxCols, &elided_text);
48 message_text_ = UTF16ToWide(elided_text);
44 gfx::ElideString(default_prompt_text, kDefaultPromptTextSize, 49 gfx::ElideString(default_prompt_text, kDefaultPromptTextSize,
45 &default_prompt_text_); 50 &default_prompt_text_);
46 51
47 DCHECK((tab_contents_ != NULL) != (extension_host_ != NULL)); 52 DCHECK((tab_contents_ != NULL) != (extension_host_ != NULL));
48 InitNotifications(); 53 InitNotifications();
49 } 54 }
50 55
51 JavaScriptAppModalDialog::~JavaScriptAppModalDialog() { 56 JavaScriptAppModalDialog::~JavaScriptAppModalDialog() {
52 } 57 }
53 58
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 return; 136 return;
132 137
133 delegate_->OnMessageBoxClosed(reply_msg_, success, prompt_text); 138 delegate_->OnMessageBoxClosed(reply_msg_, success, prompt_text);
134 if (suppress_js_messages) 139 if (suppress_js_messages)
135 delegate_->SetSuppressMessageBoxes(true); 140 delegate_->SetSuppressMessageBoxes(true);
136 141
137 // On Views, we can end up coming through this code path twice :(. 142 // On Views, we can end up coming through this code path twice :(.
138 // See crbug.com/63732. 143 // See crbug.com/63732.
139 skip_this_dialog_ = true; 144 skip_this_dialog_ = true;
140 } 145 }
OLDNEW
« no previous file with comments | « app/text_elider_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698