Chromium Code Reviews| Index: components/app_modal/javascript_dialog_manager.cc |
| diff --git a/components/app_modal/javascript_dialog_manager.cc b/components/app_modal/javascript_dialog_manager.cc |
| index 7c4db07af63ab2e967dcdb9e2dbb2dd659e6a4d5..97d9582b6ac09a8d5f766727cab6f77d631df0ff 100644 |
| --- a/components/app_modal/javascript_dialog_manager.cc |
| +++ b/components/app_modal/javascript_dialog_manager.cc |
| @@ -24,6 +24,7 @@ |
| #include "net/base/net_util.h" |
| #include "ui/base/l10n/l10n_util.h" |
| #include "ui/gfx/font_list.h" |
| +#include "ui/gfx/text_elider.h" |
| namespace app_modal { |
| namespace { |
| @@ -57,6 +58,12 @@ bool ShouldDisplaySuppressCheckbox( |
| return extra_data->has_already_shown_a_dialog_; |
| } |
| +// JavaScript dialogs are heavily used for scams; reduce their power by removing |
| +// their ability to show long messages. |
| +base::string16 TruncateMessage(const base::string16& message) { |
| + return gfx::TruncateString(message, 100, gfx::CHARACTER_BREAK); |
|
Peter Kasting
2016/02/19 02:18:34
Please use an eliding method rather than a truncat
Avi (use Gerrit)
2016/02/19 02:24:42
This was a bad implementation; doing it in a new w
|
| +} |
| + |
| } // namespace |
| //////////////////////////////////////////////////////////////////////////////// |
| @@ -153,7 +160,7 @@ void JavaScriptDialogManager::RunJavaScriptDialog( |
| &javascript_dialog_extra_data_, |
| dialog_title, |
| message_type, |
| - message_text, |
| + TruncateMessage(message_text), |
| default_prompt_text, |
| ShouldDisplaySuppressCheckbox(extra_data), |
| false, // is_before_unload_dialog |
| @@ -184,8 +191,8 @@ void JavaScriptDialogManager::RunBeforeUnloadDialog( |
| 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; |
| + base::string16 message = |
| + TruncateMessage(message_text) + base::ASCIIToUTF16("\n\n") + footer; |
| extensions_client_->OnDialogOpened(web_contents); |
| @@ -194,7 +201,7 @@ void JavaScriptDialogManager::RunBeforeUnloadDialog( |
| &javascript_dialog_extra_data_, |
| title, |
| content::JAVASCRIPT_MESSAGE_TYPE_CONFIRM, |
| - full_message, |
| + message, |
| base::string16(), // default_prompt_text |
| ShouldDisplaySuppressCheckbox(extra_data), |
| true, // is_before_unload_dialog |