diff options
author | kuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-13 18:21:11 +0000 |
---|---|---|
committer | kuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-13 18:21:11 +0000 |
commit | f5f13f5cd6638bd73769942e6c6c873d89d6357b (patch) | |
tree | 2782d3d27baf0cf1a276d38980b7d30ea6da21cc /chrome | |
parent | f53a8bc489e8fb61cc4f090c268d9b07b3fd662b (diff) | |
download | chromium_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.cc | 6 |
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); |