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

Unified Diff: components/app_modal/javascript_dialog_manager.cc

Issue 1711863004: Restrict JavaScript dialogs to 100 characters. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: palmer Created 4 years, 10 months 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698