Chromium Code Reviews| Index: chrome/browser/ui/app_list/start_page_service.cc |
| diff --git a/chrome/browser/ui/app_list/start_page_service.cc b/chrome/browser/ui/app_list/start_page_service.cc |
| index 068bdafee57d17f27955f3635b5934534854752e..9f57ccc664b754d2a0e97b869679ca18047dd274 100644 |
| --- a/chrome/browser/ui/app_list/start_page_service.cc |
| +++ b/chrome/browser/ui/app_list/start_page_service.cc |
| @@ -86,6 +86,15 @@ class StartPageService::ProfileDestroyObserver |
| public: |
| explicit ProfileDestroyObserver(StartPageService* service) |
| : service_(service) { |
| + if (service_->profile()->IsOffTheRecord()) { |
| + // We need to be notified when the original profile gets destroyed as well |
| + // as the OTR profile, because the original profile will be destroyed |
| + // first, and a DCHECK at that time ensures that the OTR profile has 0 |
| + // hosts. See http://crbug.com/463419. |
| + registrar_.Add( |
| + this, chrome::NOTIFICATION_PROFILE_DESTROYED, |
| + content::Source<Profile>(service_->profile()->GetOriginalProfile())); |
|
tapted
2015/03/04 05:01:11
is that bug likely to get fixed? (could you just r
Matt Giuca
2015/03/04 06:07:05
I think it's definitely a bug either way, with one
tapted
2015/03/04 07:45:09
Acknowledged.
|
| + } |
| registrar_.Add(this, |
| chrome::NOTIFICATION_PROFILE_DESTROYED, |
| content::Source<Profile>(service_->profile())); |
| @@ -97,8 +106,10 @@ class StartPageService::ProfileDestroyObserver |
| void Observe(int type, |
| const content::NotificationSource& source, |
| const content::NotificationDetails& details) override { |
| + Profile* source_profile = content::Source<Profile>(source).ptr(); |
| DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type); |
| - DCHECK_EQ(service_->profile(), content::Source<Profile>(source).ptr()); |
| + DCHECK(source_profile == service_->profile() || |
|
tapted
2015/03/04 05:01:10
up to you, but you could also do
DCHECK(service_-
Matt Giuca
2015/03/04 06:07:06
Done. (Yeah, that's better.)
(Although I had to s
|
| + source_profile == service_->profile()->GetOriginalProfile()); |
| service_->Shutdown(); |
|
tapted
2015/03/04 05:01:11
I doubt it really matters, but is it worth doing r
Matt Giuca
2015/03/04 06:07:05
Done. (Although I tested that Shutdown was idempot
|
| } |