OLD | NEW |
---|---|
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/profiles/profile.h" | 5 #include "chrome/browser/profiles/profile.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
121 | 121 |
122 ChromePluginServiceFilter::GetInstance()->RegisterResourceContext( | 122 ChromePluginServiceFilter::GetInstance()->RegisterResourceContext( |
123 PluginPrefs::GetForProfile(this), &GetResourceContext()); | 123 PluginPrefs::GetForProfile(this), &GetResourceContext()); |
124 | 124 |
125 BrowserThread::PostTask( | 125 BrowserThread::PostTask( |
126 BrowserThread::IO, FROM_HERE, | 126 BrowserThread::IO, FROM_HERE, |
127 NewRunnableFunction(&NotifyOTRProfileCreatedOnIOThread, profile_, this)); | 127 NewRunnableFunction(&NotifyOTRProfileCreatedOnIOThread, profile_, this)); |
128 } | 128 } |
129 | 129 |
130 virtual ~OffTheRecordProfileImpl() { | 130 virtual ~OffTheRecordProfileImpl() { |
131 // Shutdown the DownloadManager here in the dtor as ProfileImpl does to | |
132 // guarantee that it happens before the last scoped_refptr<DM> is reaped. | |
133 // DownloadManager is lazily created, so check before accessing it. | |
134 if (download_manager_.get()) { | |
135 // Drop our download manager so we forget about all the downloads made | |
136 // in incognito mode. | |
137 download_manager_->Shutdown(); | |
138 download_manager_ = NULL; | |
139 } | |
140 | |
131 NotificationService::current()->Notify( | 141 NotificationService::current()->Notify( |
132 chrome::NOTIFICATION_PROFILE_DESTROYED, Source<Profile>(this), | 142 chrome::NOTIFICATION_PROFILE_DESTROYED, Source<Profile>(this), |
133 NotificationService::NoDetails()); | 143 NotificationService::NoDetails()); |
134 | 144 |
135 ChromePluginServiceFilter::GetInstance()->UnregisterResourceContext( | 145 ChromePluginServiceFilter::GetInstance()->UnregisterResourceContext( |
136 &GetResourceContext()); | 146 &GetResourceContext()); |
137 | 147 |
138 ProfileDependencyManager::GetInstance()->DestroyProfileServices(this); | 148 ProfileDependencyManager::GetInstance()->DestroyProfileServices(this); |
139 | 149 |
140 BrowserThread::PostTask( | 150 BrowserThread::PostTask( |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
515 virtual void SetupChromeOSEnterpriseExtensionObserver() { | 525 virtual void SetupChromeOSEnterpriseExtensionObserver() { |
516 profile_->SetupChromeOSEnterpriseExtensionObserver(); | 526 profile_->SetupChromeOSEnterpriseExtensionObserver(); |
517 } | 527 } |
518 | 528 |
519 virtual void InitChromeOSPreferences() { | 529 virtual void InitChromeOSPreferences() { |
520 // The incognito profile shouldn't have Chrome OS's preferences. | 530 // The incognito profile shouldn't have Chrome OS's preferences. |
521 // The preferences are associated with the regular user profile. | 531 // The preferences are associated with the regular user profile. |
522 } | 532 } |
523 #endif // defined(OS_CHROMEOS) | 533 #endif // defined(OS_CHROMEOS) |
524 | 534 |
525 virtual void ExitedOffTheRecordMode() { | 535 virtual void ExitedOffTheRecordMode() { |
willchan no longer on Chromium
2011/09/12 22:09:41
Can we get rid of this? Or is it still needed?
benjhayden
2011/09/14 19:25:42
Done.
| |
526 // DownloadManager is lazily created, so check before accessing it. | |
527 if (download_manager_.get()) { | |
528 // Drop our download manager so we forget about all the downloads made | |
529 // in incognito mode. | |
530 download_manager_->Shutdown(); | |
531 download_manager_ = NULL; | |
532 } | |
533 } | 536 } |
534 | 537 |
535 virtual void OnBrowserAdded(const Browser* browser) { | 538 virtual void OnBrowserAdded(const Browser* browser) { |
536 } | 539 } |
537 | 540 |
538 virtual void OnBrowserRemoved(const Browser* browser) { | 541 virtual void OnBrowserRemoved(const Browser* browser) { |
539 if (BrowserList::GetBrowserCount(this) == 0) | 542 if (BrowserList::GetBrowserCount(this) == 0) |
540 ExitedOffTheRecordMode(); | 543 ExitedOffTheRecordMode(); |
541 } | 544 } |
542 | 545 |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
727 }; | 730 }; |
728 #endif | 731 #endif |
729 | 732 |
730 Profile* Profile::CreateOffTheRecordProfile() { | 733 Profile* Profile::CreateOffTheRecordProfile() { |
731 #if defined(OS_CHROMEOS) | 734 #if defined(OS_CHROMEOS) |
732 if (Profile::IsGuestSession()) | 735 if (Profile::IsGuestSession()) |
733 return new GuestSessionProfile(this); | 736 return new GuestSessionProfile(this); |
734 #endif | 737 #endif |
735 return new OffTheRecordProfileImpl(this); | 738 return new OffTheRecordProfileImpl(this); |
736 } | 739 } |
OLD | NEW |