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

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

Issue 9150016: Move creation and ownership of ResourceDispatcherHost and PluginService to content. This gives a ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix chromeos ui_tests Created 8 years, 11 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
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_service.h" 5 #include "chrome/browser/download/download_service.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/download/chrome_download_manager_delegate.h" 9 #include "chrome/browser/download/chrome_download_manager_delegate.h"
10 #include "chrome/browser/download/download_service_factory.h" 10 #include "chrome/browser/download/download_service_factory.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/profiles/profile_manager.h" 12 #include "chrome/browser/profiles/profile_manager.h"
13 #include "content/browser/download/download_id_factory.h" 13 #include "content/browser/download/download_id_factory.h"
14 #include "content/browser/download/download_manager_impl.h" 14 #include "content/public/browser/download_manager.h"
15 15
16 using content::DownloadManager; 16 using content::DownloadManager;
17 17
18 DownloadService::DownloadService(Profile* profile) 18 DownloadService::DownloadService(Profile* profile)
19 : download_manager_created_(false), 19 : download_manager_created_(false),
20 profile_(profile) { 20 profile_(profile) {
21 if (profile_->IsOffTheRecord()) { 21 if (profile_->IsOffTheRecord()) {
22 id_factory_ = DownloadServiceFactory::GetForProfile( 22 id_factory_ = DownloadServiceFactory::GetForProfile(
23 profile_->GetOriginalProfile())->GetDownloadIdFactory(); 23 profile_->GetOriginalProfile())->GetDownloadIdFactory();
24 } else { 24 } else {
(...skipping 15 matching lines...) Expand all
40 on_manager_created_callbacks_.push_back(cb); 40 on_manager_created_callbacks_.push_back(cb);
41 } 41 }
42 } 42 }
43 43
44 DownloadManager* DownloadService::GetDownloadManager() { 44 DownloadManager* DownloadService::GetDownloadManager() {
45 if (!download_manager_created_) { 45 if (!download_manager_created_) {
46 // In case the delegate has already been set by 46 // In case the delegate has already been set by
47 // SetDownloadManagerDelegateForTesting. 47 // SetDownloadManagerDelegateForTesting.
48 if (!manager_delegate_.get()) 48 if (!manager_delegate_.get())
49 manager_delegate_ = new ChromeDownloadManagerDelegate(profile_); 49 manager_delegate_ = new ChromeDownloadManagerDelegate(profile_);
50 manager_ = new DownloadManagerImpl( 50 manager_ = DownloadManager::Create(
51 manager_delegate_.get(), 51 manager_delegate_.get(),
52 id_factory_.get(), 52 id_factory_.get(),
53 g_browser_process->download_status_updater()); 53 g_browser_process->download_status_updater());
54 manager_->Init(profile_); 54 manager_->Init(profile_);
55 manager_delegate_->SetDownloadManager(manager_); 55 manager_delegate_->SetDownloadManager(manager_);
56 download_manager_created_ = true; 56 download_manager_created_ = true;
57 for (std::vector<OnManagerCreatedCallback>::iterator cb 57 for (std::vector<OnManagerCreatedCallback>::iterator cb
58 = on_manager_created_callbacks_.begin(); 58 = on_manager_created_callbacks_.begin();
59 cb != on_manager_created_callbacks_.end(); ++cb) { 59 cb != on_manager_created_callbacks_.end(); ++cb) {
60 cb->Run(manager_.get()); 60 cb->Run(manager_.get());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 // Resetting here will guarantee that any attempts to get the 109 // Resetting here will guarantee that any attempts to get the
110 // DownloadManager after shutdown will return null. 110 // DownloadManager after shutdown will return null.
111 // 111 //
112 // TODO(rdsmith): Figure out how to guarantee when the last reference 112 // TODO(rdsmith): Figure out how to guarantee when the last reference
113 // will be released and make DownloadManager not RefCountedThreadSafe<>. 113 // will be released and make DownloadManager not RefCountedThreadSafe<>.
114 manager_.release(); 114 manager_.release();
115 } 115 }
116 if (manager_delegate_.get()) 116 if (manager_delegate_.get())
117 manager_delegate_.release(); 117 manager_delegate_.release();
118 } 118 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698