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 |