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

Unified Diff: chrome/browser/ui/webui/options/content_settings_handler.cc

Issue 676083003: Listen to Off The Record profiles in ContentSettingsHandler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Improved patch to fix crash from previous patch. Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« base/scoped_observer.h ('K') | « base/scoped_observer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/options/content_settings_handler.cc
diff --git a/chrome/browser/ui/webui/options/content_settings_handler.cc b/chrome/browser/ui/webui/options/content_settings_handler.cc
index 48a875150ee7871f9209446f454748cd9b1909b0..e7edeef96e5da3773c77f3b461010352aa865d82 100644
--- a/chrome/browser/ui/webui/options/content_settings_handler.cc
+++ b/chrome/browser/ui/webui/options/content_settings_handler.cc
@@ -497,7 +497,13 @@ void ContentSettingsHandler::InitializeHandler() {
base::Unretained(this)));
flash_settings_manager_.reset(new PepperFlashSettingsManager(this, context));
- observer_.Add(Profile::FromWebUI(web_ui())->GetHostContentSettingsMap());
+
+ Profile* profile = Profile::FromWebUI(web_ui());
+ observer_.Add(profile->GetHostContentSettingsMap());
+ if (profile->HasOffTheRecordProfile()) {
+ observer_.Add(
+ profile->GetOffTheRecordProfile()->GetHostContentSettingsMap());
+ }
}
void ContentSettingsHandler::InitializePage() {
@@ -529,16 +535,21 @@ void ContentSettingsHandler::Observe(
const content::NotificationDetails& details) {
switch (type) {
case chrome::NOTIFICATION_PROFILE_DESTROYED: {
- if (content::Source<Profile>(source).ptr()->IsOffTheRecord()) {
+ Profile* profile = content::Source<Profile>(source).ptr();
+ if (profile->IsOffTheRecord()) {
web_ui()->CallJavascriptFunction(
"ContentSettingsExceptionsArea.OTRProfileDestroyed");
+ observer_.Remove(profile->GetHostContentSettingsMap());
Lei Zhang 2014/10/24 19:57:29 Can't we potentially failed the newly added DCHECK
scheib 2014/10/24 21:46:19 Good catch. I've added a check.
}
break;
}
case chrome::NOTIFICATION_PROFILE_CREATED: {
- if (content::Source<Profile>(source).ptr()->IsOffTheRecord())
+ Profile* profile = content::Source<Profile>(source).ptr();
+ if (profile->IsOffTheRecord()) {
UpdateAllOTRExceptionsViewsFromModel();
+ observer_.Add(profile->GetHostContentSettingsMap());
+ }
break;
}
« base/scoped_observer.h ('K') | « base/scoped_observer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698