Index: chrome/browser/profiles/profile.cc |
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc |
index 03f01130783c1a47a25112e4b05a2e8a5225a70f..b61febd8e34485facc1feacbd6ac4094a8a40a4e 100644 |
--- a/chrome/browser/profiles/profile.cc |
+++ b/chrome/browser/profiles/profile.cc |
@@ -81,6 +81,18 @@ net::URLRequestContextGetter* Profile::default_request_context_; |
namespace { |
+void NotifyOTRProfileCreatedOnIOThread(ProfileId original_profile_id, |
+ ProfileId otr_profile_id) { |
+ ExtensionWebRequestEventRouter::GetInstance()->OnOTRProfileCreated( |
+ original_profile_id, otr_profile_id); |
+} |
+ |
+void NotifyOTRProfileDestroyedOnIOThread(ProfileId original_profile_id, |
+ ProfileId otr_profile_id) { |
+ ExtensionWebRequestEventRouter::GetInstance()->OnOTRProfileDestroyed( |
+ original_profile_id, otr_profile_id); |
+} |
+ |
} // namespace |
Profile::Profile() |
@@ -231,6 +243,12 @@ class OffTheRecordProfileImpl : public Profile, |
// Make the chrome//extension-icon/ resource available. |
ExtensionIconSource* icon_source = new ExtensionIconSource(real_profile); |
GetChromeURLDataManager()->AddDataSource(icon_source); |
+ |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ NewRunnableFunction( |
+ &NotifyOTRProfileCreatedOnIOThread, |
+ profile_->GetRuntimeId(), GetRuntimeId())); |
} |
virtual ~OffTheRecordProfileImpl() { |
@@ -240,6 +258,12 @@ class OffTheRecordProfileImpl : public Profile, |
ProfileDependencyManager::GetInstance()->DestroyProfileServices(this); |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ NewRunnableFunction( |
+ &NotifyOTRProfileDestroyedOnIOThread, |
+ profile_->GetRuntimeId(), GetRuntimeId())); |
+ |
// Clean up all DB files/directories |
if (db_tracker_) |
BrowserThread::PostTask( |