summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-13 18:21:11 +0000
committerkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-13 18:21:11 +0000
commitf5f13f5cd6638bd73769942e6c6c873d89d6357b (patch)
tree2782d3d27baf0cf1a276d38980b7d30ea6da21cc /chrome
parentf53a8bc489e8fb61cc4f090c268d9b07b3fd662b (diff)
downloadchromium_src-f5f13f5cd6638bd73769942e6c6c873d89d6357b.zip
chromium_src-f5f13f5cd6638bd73769942e6c6c873d89d6357b.tar.gz
chromium_src-f5f13f5cd6638bd73769942e6c6c873d89d6357b.tar.bz2
Shorten the generated file name to be less than MAX_PATH (on Windows).
BUG=24591 Review URL: http://codereview.chromium.org/267063 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28845 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/views/tab_contents/tab_contents_view_win.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/chrome/browser/views/tab_contents/tab_contents_view_win.cc b/chrome/browser/views/tab_contents/tab_contents_view_win.cc
index ba61d9b..227425f 100644
--- a/chrome/browser/views/tab_contents/tab_contents_view_win.cc
+++ b/chrome/browser/views/tab_contents/tab_contents_view_win.cc
@@ -138,8 +138,10 @@ void TabContentsViewWin::StartDragging(const WebDropData& drop_data,
file_name = file_name.BaseName().RemoveExtension();
if (file_name.value().empty()) {
// Retrieve the name from the URL.
- file_name = FilePath::FromWStringHack(
- net::GetSuggestedFilename(drop_data.url, "", "", L""));
+ std::wstring fn = net::GetSuggestedFilename(drop_data.url, "", "", L"");
+ if ((fn.size() + drop_data.file_extension.size() + 1) > MAX_PATH)
+ fn = fn.substr(0, MAX_PATH - drop_data.file_extension.size() - 2);
+ file_name = FilePath::FromWStringHack(fn);
}
file_name = file_name.ReplaceExtension(drop_data.file_extension);
data.SetFileContents(file_name.value(), drop_data.file_contents);