Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(606)

Side by Side Diff: chrome/browser/download/download_manager.cc

Issue 6312027: Add files saved using 'Save page as' to the download history.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/download/download_manager.h ('k') | chrome/browser/download/save_package.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/download/download_manager.h" 5 #include "chrome/browser/download/download_manager.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 int DownloadManager::RemoveAllDownloads() { 847 int DownloadManager::RemoveAllDownloads() {
848 if (this != profile_->GetOriginalProfile()->GetDownloadManager()) { 848 if (this != profile_->GetOriginalProfile()->GetDownloadManager()) {
849 // This is an incognito downloader. Clear All should clear main download 849 // This is an incognito downloader. Clear All should clear main download
850 // manager as well. 850 // manager as well.
851 profile_->GetOriginalProfile()->GetDownloadManager()->RemoveAllDownloads(); 851 profile_->GetOriginalProfile()->GetDownloadManager()->RemoveAllDownloads();
852 } 852 }
853 // The null times make the date range unbounded. 853 // The null times make the date range unbounded.
854 return RemoveDownloadsBetween(base::Time(), base::Time()); 854 return RemoveDownloadsBetween(base::Time(), base::Time());
855 } 855 }
856 856
857 void DownloadManager::AddDownloadItemToHistory(DownloadItem* item,
858 int64 db_handle) {
859 // It's not immediately obvious, but HistoryBackend::CreateDownload() can
860 // call this function with an invalid |db_handle|. For instance, this can
861 // happen when the history database is offline. We cannot have multiple
862 // DownloadItems with the same invalid db_handle, so we need to assign a
863 // unique |db_handle| here.
864 if (db_handle == DownloadHistory::kUninitializedHandle)
865 db_handle = download_history_->GetNextFakeDbHandle();
866
867 DCHECK(item->db_handle() == DownloadHistory::kUninitializedHandle);
868 item->set_db_handle(db_handle);
869 DCHECK(!ContainsKey(history_downloads_, db_handle));
870 history_downloads_[db_handle] = item;
871 }
872
857 void DownloadManager::SavePageAsDownloadStarted(DownloadItem* download_item) { 873 void DownloadManager::SavePageAsDownloadStarted(DownloadItem* download_item) {
858 #if !defined(NDEBUG) 874 #if !defined(NDEBUG)
859 save_page_as_downloads_.insert(download_item); 875 save_page_as_downloads_.insert(download_item);
860 #endif 876 #endif
861 downloads_.insert(download_item); 877 downloads_.insert(download_item);
862 } 878 }
863 879
864 // Initiate a download of a specific URL. We send the request to the 880 // Initiate a download of a specific URL. We send the request to the
865 // ResourceDispatcherHost, and let it send us responses like a regular 881 // ResourceDispatcherHost, and let it send us responses like a regular
866 // download. 882 // download.
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
998 int64 db_handle) { 1014 int64 db_handle) {
999 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1015 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
1000 DownloadMap::iterator it = in_progress_.find(info.download_id); 1016 DownloadMap::iterator it = in_progress_.find(info.download_id);
1001 DCHECK(it != in_progress_.end()); 1017 DCHECK(it != in_progress_.end());
1002 1018
1003 DownloadItem* download = it->second; 1019 DownloadItem* download = it->second;
1004 VLOG(20) << __FUNCTION__ << "()" << " db_handle = " << db_handle 1020 VLOG(20) << __FUNCTION__ << "()" << " db_handle = " << db_handle
1005 << " download_id = " << info.download_id 1021 << " download_id = " << info.download_id
1006 << " download = " << download->DebugString(true); 1022 << " download = " << download->DebugString(true);
1007 1023
1008 // It's not immediately obvious, but HistoryBackend::CreateDownload() can 1024 AddDownloadItemToHistory(download, db_handle);
1009 // call this function with an invalid |db_handle|. For instance, this can
1010 // happen when the history database is offline. We cannot have multiple
1011 // DownloadItems with the same invalid db_handle, so we need to assign a
1012 // unique |db_handle| here.
1013 if (db_handle == DownloadHistory::kUninitializedHandle)
1014 db_handle = download_history_->GetNextFakeDbHandle();
1015
1016 DCHECK(download->db_handle() == DownloadHistory::kUninitializedHandle);
1017 download->set_db_handle(db_handle);
1018
1019 // Insert into our full map.
1020 DCHECK(!ContainsKey(history_downloads_, download->db_handle()));
1021 history_downloads_[download->db_handle()] = download;
1022 1025
1023 // Show in the appropriate browser UI. 1026 // Show in the appropriate browser UI.
1024 // This includes buttons to save or cancel, for a dangerous download. 1027 // This includes buttons to save or cancel, for a dangerous download.
1025 ShowDownloadInBrowser(info, download); 1028 ShowDownloadInBrowser(info, download);
1026 1029
1027 // Inform interested objects about the new download. 1030 // Inform interested objects about the new download.
1028 NotifyModelChanged(); 1031 NotifyModelChanged();
1029 1032
1030 // If this download has been cancelled before we've received the DB handle, 1033 // If this download has been cancelled before we've received the DB handle,
1031 // post one final message to the history service so that it can be properly 1034 // post one final message to the history service so that it can be properly
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 observed_download_manager_->RemoveObserver(this); 1153 observed_download_manager_->RemoveObserver(this);
1151 } 1154 }
1152 1155
1153 void DownloadManager::OtherDownloadManagerObserver::ModelChanged() { 1156 void DownloadManager::OtherDownloadManagerObserver::ModelChanged() {
1154 observing_download_manager_->NotifyModelChanged(); 1157 observing_download_manager_->NotifyModelChanged();
1155 } 1158 }
1156 1159
1157 void DownloadManager::OtherDownloadManagerObserver::ManagerGoingDown() { 1160 void DownloadManager::OtherDownloadManagerObserver::ManagerGoingDown() {
1158 observed_download_manager_ = NULL; 1161 observed_download_manager_ = NULL;
1159 } 1162 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_manager.h ('k') | chrome/browser/download/save_package.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698