summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-29 20:51:43 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-29 20:51:43 +0000
commitbac799a4c7c9f5cb6e72ae574b2bf795fba5a0b1 (patch)
treece7ac6146c0fee63b70785fb6513dddb65d56d53 /chrome/browser
parent22fddc9101cd9de5eb5a800d8e4750e496408f73 (diff)
downloadchromium_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.cc15
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());
}
}