summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/external_protocol_dialog.mm
diff options
context:
space:
mode:
authorinferno@chromium.org <inferno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-29 22:09:37 +0000
committerinferno@chromium.org <inferno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-29 22:09:37 +0000
commitbdb3992a2b76b27ad08293013ccfa0ca755770ba (patch)
tree50dcc844776e871f8f9e6fb98ae6540b92c2c00b /chrome/browser/cocoa/external_protocol_dialog.mm
parent49b446611965a9d1c17ad1338cdfcd272d1a6d55 (diff)
downloadchromium_src-bdb3992a2b76b27ad08293013ccfa0ca755770ba.zip
chromium_src-bdb3992a2b76b27ad08293013ccfa0ca755770ba.tar.gz
chromium_src-bdb3992a2b76b27ad08293013ccfa0ca755770ba.tar.bz2
Fix the GTK crash by eliding extra long url,command strings in external protocol launch message.
BUG=35168 TEST=None Review URL: http://codereview.chromium.org/1518003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43002 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/external_protocol_dialog.mm')
-rw-r--r--chrome/browser/cocoa/external_protocol_dialog.mm8
1 files changed, 7 insertions, 1 deletions
diff --git a/chrome/browser/cocoa/external_protocol_dialog.mm b/chrome/browser/cocoa/external_protocol_dialog.mm
index 6c346a4..c729cbf 100644
--- a/chrome/browser/cocoa/external_protocol_dialog.mm
+++ b/chrome/browser/cocoa/external_protocol_dialog.mm
@@ -6,6 +6,7 @@
#include "app/l10n_util_mac.h"
#include "base/message_loop.h"
+#include "base/string_util.h"
#include "base/sys_string_conversions.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/external_protocol_handler.h"
@@ -57,10 +58,15 @@ void ExternalProtocolHandler::RunExternalProtocolDialog(
l10n_util::GetNSStringWithFixup(
IDS_EXTERNAL_PROTOCOL_CANCEL_BUTTON_TEXT)];
+ const int kMaxUrlWithoutSchemeSize = 256;
+ std::wstring elided_url_without_scheme;
+ ElideString(ASCIIToWide(url_.possibly_invalid_spec()),
+ kMaxUrlWithoutSchemeSize, &elided_url_without_scheme);
+
NSString* urlString = l10n_util::GetNSStringFWithFixup(
IDS_EXTERNAL_PROTOCOL_INFORMATION,
ASCIIToUTF16(url_.scheme() + ":"),
- ASCIIToUTF16(url_.possibly_invalid_spec()));
+ WideToUTF16(elided_url_without_scheme));
NSString* appString = l10n_util::GetNSStringFWithFixup(
IDS_EXTERNAL_PROTOCOL_APPLICATION_TO_LAUNCH,
appName);