summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-30 17:11:03 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-30 17:11:03 +0000
commit385e93180e0c9498df0c3996ad4e9b709d087fe6 (patch)
tree72d927007f0901107abd14e5774643f7fa516b4a
parente2dc04b87f64b51cffe00560017b6bcee55c5fad (diff)
downloadchromium_src-385e93180e0c9498df0c3996ad4e9b709d087fe6.zip
chromium_src-385e93180e0c9498df0c3996ad4e9b709d087fe6.tar.gz
chromium_src-385e93180e0c9498df0c3996ad4e9b709d087fe6.tar.bz2
Move the DownloadManager and DownloadFile unittests to content so they can live beside the code they're testing.
-moved some of the logic about renaming intermediate files into content as the tests depended on them -made the DownloadManagerDelegate interface have empty default implementations. Darin convinced me that it's better to have delegate interfaces in the API have emptry interfaces, for tests and to make life easier for embedders. -removed the DownloadItemModel checks; these really were duplicating the DownloadItem::GetState call -removed the MockDownloadManagerDelegate class since it wasn't being used anymore -removed DownloadManagerDelegate::OnResponseCompleted since it wasn't called anymore BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9224006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119683 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/DEPS1
-rw-r--r--chrome/browser/download/chrome_download_manager_delegate.cc32
-rw-r--r--chrome/browser/download/chrome_download_manager_delegate.h4
-rw-r--r--chrome/chrome_tests.gypi2
-rw-r--r--content/browser/download/download_file_manager_unittest.cc1
-rw-r--r--content/browser/download/download_file_unittest.cc1
-rw-r--r--content/browser/download/download_id_unittest.cc1
-rw-r--r--content/browser/download/download_item_impl_unittest.cc (renamed from chrome/browser/download/download_item_unittest.cc)1
-rw-r--r--content/browser/download/download_manager_impl.cc24
-rw-r--r--content/browser/download/download_manager_impl_unittest.cc (renamed from chrome/browser/download/download_manager_unittest.cc)187
-rw-r--r--content/browser/download/mock_download_manager_delegate.cc11
-rw-r--r--content/browser/download/mock_download_manager_delegate.h65
-rw-r--r--content/content_browser.gypi1
-rw-r--r--content/content_tests.gypi4
-rw-r--r--content/public/browser/download_manager_delegate.cc46
-rw-r--r--content/public/browser/download_manager_delegate.h53
-rw-r--r--content/shell/shell_download_manager_delegate.cc73
-rw-r--r--content/shell/shell_download_manager_delegate.h28
18 files changed, 184 insertions, 351 deletions
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
index 782262b..6155ac4 100644
--- a/chrome/browser/DEPS
+++ b/chrome/browser/DEPS
@@ -44,7 +44,6 @@ include_rules = [
"+content/browser/download/download_create_info.h",
"+content/browser/download/download_file_impl.h",
"+content/browser/download/download_file_manager.h",
- "+content/browser/download/download_item_impl.h",
"+content/browser/download/download_persistent_store_info.h",
"+content/browser/download/download_request_handle.h",
"+content/browser/download/download_state_info.h",
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
index 73856ba..b353035 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -144,31 +144,9 @@ void ChromeDownloadManagerDelegate::ChooseDownloadPath(
download_manager_, web_contents, suggested_path, data);
}
-bool ChromeDownloadManagerDelegate::OverrideIntermediatePath(
- DownloadItem* item,
- FilePath* intermediate_path) {
- if (item->GetDangerType() != content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS) {
- if (item->PromptUserForSaveLocation()) {
- // When we prompt the user, we overwrite the FullPath with what the user
- // wanted to use. Construct a file path using the previously determined
- // intermediate filename and the new path.
- // TODO(asanka): This can trample an in-progress download in the new
- // target directory if it was using the same intermediate name.
- FilePath file_name = item->GetSuggestedPath().BaseName();
- *intermediate_path = item->GetFullPath().DirName().Append(file_name);
- return true;
- } else {
- // The download's name is already set to an intermediate name, so no need
- // to override.
- return false;
- }
- }
-
- // The download is a safe download. We need to rename it to its intermediate
- // '.crdownload' path. The final name after user confirmation will be set
- // from DownloadItem::OnDownloadCompleting.
- *intermediate_path = download_util::GetCrDownloadPath(item->GetFullPath());
- return true;
+FilePath ChromeDownloadManagerDelegate::GetIntermediatePath(
+ const FilePath& suggested_path) {
+ return download_util::GetCrDownloadPath(suggested_path);
}
WebContents* ChromeDownloadManagerDelegate::
@@ -254,10 +232,6 @@ bool ChromeDownloadManagerDelegate::GenerateFileHash() {
#endif
}
-void ChromeDownloadManagerDelegate::OnResponseCompleted(DownloadItem* item) {
- // TODO(noelutz): remove this method from the delegate API.
-}
-
void ChromeDownloadManagerDelegate::AddItemToPersistentStore(
DownloadItem* item) {
download_history_->AddEntry(item,
diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
index d0464763..6d7c6ea 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.h
+++ b/chrome/browser/download/chrome_download_manager_delegate.h
@@ -59,15 +59,13 @@ class ChromeDownloadManagerDelegate
virtual void ChooseDownloadPath(content::WebContents* web_contents,
const FilePath& suggested_path,
void* data) OVERRIDE;
- virtual bool OverrideIntermediatePath(content::DownloadItem* item,
- FilePath* intermediate_path) OVERRIDE;
+ virtual FilePath GetIntermediatePath(const FilePath& suggested_path) OVERRIDE;
virtual content::WebContents*
GetAlternativeWebContentsToNotifyForDownload() OVERRIDE;
virtual bool ShouldOpenFileBasedOnExtension(const FilePath& path) OVERRIDE;
virtual bool ShouldCompleteDownload(content::DownloadItem* item) OVERRIDE;
virtual bool ShouldOpenDownload(content::DownloadItem* item) OVERRIDE;
virtual bool GenerateFileHash() OVERRIDE;
- virtual void OnResponseCompleted(content::DownloadItem* item) OVERRIDE;
virtual void AddItemToPersistentStore(content::DownloadItem* item) OVERRIDE;
virtual void UpdateItemInPersistentStore(
content::DownloadItem* item) OVERRIDE;
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 756e9ea..1549df0 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -1395,8 +1395,6 @@
'browser/cookies_tree_model_unittest.cc',
'browser/custom_handlers/protocol_handler_registry_unittest.cc',
'browser/diagnostics/diagnostics_model_unittest.cc',
- 'browser/download/download_item_unittest.cc',
- 'browser/download/download_manager_unittest.cc',
'browser/download/download_request_infobar_delegate_unittest.cc',
'browser/download/download_request_limiter_unittest.cc',
'browser/download/download_shelf_unittest.cc',
diff --git a/content/browser/download/download_file_manager_unittest.cc b/content/browser/download/download_file_manager_unittest.cc
index de710f2..d3cc760 100644
--- a/content/browser/download/download_file_manager_unittest.cc
+++ b/content/browser/download/download_file_manager_unittest.cc
@@ -15,7 +15,6 @@
#include "content/browser/download/download_status_updater.h"
#include "content/browser/download/mock_download_file.h"
#include "content/browser/download/mock_download_manager.h"
-#include "content/browser/download/mock_download_manager_delegate.h"
#include "content/public/browser/download_id.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
diff --git a/content/browser/download/download_file_unittest.cc b/content/browser/download/download_file_unittest.cc
index 9ca77c5..a00207e 100644
--- a/content/browser/download/download_file_unittest.cc
+++ b/content/browser/download/download_file_unittest.cc
@@ -11,7 +11,6 @@
#include "content/browser/download/download_request_handle.h"
#include "content/browser/download/download_status_updater.h"
#include "content/browser/download/mock_download_manager.h"
-#include "content/browser/download/mock_download_manager_delegate.h"
#include "content/public/browser/download_manager.h"
#include "net/base/file_stream.h"
#include "net/base/net_errors.h"
diff --git a/content/browser/download/download_id_unittest.cc b/content/browser/download/download_id_unittest.cc
index 5a80a39..c3c8ea1 100644
--- a/content/browser/download/download_id_unittest.cc
+++ b/content/browser/download/download_id_unittest.cc
@@ -12,7 +12,6 @@
#include "base/memory/scoped_ptr.h"
#include "content/browser/browser_thread_impl.h"
#include "content/browser/download/mock_download_manager.h"
-#include "content/browser/download/mock_download_manager_delegate.h"
#include "testing/gtest/include/gtest/gtest.h"
using content::BrowserThread;
diff --git a/chrome/browser/download/download_item_unittest.cc b/content/browser/download/download_item_impl_unittest.cc
index dcafc04..acfd82c 100644
--- a/chrome/browser/download/download_item_unittest.cc
+++ b/content/browser/download/download_item_impl_unittest.cc
@@ -5,7 +5,6 @@
#include "base/message_loop.h"
#include "base/stl_util.h"
#include "base/threading/thread.h"
-#include "chrome/test/base/testing_profile.h"
#include "content/browser/download/download_create_info.h"
#include "content/browser/download/download_item_impl.h"
#include "content/browser/download/download_request_handle.h"
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc
index d34310d8..65f60c9 100644
--- a/content/browser/download/download_manager_impl.cc
+++ b/content/browser/download/download_manager_impl.cc
@@ -462,8 +462,27 @@ void DownloadManagerImpl::ContinueDownloadWithPath(
// Rename to intermediate name.
FilePath download_path;
- if (!delegate_->OverrideIntermediatePath(download, &download_path))
- download_path = download->GetFullPath();
+ if (download->GetDangerType() !=
+ content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS) {
+ if (download->PromptUserForSaveLocation()) {
+ // When we prompt the user, we overwrite the FullPath with what the user
+ // wanted to use. Construct a file path using the previously determined
+ // intermediate filename and the new path.
+ // TODO(asanka): This can trample an in-progress download in the new
+ // target directory if it was using the same intermediate name.
+ FilePath file_name = download->GetSuggestedPath().BaseName();
+ download_path = download->GetFullPath().DirName().Append(file_name);
+ } else {
+ // The download's name is already set to an intermediate name, so no need
+ // to override.
+ download_path = download->GetFullPath();
+ }
+ } else {
+ // The download is a safe download. We need to rename it to its
+ // intermediate path. The final name after user confirmation will be set
+ // from DownloadItem::OnDownloadCompleting.
+ download_path = delegate_->GetIntermediatePath(download->GetFullPath());
+ }
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
@@ -507,7 +526,6 @@ void DownloadManagerImpl::OnResponseCompleted(int32 download_id,
DownloadItem* download = active_downloads_[download_id];
download->OnAllDataSaved(size, hash);
- delegate_->OnResponseCompleted(download);
download->MaybeCompleteDownload();
}
diff --git a/chrome/browser/download/download_manager_unittest.cc b/content/browser/download/download_manager_impl_unittest.cc
index 59723fe..44bb537f 100644
--- a/chrome/browser/download/download_manager_unittest.cc
+++ b/content/browser/download/download_manager_impl_unittest.cc
@@ -7,8 +7,6 @@
#include "base/bind.h"
#include "base/file_util.h"
-#include "base/i18n/number_formatting.h"
-#include "base/i18n/rtl.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop.h"
#include "base/scoped_temp_dir.h"
@@ -17,32 +15,25 @@
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
#include "build/build_config.h"
-#include "chrome/browser/download/chrome_download_manager_delegate.h"
-#include "chrome/browser/download/download_item_model.h"
-#include "chrome/browser/download/download_prefs.h"
-#include "chrome/browser/download/download_util.h"
-#include "chrome/browser/prefs/pref_service.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/testing_profile.h"
#include "content/browser/download/download_buffer.h"
#include "content/browser/download/download_create_info.h"
#include "content/browser/download/download_file_impl.h"
#include "content/browser/download/download_file_manager.h"
+#include "content/browser/download/download_manager_impl.h"
#include "content/browser/download/download_request_handle.h"
#include "content/browser/download/download_status_updater.h"
#include "content/browser/download/interrupt_reasons.h"
#include "content/browser/download/mock_download_file.h"
#include "content/browser/download/mock_download_manager.h"
#include "content/public/browser/download_item.h"
-#include "content/public/browser/download_manager.h"
+#include "content/public/browser/download_manager_delegate.h"
+#include "content/test/test_browser_context.h"
#include "content/test/test_browser_thread.h"
-#include "grit/generated_resources.h"
#include "net/base/io_buffer.h"
+#include "net/base/net_util.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gmock_mutant.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/text/bytes_formatting.h"
#if defined(USE_AURA) && defined(OS_WIN)
// http://crbug.com/105200
@@ -63,17 +54,23 @@
#define MAYBE_DownloadFileErrorTest DownloadFileErrorTest
#endif
+using content::BrowserContext;
using content::BrowserThread;
using content::DownloadFile;
using content::DownloadId;
using content::DownloadItem;
using content::DownloadManager;
+using content::WebContents;
using ::testing::ReturnRef;
using ::testing::Return;
-using content::WebContents;
namespace {
+FilePath GetTempDownloadPath(const FilePath& suggested_path) {
+ return DownloadFile::AppendSuffixToPath(
+ suggested_path, FILE_PATH_LITERAL(".temp"));
+}
+
class MockDownloadFileFactory
: public DownloadFileManager::DownloadFileFactory {
public:
@@ -96,11 +93,40 @@ DownloadFile* MockDownloadFileFactory::CreateFile(
DownloadId::Domain kValidIdDomain = "valid DownloadId::Domain";
-class TestDownloadManagerDelegate : public ChromeDownloadManagerDelegate {
+class TestDownloadManagerDelegate : public content::DownloadManagerDelegate {
public:
- explicit TestDownloadManagerDelegate(Profile* profile)
- : ChromeDownloadManagerDelegate(profile),
- mark_content_dangerous_(false) {
+ TestDownloadManagerDelegate()
+ : mark_content_dangerous_(false),
+ prompt_user_for_save_location_(false),
+ download_manager_(NULL) {
+ }
+
+ void set_download_manager(content::DownloadManager* dm) {
+ download_manager_ = dm;
+ }
+
+ void set_prompt_user_for_save_location(bool value) {
+ prompt_user_for_save_location_ = value;
+ }
+
+ virtual bool ShouldStartDownload(int32 download_id) OVERRIDE {
+ DownloadItem* item = download_manager_->GetActiveDownloadItem(download_id);
+ DownloadStateInfo state = item->GetStateInfo();
+ FilePath path = net::GenerateFileName(item->GetURL(),
+ item->GetContentDisposition(),
+ item->GetReferrerCharset(),
+ item->GetSuggestedFilename(),
+ item->GetMimeType(),
+ std::string());
+ if (!ShouldOpenFileBasedOnExtension(path) && prompt_user_for_save_location_)
+ state.prompt_user_for_save_location = true;
+ item->SetFileCheckResults(state);
+ return true;
+ }
+
+ virtual FilePath GetIntermediatePath(
+ const FilePath& suggested_path) OVERRIDE {
+ return GetTempDownloadPath(suggested_path);
}
virtual void ChooseDownloadPath(WebContents* web_contents,
@@ -114,13 +140,13 @@ class TestDownloadManagerDelegate : public ChromeDownloadManagerDelegate {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(&DownloadManager::FileSelectionCanceled,
- download_manager_.get(),
+ download_manager_,
base::Unretained(data)));
} else {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(&DownloadManager::FileSelected,
- download_manager_.get(),
+ download_manager_,
file_selection_response_,
base::Unretained(data)));
}
@@ -128,6 +154,15 @@ class TestDownloadManagerDelegate : public ChromeDownloadManagerDelegate {
file_selection_response_.clear();
}
+ virtual bool ShouldOpenFileBasedOnExtension(const FilePath& path) OVERRIDE {
+ return path.Extension() == FilePath::StringType(FILE_PATH_LITERAL(".pdf"));
+ }
+
+ virtual void AddItemToPersistentStore(DownloadItem* item) OVERRIDE {
+ static int64 db_handle = DownloadItem::kUninitializedHandle;
+ download_manager_->OnItemAddedToPersistentStore(item->GetId(), --db_handle);
+ }
+
void SetFileSelectionExpectation(const FilePath& suggested_path,
const FilePath& response) {
expected_suggested_path_ = suggested_path;
@@ -143,7 +178,7 @@ class TestDownloadManagerDelegate : public ChromeDownloadManagerDelegate {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(&TestDownloadManagerDelegate::MarkContentDangerous,
- this, item->GetId()));
+ base::Unretained(this), item->GetId()));
mark_content_dangerous_ = false;
return false;
} else {
@@ -163,6 +198,8 @@ class TestDownloadManagerDelegate : public ChromeDownloadManagerDelegate {
FilePath expected_suggested_path_;
FilePath file_selection_response_;
bool mark_content_dangerous_;
+ bool prompt_user_for_save_location_;
+ DownloadManager* download_manager_;
};
} // namespace
@@ -173,25 +210,24 @@ class DownloadManagerTest : public testing::Test {
static const size_t kTestDataLen;
DownloadManagerTest()
- : profile_(new TestingProfile()),
- download_manager_delegate_(new TestDownloadManagerDelegate(
- profile_.get())),
+ : browser_context(new TestBrowserContext()),
+ download_manager_delegate_(new TestDownloadManagerDelegate()),
download_manager_(DownloadManager::Create(
- download_manager_delegate_, &download_status_updater_)),
+ download_manager_delegate_.get(), &download_status_updater_)),
ui_thread_(BrowserThread::UI, &message_loop_),
file_thread_(BrowserThread::FILE, &message_loop_),
download_buffer_(new content::DownloadBuffer) {
- download_manager_->Init(profile_.get());
- download_manager_delegate_->SetDownloadManager(download_manager_);
+ download_manager_->Init(browser_context.get());
+ download_manager_delegate_->set_download_manager(download_manager_);
}
~DownloadManagerTest() {
download_manager_->Shutdown();
- // profile_ must outlive download_manager_, so we explicitly delete
+ // browser_context must outlive download_manager_, so we explicitly delete
// download_manager_ first.
download_manager_ = NULL;
- download_manager_delegate_ = NULL;
- profile_.reset(NULL);
+ download_manager_delegate_.reset();
+ browser_context.reset(NULL);
message_loop_.RunAllPending();
}
@@ -250,8 +286,8 @@ class DownloadManagerTest : public testing::Test {
protected:
DownloadStatusUpdater download_status_updater_;
- scoped_ptr<TestingProfile> profile_;
- scoped_refptr<TestDownloadManagerDelegate> download_manager_delegate_;
+ scoped_ptr<TestBrowserContext> browser_context;
+ scoped_ptr<TestDownloadManagerDelegate> download_manager_delegate_;
scoped_refptr<DownloadManager> download_manager_;
scoped_refptr<DownloadFileManager> file_manager_;
MessageLoopForUI message_loop_;
@@ -387,15 +423,15 @@ const struct {
int expected_rename_count;
} kDownloadRenameCases[] = {
// Safe download, download finishes BEFORE file name determined.
- // Renamed twice (linear path through UI). Crdownload file does not need
+ // Renamed twice (linear path through UI). temp file does not need
// to be deleted.
{ FILE_PATH_LITERAL("foo.zip"), content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
true, 2, },
// Potentially dangerous download (e.g., file is dangerous), download finishes
// BEFORE file name determined. Needs to be renamed only once.
- { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"),
+ { FILE_PATH_LITERAL("Unconfirmed xxx.temp"),
content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, true, 1, },
- { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"),
+ { FILE_PATH_LITERAL("Unconfirmed xxx.temp"),
content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, true, 1, },
// Safe download, download finishes AFTER file name determined.
// Needs to be renamed twice.
@@ -403,9 +439,9 @@ const struct {
false, 2, },
// Potentially dangerous download, download finishes AFTER file name
// determined. Needs to be renamed only once.
- { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"),
+ { FILE_PATH_LITERAL("Unconfirmed xxx.temp"),
content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, false, 1, },
- { FILE_PATH_LITERAL("Unconfirmed xxx.crdownload"),
+ { FILE_PATH_LITERAL("Unconfirmed xxx.temp"),
content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, false, 1, },
};
@@ -483,16 +519,9 @@ class ItemObserver : public DownloadItem::Observer {
TEST_F(DownloadManagerTest, MAYBE_StartDownload) {
content::TestBrowserThread io_thread(BrowserThread::IO, &message_loop_);
- PrefService* prefs = profile_->GetPrefs();
- prefs->SetFilePath(prefs::kDownloadDefaultDirectory, FilePath());
- DownloadPrefs* download_prefs =
- DownloadPrefs::FromDownloadManager(download_manager_);
- download_prefs->EnableAutoOpenBasedOnExtension(
- FilePath(FILE_PATH_LITERAL("example.pdf")));
-
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kStartDownloadCases); ++i) {
- prefs->SetBoolean(prefs::kPromptForDownload,
- kStartDownloadCases[i].prompt_for_download);
+ download_manager_delegate_->set_prompt_user_for_save_location(
+ kStartDownloadCases[i].prompt_for_download);
SelectFileObserver observer(download_manager_);
// Normally, the download system takes ownership of info, and is
@@ -571,7 +600,7 @@ const struct DownloadFilenameTestCase {
DONT_PROMPT,
content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
FILE_PATH_LITERAL(""),
- FILE_PATH_LITERAL("$dl/foo.txt.crdownload"),
+ FILE_PATH_LITERAL("$dl/foo.txt.temp"),
FILE_PATH_LITERAL("$dl/foo.txt"),
DONT_VALIDATE
},
@@ -582,7 +611,7 @@ const struct DownloadFilenameTestCase {
PROMPT,
content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
FILE_PATH_LITERAL("$dl/foo.txt"),
- FILE_PATH_LITERAL("$dl/foo.txt.crdownload"),
+ FILE_PATH_LITERAL("$dl/foo.txt.temp"),
FILE_PATH_LITERAL("$dl/foo.txt"),
DONT_VALIDATE
},
@@ -594,7 +623,7 @@ const struct DownloadFilenameTestCase {
PROMPT,
content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
FILE_PATH_LITERAL("$dl/foo.txt"),
- FILE_PATH_LITERAL("$dl/bar.txt.crdownload"),
+ FILE_PATH_LITERAL("$dl/bar.txt.temp"),
FILE_PATH_LITERAL("$dl/bar.txt"),
DONT_VALIDATE
},
@@ -606,7 +635,7 @@ const struct DownloadFilenameTestCase {
PROMPT,
content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
FILE_PATH_LITERAL("$dl/foo.txt"),
- FILE_PATH_LITERAL("$alt/bar.txt.crdownload"),
+ FILE_PATH_LITERAL("$alt/bar.txt.temp"),
FILE_PATH_LITERAL("$alt/bar.txt"),
DONT_VALIDATE
},
@@ -699,7 +728,7 @@ const struct DownloadFilenameTestCase {
DONT_PROMPT,
content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
FILE_PATH_LITERAL(""),
- FILE_PATH_LITERAL("$dl/exists.txt.crdownload"),
+ FILE_PATH_LITERAL("$dl/exists.txt.temp"),
FILE_PATH_LITERAL("$dl/exists.txt"),
DONT_VALIDATE
},
@@ -869,8 +898,8 @@ TEST_F(DownloadManagerTest, DownloadRenameTest) {
.WillOnce(Return(net::OK));
} else {
ASSERT_EQ(2, kDownloadRenameCases[i].expected_rename_count);
- FilePath crdownload(download_util::GetCrDownloadPath(new_path));
- EXPECT_CALL(*download_file, Rename(crdownload))
+ FilePath temp(GetTempDownloadPath(new_path));
+ EXPECT_CALL(*download_file, Rename(temp))
.Times(1)
.WillOnce(Return(net::OK));
EXPECT_CALL(*download_file, Rename(new_path))
@@ -917,7 +946,7 @@ TEST_F(DownloadManagerTest, DownloadInterruptTest) {
info->url_chain.push_back(GURL());
info->total_bytes = static_cast<int64>(kTestDataLen);
const FilePath new_path(FILE_PATH_LITERAL("foo.zip"));
- const FilePath cr_path(download_util::GetCrDownloadPath(new_path));
+ const FilePath cr_path(GetTempDownloadPath(new_path));
MockDownloadFile* download_file(new MockDownloadFile());
ON_CALL(*download_file, AppendDataToFile(_, _))
@@ -934,9 +963,6 @@ TEST_F(DownloadManagerTest, DownloadInterruptTest) {
DownloadItem* download = GetActiveDownloadItem(0);
ASSERT_TRUE(download != NULL);
- scoped_ptr<DownloadItemModel> download_item_model(
- new DownloadItemModel(download));
-
EXPECT_EQ(DownloadItem::IN_PROGRESS, download->GetState());
scoped_ptr<ItemObserver> observer(new ItemObserver(download));
@@ -961,15 +987,6 @@ TEST_F(DownloadManagerTest, DownloadInterruptTest) {
EXPECT_FALSE(observer->was_opened());
EXPECT_FALSE(download->GetFileExternallyRemoved());
EXPECT_EQ(DownloadItem::INTERRUPTED, download->GetState());
- ui::DataUnits amount_units = ui::GetByteDisplayUnits(kTestDataLen);
- string16 simple_size =
- ui::FormatBytesWithUnits(error_size, amount_units, false);
- string16 simple_total = base::i18n::GetDisplayStringInLTRDirectionality(
- ui::FormatBytesWithUnits(kTestDataLen, amount_units, true));
- EXPECT_EQ(download_item_model->GetStatusText(),
- l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_INTERRUPTED,
- simple_size,
- simple_total));
download->Cancel(true);
@@ -1022,9 +1039,6 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadFileErrorTest) {
DownloadItem* download = GetActiveDownloadItem(0);
ASSERT_TRUE(download != NULL);
- // This will keep track of what should be displayed on the shelf.
- scoped_ptr<DownloadItemModel> download_item_model(
- new DownloadItemModel(download));
EXPECT_EQ(DownloadItem::IN_PROGRESS, download->GetState());
scoped_ptr<ItemObserver> observer(new ItemObserver(download));
@@ -1056,19 +1070,6 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadFileErrorTest) {
EXPECT_FALSE(download->GetFileExternallyRemoved());
EXPECT_EQ(DownloadItem::INTERRUPTED, download->GetState());
- // Check the download shelf's information.
- size_t error_size = kTestDataLen * 3;
- size_t total_size = kTestDataLen * 3;
- ui::DataUnits amount_units = ui::GetByteDisplayUnits(kTestDataLen);
- string16 simple_size =
- ui::FormatBytesWithUnits(error_size, amount_units, false);
- string16 simple_total = base::i18n::GetDisplayStringInLTRDirectionality(
- ui::FormatBytesWithUnits(total_size, amount_units, true));
- EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_INTERRUPTED,
- simple_size,
- simple_total),
- download_item_model->GetStatusText());
-
// Clean up.
download->Cancel(true);
message_loop_.RunAllPending();
@@ -1089,7 +1090,7 @@ TEST_F(DownloadManagerTest, DownloadCancelTest) {
info->prompt_user_for_save_location = false;
info->url_chain.push_back(GURL());
const FilePath new_path(FILE_PATH_LITERAL("foo.zip"));
- const FilePath cr_path(download_util::GetCrDownloadPath(new_path));
+ const FilePath cr_path(GetTempDownloadPath(new_path));
MockDownloadFile* download_file(new MockDownloadFile());
ON_CALL(*download_file, AppendDataToFile(_, _))
@@ -1105,8 +1106,6 @@ TEST_F(DownloadManagerTest, DownloadCancelTest) {
DownloadItem* download = GetActiveDownloadItem(0);
ASSERT_TRUE(download != NULL);
- scoped_ptr<DownloadItemModel> download_item_model(
- new DownloadItemModel(download));
EXPECT_EQ(DownloadItem::IN_PROGRESS, download->GetState());
scoped_ptr<ItemObserver> observer(new ItemObserver(download));
@@ -1130,8 +1129,6 @@ TEST_F(DownloadManagerTest, DownloadCancelTest) {
EXPECT_FALSE(observer->was_opened());
EXPECT_FALSE(download->GetFileExternallyRemoved());
EXPECT_EQ(DownloadItem::CANCELLED, download->GetState());
- EXPECT_EQ(download_item_model->GetStatusText(),
- l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_CANCELED));
file_manager()->CancelDownload(id);
@@ -1151,7 +1148,7 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadOverwriteTest) {
// File names we're using.
const FilePath new_path(temp_dir_.path().AppendASCII("foo.txt"));
- const FilePath cr_path(download_util::GetCrDownloadPath(new_path));
+ const FilePath cr_path(GetTempDownloadPath(new_path));
EXPECT_FALSE(file_util::PathExists(new_path));
// Create the file that we will overwrite. Will be automatically cleaned
@@ -1179,8 +1176,6 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadOverwriteTest) {
DownloadItem* download = GetActiveDownloadItem(0);
ASSERT_TRUE(download != NULL);
- scoped_ptr<DownloadItemModel> download_item_model(
- new DownloadItemModel(download));
EXPECT_EQ(DownloadItem::IN_PROGRESS, download->GetState());
scoped_ptr<ItemObserver> observer(new ItemObserver(download));
@@ -1193,7 +1188,7 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadOverwriteTest) {
new DownloadFileImpl(info.get(), new DownloadRequestHandle(),
download_manager_, false));
download_file->Rename(cr_path);
- // This creates the .crdownload version of the file.
+ // This creates the .temp version of the file.
download_file->Initialize();
// |download_file| is owned by DownloadFileManager.
AddDownloadToFileManager(info->download_id.local(), download_file);
@@ -1219,7 +1214,6 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadOverwriteTest) {
EXPECT_FALSE(observer->was_opened());
EXPECT_FALSE(download->GetFileExternallyRemoved());
EXPECT_EQ(DownloadItem::COMPLETE, download->GetState());
- EXPECT_EQ(download_item_model->GetStatusText(), string16());
EXPECT_TRUE(file_util::PathExists(new_path));
EXPECT_FALSE(file_util::PathExists(cr_path));
@@ -1241,7 +1235,7 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadRemoveTest) {
// File names we're using.
const FilePath new_path(temp_dir_.path().AppendASCII("foo.txt"));
- const FilePath cr_path(download_util::GetCrDownloadPath(new_path));
+ const FilePath cr_path(GetTempDownloadPath(new_path));
EXPECT_FALSE(file_util::PathExists(new_path));
// Normally, the download system takes ownership of info, and is
@@ -1256,8 +1250,6 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadRemoveTest) {
DownloadItem* download = GetActiveDownloadItem(0);
ASSERT_TRUE(download != NULL);
- scoped_ptr<DownloadItemModel> download_item_model(
- new DownloadItemModel(download));
EXPECT_EQ(DownloadItem::IN_PROGRESS, download->GetState());
scoped_ptr<ItemObserver> observer(new ItemObserver(download));
@@ -1270,7 +1262,7 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadRemoveTest) {
new DownloadFileImpl(info.get(), new DownloadRequestHandle(),
download_manager_, false));
download_file->Rename(cr_path);
- // This creates the .crdownload version of the file.
+ // This creates the .temp version of the file.
download_file->Initialize();
// |download_file| is owned by DownloadFileManager.
AddDownloadToFileManager(info->download_id.local(), download_file);
@@ -1296,7 +1288,6 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadRemoveTest) {
EXPECT_FALSE(observer->was_opened());
EXPECT_FALSE(download->GetFileExternallyRemoved());
EXPECT_EQ(DownloadItem::COMPLETE, download->GetState());
- EXPECT_EQ(download_item_model->GetStatusText(), string16());
EXPECT_TRUE(file_util::PathExists(new_path));
EXPECT_FALSE(file_util::PathExists(cr_path));
@@ -1316,8 +1307,6 @@ TEST_F(DownloadManagerTest, MAYBE_DownloadRemoveTest) {
EXPECT_FALSE(observer->was_opened());
EXPECT_TRUE(download->GetFileExternallyRemoved());
EXPECT_EQ(DownloadItem::COMPLETE, download->GetState());
- EXPECT_EQ(download_item_model->GetStatusText(),
- l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED));
EXPECT_FALSE(file_util::PathExists(new_path));
}
diff --git a/content/browser/download/mock_download_manager_delegate.cc b/content/browser/download/mock_download_manager_delegate.cc
deleted file mode 100644
index 481f1ae..0000000
--- a/content/browser/download/mock_download_manager_delegate.cc
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/download/mock_download_manager_delegate.h"
-
-MockDownloadManagerDelegate::MockDownloadManagerDelegate() {
-}
-
-MockDownloadManagerDelegate::~MockDownloadManagerDelegate() {
-}
diff --git a/content/browser/download/mock_download_manager_delegate.h b/content/browser/download/mock_download_manager_delegate.h
deleted file mode 100644
index ff48765..0000000
--- a/content/browser/download/mock_download_manager_delegate.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_DELEGATE_H_
-#define CONTENT_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_DELEGATE_H_
-#pragma once
-
-#include "base/compiler_specific.h"
-#include "base/file_path.h"
-#include "content/browser/download/download_types.h"
-#include "content/public/browser/download_id.h"
-#include "content/public/browser/download_manager_delegate.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace content {
-class DownloadManager;
-}
-
-class MockDownloadManagerDelegate : public content::DownloadManagerDelegate {
- public:
- MockDownloadManagerDelegate();
- virtual ~MockDownloadManagerDelegate();
-
- // DownloadManagerDelegate functions:
- MOCK_METHOD1(SetDownloadManager, void(content::DownloadManager* dm));
- MOCK_METHOD0(Shutdown, void());
- MOCK_METHOD0(GetNextId, content::DownloadId());
- MOCK_METHOD1(ShouldStartDownload, bool(int32 download_id));
- MOCK_METHOD3(ChooseDownloadPath, void(content::WebContents* web_contents,
- const FilePath& suggested_path,
- void* data));
- MOCK_METHOD2(OverrideIntermediatePath, bool(content::DownloadItem* item,
- FilePath* intermediate_path));
- MOCK_METHOD0(GetAlternativeWebContentsToNotifyForDownload,
- content::WebContents*());
- MOCK_METHOD1(ShouldOpenFileBasedOnExtension, bool(const FilePath& path));
- MOCK_METHOD1(ShouldCompleteDownload, bool(content::DownloadItem* item));
- MOCK_METHOD1(ShouldOpenDownload, bool(content::DownloadItem* item));
- MOCK_METHOD0(GenerateFileHash, bool());
- MOCK_METHOD1(OnResponseCompleted, void(content::DownloadItem* item));
- MOCK_METHOD1(AddItemToPersistentStore, void(content::DownloadItem* item));
- MOCK_METHOD1(UpdateItemInPersistentStore, void(content::DownloadItem* item));
- MOCK_METHOD2(UpdatePathForItemInPersistentStore, void(
- content::DownloadItem* item,
- const FilePath& new_path));
- MOCK_METHOD1(RemoveItemFromPersistentStore,
- void(content::DownloadItem* item));
- MOCK_METHOD2(RemoveItemsFromPersistentStoreBetween, void(
- base::Time remove_begin,
- base::Time remove_end));
- MOCK_METHOD3(GetSaveDir, void(content::WebContents* web_contents,
- FilePath* website_save_dir,
- FilePath* download_save_dir));
- MOCK_METHOD5(ChooseSavePath, void(
- content::WebContents* web_contents,
- const FilePath& suggested_path,
- const FilePath::StringType& default_extension,
- bool can_save_as_complete,
- content::SaveFilePathPickedCallback callback));
- MOCK_METHOD0(DownloadProgressUpdated, void());
-};
-
-#endif // CONTENT_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_DELEGATE_H_
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index 623c7e9..c2d9bcf 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -55,6 +55,7 @@
'public/browser/download_manager.h',
'public/browser/download_query.cc',
'public/browser/download_query.h',
+ 'public/browser/download_manager_delegate.cc',
'public/browser/download_manager_delegate.h',
'public/browser/favicon_status.cc',
'public/browser/favicon_status.h',
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index f75d1a4..e525382 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -38,8 +38,6 @@
'browser/download/mock_download_manager.h',
'browser/download/mock_download_item.cc',
'browser/download/mock_download_item.h',
- 'browser/download/mock_download_manager_delegate.cc',
- 'browser/download/mock_download_manager_delegate.h',
'browser/geolocation/arbitrator_dependency_factories_for_test.cc',
'browser/geolocation/arbitrator_dependency_factories_for_test.h',
'browser/geolocation/fake_access_token_store.cc',
@@ -203,6 +201,8 @@
'browser/download/download_file_manager_unittest.cc',
'browser/download/download_file_unittest.cc',
'browser/download/download_id_unittest.cc',
+ 'browser/download/download_item_impl_unittest.cc',
+ 'browser/download/download_manager_impl_unittest.cc',
'browser/download/download_query_unittest.cc',
'browser/download/download_status_updater_unittest.cc',
'browser/download/save_package_unittest.cc',
diff --git a/content/public/browser/download_manager_delegate.cc b/content/public/browser/download_manager_delegate.cc
new file mode 100644
index 0000000..6abc0ad
--- /dev/null
+++ b/content/public/browser/download_manager_delegate.cc
@@ -0,0 +1,46 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/public/browser/download_manager_delegate.h"
+
+#include "content/public/browser/download_id.h"
+
+namespace content {
+
+DownloadId DownloadManagerDelegate::GetNextId() {
+ return DownloadId::Invalid();
+}
+
+bool DownloadManagerDelegate::ShouldStartDownload(int32 download_id) {
+ return true;
+}
+
+FilePath DownloadManagerDelegate::GetIntermediatePath(
+ const FilePath& suggested_path) {
+ return suggested_path;
+}
+
+WebContents* DownloadManagerDelegate::
+ GetAlternativeWebContentsToNotifyForDownload() {
+ return NULL;
+}
+
+bool DownloadManagerDelegate::ShouldOpenFileBasedOnExtension(
+ const FilePath& path) {
+ return false;
+}
+
+bool DownloadManagerDelegate::ShouldCompleteDownload(DownloadItem* item) {
+ return true;
+}
+
+bool DownloadManagerDelegate::ShouldOpenDownload(DownloadItem* item) {
+ return true;
+}
+
+bool DownloadManagerDelegate::GenerateFileHash() {
+ return false;
+}
+
+} // namespace content
diff --git a/content/public/browser/download_manager_delegate.h b/content/public/browser/download_manager_delegate.h
index 4776ef0..bf02083a 100644
--- a/content/public/browser/download_manager_delegate.h
+++ b/content/public/browser/download_manager_delegate.h
@@ -10,6 +10,7 @@
#include "base/callback.h"
#include "base/file_path.h"
#include "base/time.h"
+#include "content/common/content_export.h"
#include "content/public/browser/save_page_type.h"
namespace content {
@@ -22,41 +23,39 @@ typedef base::Callback<void(const FilePath&, content::SavePageType)>
SaveFilePathPickedCallback;
// Browser's download manager: manages all downloads and destination view.
-class DownloadManagerDelegate {
+class CONTENT_EXPORT DownloadManagerDelegate {
public:
virtual ~DownloadManagerDelegate() {}
// Lets the delegate know that the download manager is shutting down.
- virtual void Shutdown() = 0;
+ virtual void Shutdown() {}
// Returns a new DownloadId.
- virtual DownloadId GetNextId() = 0;
+ virtual DownloadId GetNextId();
// Notifies the delegate that a download is starting. The delegate can return
// false to delay the start of the download, in which case it should call
// DownloadManager::RestartDownload when it's ready.
- virtual bool ShouldStartDownload(int32 download_id) = 0;
+ virtual bool ShouldStartDownload(int32 download_id);
// Asks the user for the path for a download. The delegate calls
// DownloadManager::FileSelected or DownloadManager::FileSelectionCanceled to
// give the answer.
virtual void ChooseDownloadPath(WebContents* web_contents,
const FilePath& suggested_path,
- void* data) = 0;
+ void* data) {}
- // Allows the embedder to override the file path for the download while it's
- // progress. Return false to leave the filename as item->full_path(), or
- // return true and set |intermediate_path| with the intermediate path.
- virtual bool OverrideIntermediatePath(DownloadItem* item,
- FilePath* intermediate_path) = 0;
+ // Allows the embedder to set an intermediate name for the download until it's
+ // complete. If the embedder doesn't want this return the suggested path.
+ virtual FilePath GetIntermediatePath(const FilePath& suggested_path);
// Called when the download system wants to alert a WebContents that a
// download has started, but the TabConetnts has gone away. This lets an
// delegate return an alternative WebContents. The delegate can return NULL.
- virtual WebContents* GetAlternativeWebContentsToNotifyForDownload() = 0;
+ virtual WebContents* GetAlternativeWebContentsToNotifyForDownload();
// Tests if a file type should be opened automatically.
- virtual bool ShouldOpenFileBasedOnExtension(const FilePath& path) = 0;
+ virtual bool ShouldOpenFileBasedOnExtension(const FilePath& path);
// Allows the delegate to override completion of the download. If this
// function returns false, the download completion is delayed and the
@@ -65,52 +64,49 @@ class DownloadManagerDelegate {
// future. Note that at that point this function will be called again,
// and is responsible for returning true when it really is ok for the
// download to complete.
- virtual bool ShouldCompleteDownload(DownloadItem* item) = 0;
+ virtual bool ShouldCompleteDownload(DownloadItem* item);
// Allows the delegate to override opening the download. If this function
// returns false, the delegate needs to call
// DownloadItem::DelayedDownloadOpened when it's done with the item,
// and is responsible for opening it. This function is called
// after the final rename, but before the download state is set to COMPLETED.
- virtual bool ShouldOpenDownload(DownloadItem* item) = 0;
+ virtual bool ShouldOpenDownload(DownloadItem* item);
// Returns true if we need to generate a binary hash for downloads.
- virtual bool GenerateFileHash() = 0;
-
- // Informs the delegate that given download has finishd downloading.
- virtual void OnResponseCompleted(DownloadItem* item) = 0;
+ virtual bool GenerateFileHash();
// Notifies the delegate that a new download item is created. The
// DownloadManager waits for the delegate to add information about this
// download to its persistent store. When the delegate is done, it calls
// DownloadManager::OnDownloadItemAddedToPersistentStore.
- virtual void AddItemToPersistentStore(DownloadItem* item) = 0;
+ virtual void AddItemToPersistentStore(DownloadItem* item) {}
// Notifies the delegate that information about the given download has change,
// so that it can update its persistent store.
// Does not update |url|, |start_time|, |total_bytes|; uses |db_handle| only
// to select the row in the database table to update.
- virtual void UpdateItemInPersistentStore(DownloadItem* item) = 0;
+ virtual void UpdateItemInPersistentStore(DownloadItem* item) {}
// Notifies the delegate that path for the download item has changed, so that
// it can update its persistent store.
virtual void UpdatePathForItemInPersistentStore(
DownloadItem* item,
- const FilePath& new_path) = 0;
+ const FilePath& new_path) {}
// Notifies the delegate that it should remove the download item from its
// persistent store.
- virtual void RemoveItemFromPersistentStore(DownloadItem* item) = 0;
+ virtual void RemoveItemFromPersistentStore(DownloadItem* item) {}
// Notifies the delegate to remove downloads from the given time range.
virtual void RemoveItemsFromPersistentStoreBetween(
base::Time remove_begin,
- base::Time remove_end) = 0;
+ base::Time remove_end) {}
// Retrieve the directories to save html pages and downloads to.
virtual void GetSaveDir(WebContents* web_contents,
FilePath* website_save_dir,
- FilePath* download_save_dir) = 0;
+ FilePath* download_save_dir) {}
// Asks the user for the path to save a page. The delegate calls the callback
// to give the answer.
@@ -118,15 +114,10 @@ class DownloadManagerDelegate {
const FilePath& suggested_path,
const FilePath::StringType& default_extension,
bool can_save_as_complete,
- SaveFilePathPickedCallback callback) = 0;
+ SaveFilePathPickedCallback callback) {}
// Informs the delegate that the progress of downloads has changed.
- virtual void DownloadProgressUpdated() = 0;
-
- protected:
- DownloadManagerDelegate() {}
-
- DISALLOW_COPY_AND_ASSIGN(DownloadManagerDelegate);
+ virtual void DownloadProgressUpdated() {}
};
} // namespace content
diff --git a/content/shell/shell_download_manager_delegate.cc b/content/shell/shell_download_manager_delegate.cc
index 7856a66..9d386b3 100644
--- a/content/shell/shell_download_manager_delegate.cc
+++ b/content/shell/shell_download_manager_delegate.cc
@@ -36,9 +36,6 @@ void ShellDownloadManagerDelegate::SetDownloadManager(
download_manager_ = download_manager;
}
-void ShellDownloadManagerDelegate::Shutdown() {
-}
-
DownloadId ShellDownloadManagerDelegate::GetNextId() {
static int next_id;
return DownloadId(this, ++next_id);
@@ -141,74 +138,4 @@ void ShellDownloadManagerDelegate::ChooseDownloadPath(
}
}
-bool ShellDownloadManagerDelegate::OverrideIntermediatePath(
- DownloadItem* item,
- FilePath* intermediate_path) {
- return false;
-}
-
-WebContents* ShellDownloadManagerDelegate::
- GetAlternativeWebContentsToNotifyForDownload() {
- return NULL;
-}
-
-bool ShellDownloadManagerDelegate::ShouldOpenFileBasedOnExtension(
- const FilePath& path) {
- return false;
-}
-
-bool ShellDownloadManagerDelegate::ShouldCompleteDownload(DownloadItem* item) {
- return true;
-}
-
-bool ShellDownloadManagerDelegate::ShouldOpenDownload(DownloadItem* item) {
- return true;
-}
-
-bool ShellDownloadManagerDelegate::GenerateFileHash() {
- return false;
-}
-
-void ShellDownloadManagerDelegate::OnResponseCompleted(DownloadItem* item) {
-}
-
-void ShellDownloadManagerDelegate::AddItemToPersistentStore(
- DownloadItem* item) {
-}
-
-void ShellDownloadManagerDelegate::UpdateItemInPersistentStore(
- DownloadItem* item) {
-}
-
-void ShellDownloadManagerDelegate::UpdatePathForItemInPersistentStore(
- DownloadItem* item,
- const FilePath& new_path) {
-}
-
-void ShellDownloadManagerDelegate::RemoveItemFromPersistentStore(
- DownloadItem* item) {
-}
-
-void ShellDownloadManagerDelegate::RemoveItemsFromPersistentStoreBetween(
- base::Time remove_begin,
- base::Time remove_end) {
-}
-
-void ShellDownloadManagerDelegate::GetSaveDir(
- WebContents* web_contents,
- FilePath* website_save_dir,
- FilePath* download_save_dir) {
-}
-
-void ShellDownloadManagerDelegate::ChooseSavePath(
- WebContents* web_contents,
- const FilePath& suggested_path,
- const FilePath::StringType& default_extension,
- bool can_save_as_complete,
- SaveFilePathPickedCallback callback) {
-}
-
-void ShellDownloadManagerDelegate::DownloadProgressUpdated() {
-}
-
} // namespace content
diff --git a/content/shell/shell_download_manager_delegate.h b/content/shell/shell_download_manager_delegate.h
index 9cb5e97..56afdf6 100644
--- a/content/shell/shell_download_manager_delegate.h
+++ b/content/shell/shell_download_manager_delegate.h
@@ -24,39 +24,11 @@ class ShellDownloadManagerDelegate
void SetDownloadManager(DownloadManager* manager);
- virtual void Shutdown() OVERRIDE;
virtual DownloadId GetNextId() OVERRIDE;
virtual bool ShouldStartDownload(int32 download_id) OVERRIDE;
virtual void ChooseDownloadPath(WebContents* web_contents,
const FilePath& suggested_path,
void* data) OVERRIDE;
- virtual bool OverrideIntermediatePath(DownloadItem* item,
- FilePath* intermediate_path) OVERRIDE;
- virtual WebContents* GetAlternativeWebContentsToNotifyForDownload() OVERRIDE;
- virtual bool ShouldOpenFileBasedOnExtension(const FilePath& path) OVERRIDE;
- virtual bool ShouldCompleteDownload(DownloadItem* item) OVERRIDE;
- virtual bool ShouldOpenDownload(DownloadItem* item) OVERRIDE;
- virtual bool GenerateFileHash() OVERRIDE;
- virtual void OnResponseCompleted(DownloadItem* item) OVERRIDE;
- virtual void AddItemToPersistentStore(DownloadItem* item) OVERRIDE;
- virtual void UpdateItemInPersistentStore(DownloadItem* item) OVERRIDE;
- virtual void UpdatePathForItemInPersistentStore(
- DownloadItem* item,
- const FilePath& new_path) OVERRIDE;
- virtual void RemoveItemFromPersistentStore(DownloadItem* item) OVERRIDE;
- virtual void RemoveItemsFromPersistentStoreBetween(
- base::Time remove_begin,
- base::Time remove_end) OVERRIDE;
- virtual void GetSaveDir(WebContents* web_contents,
- FilePath* website_save_dir,
- FilePath* download_save_dir) OVERRIDE;
- virtual void ChooseSavePath(
- content::WebContents* web_contents,
- const FilePath& suggested_path,
- const FilePath::StringType& default_extension,
- bool can_save_as_complete,
- content::SaveFilePathPickedCallback callback) OVERRIDE;
- virtual void DownloadProgressUpdated() OVERRIDE;
private:
friend class base::RefCountedThreadSafe<ShellDownloadManagerDelegate>;