diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-29 20:51:43 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-29 20:51:43 +0000 |
commit | bac799a4c7c9f5cb6e72ae574b2bf795fba5a0b1 (patch) | |
tree | ce7ac6146c0fee63b70785fb6513dddb65d56d53 /chrome/browser | |
parent | 22fddc9101cd9de5eb5a800d8e4750e496408f73 (diff) | |
download | chromium_src-bac799a4c7c9f5cb6e72ae574b2bf795fba5a0b1.zip chromium_src-bac799a4c7c9f5cb6e72ae574b2bf795fba5a0b1.tar.gz chromium_src-bac799a4c7c9f5cb6e72ae574b2bf795fba5a0b1.tar.bz2 |
linux: clip max tooltip length
BUG=30487
TEST=see bug for test case
Review URL: http://codereview.chromium.org/519019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35345 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host_view_gtk.cc | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc index f143b1d..7bdc026 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc +++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc @@ -19,6 +19,7 @@ #include <string> #include "app/gfx/gtk_util.h" +#include "app/l10n_util.h" #include "base/logging.h" #include "base/message_loop.h" #include "base/string_util.h" @@ -564,10 +565,20 @@ void RenderWidgetHostViewGtk::Destroy() { } void RenderWidgetHostViewGtk::SetTooltipText(const std::wstring& tooltip_text) { - if (tooltip_text.empty()) { + // Maximum number of characters we allow in a tooltip. + const int kMaxTooltipLength = 8 << 10; + // Clamp the tooltip length to kMaxTooltipLength so that we don't + // accidentally DOS the user with a mega tooltip (since GTK doesn't do + // this itself). + // I filed https://bugzilla.gnome.org/show_bug.cgi?id=604641 upstream. + const std::wstring& clamped_tooltip = + l10n_util::TruncateString(tooltip_text, kMaxTooltipLength); + + if (clamped_tooltip.empty()) { gtk_widget_set_has_tooltip(view_.get(), FALSE); } else { - gtk_widget_set_tooltip_text(view_.get(), WideToUTF8(tooltip_text).c_str()); + gtk_widget_set_tooltip_text(view_.get(), + WideToUTF8(clamped_tooltip).c_str()); } } |