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

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

Issue 582983002: Fix a bug where Guest Profiles in CrOS could cause crashes when collecting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: No colon. Created 6 years, 3 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
« no previous file with comments | « chrome/browser/ui/webui/options/website_settings_handler.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/website_settings_handler.cc
diff --git a/chrome/browser/ui/webui/options/website_settings_handler.cc b/chrome/browser/ui/webui/options/website_settings_handler.cc
index f946b120764f91361dbd1e9572716f935c39b766..f6fbb7b41931b1946376a909c95deaf514826524 100644
--- a/chrome/browser/ui/webui/options/website_settings_handler.cc
+++ b/chrome/browser/ui/webui/options/website_settings_handler.cc
@@ -110,7 +110,7 @@ void WebsiteSettingsHandler::GetLocalizedValues(
}
void WebsiteSettingsHandler::InitializeHandler() {
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
HostContentSettingsMap* settings = profile->GetHostContentSettingsMap();
observer_.Add(settings);
@@ -228,7 +228,7 @@ void WebsiteSettingsHandler::HandleUpdateSearchResults(
void WebsiteSettingsHandler::HandleUpdateLocalStorage(
const base::ListValue* args) {
if (!local_storage_.get()) {
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
local_storage_ = new BrowsingDataLocalStorageHelper(profile);
}
@@ -273,7 +273,7 @@ void WebsiteSettingsHandler::Update() {
}
void WebsiteSettingsHandler::UpdateOrigins() {
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
HostContentSettingsMap* settings = profile->GetHostContentSettingsMap();
ContentSettingsForOneType all_settings;
@@ -379,7 +379,7 @@ void WebsiteSettingsHandler::HandleSetOriginPermission(
DCHECK(rv);
ContentSetting setting = content_settings::ContentSettingFromString(value);
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
HostContentSettingsMap* map = profile->GetHostContentSettingsMap();
ContentSetting default_value =
map->GetDefaultContentSetting(settings_type, NULL);
@@ -483,14 +483,7 @@ void WebsiteSettingsHandler::HandleSetDefaultSetting(
ContentSettingsType last_setting;
content_settings::GetTypeFromName(last_setting_, &last_setting);
- Profile* profile = Profile::FromWebUI(web_ui());
-
-#if defined(OS_CHROMEOS)
- // ChromeOS special case : in Guest mode settings are opened in Incognito
- // mode, so we need original profile to actually modify settings.
- if (user_manager::UserManager::Get()->IsLoggedInAsGuest())
- profile = profile->GetOriginalProfile();
-#endif
+ Profile* profile = GetProfile();
HostContentSettingsMap* map = profile->GetHostContentSettingsMap();
map->SetDefaultContentSetting(last_setting, new_default);
@@ -549,14 +542,14 @@ void WebsiteSettingsHandler::HandleSetGlobalToggle(
rv = content_settings::GetTypeFromName(last_setting_, &last_setting);
DCHECK(rv);
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
HostContentSettingsMap* map = profile->GetHostContentSettingsMap();
map->SetContentSettingOverride(last_setting, is_enabled);
}
void WebsiteSettingsHandler::GetInfoForOrigin(const GURL& site_url,
bool show_page) {
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
HostContentSettingsMap* map = profile->GetHostContentSettingsMap();
double storage = 0.0;
@@ -571,7 +564,7 @@ void WebsiteSettingsHandler::GetInfoForOrigin(const GURL& site_url,
int battery = 0;
battery = OriginPowerMapFactory::GetForBrowserContext(
- Profile::FromWebUI(web_ui()))->GetPowerForOrigin(site_url);
+ GetProfile())->GetPowerForOrigin(site_url);
base::DictionaryValue* permissions = new base::DictionaryValue;
for (size_t i = 0; i < arraysize(kValidTypes); ++i) {
@@ -671,7 +664,7 @@ void WebsiteSettingsHandler::UpdateLocalStorage() {
void WebsiteSettingsHandler::UpdateBatteryUsage() {
base::DictionaryValue power_map;
OriginPowerMap* origins =
- OriginPowerMapFactory::GetForBrowserContext(Profile::FromWebUI(web_ui()));
+ OriginPowerMapFactory::GetForBrowserContext(GetProfile());
OriginPowerMap::PercentOriginMap percent_map = origins->GetPercentOriginMap();
for (std::map<GURL, int>::iterator it = percent_map.begin();
it != percent_map.end();
@@ -698,7 +691,7 @@ void WebsiteSettingsHandler::UpdateBatteryUsage() {
std::string WebsiteSettingsHandler::GetSettingDefaultFromModel(
ContentSettingsType type,
std::string* provider_id) {
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
ContentSetting default_setting =
profile->GetHostContentSettingsMap()->GetDefaultContentSetting(
type, provider_id);
@@ -707,7 +700,7 @@ std::string WebsiteSettingsHandler::GetSettingDefaultFromModel(
}
void WebsiteSettingsHandler::StopOrigin(const GURL& site_url) {
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
if (site_url.SchemeIs(extensions::kExtensionScheme)) {
const extensions::Extension* extension =
extensions::ExtensionRegistry::Get(profile)
@@ -740,7 +733,7 @@ void WebsiteSettingsHandler::StopOrigin(const GURL& site_url) {
}
void WebsiteSettingsHandler::DeleteLocalStorage(const GURL& site_url) {
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
content::DOMStorageContext* dom_storage_context_ =
content::BrowserContext::GetDefaultStoragePartition(profile)
->GetDOMStorageContext();
@@ -757,7 +750,7 @@ void WebsiteSettingsHandler::DeleteLocalStorage(const GURL& site_url) {
const std::string& WebsiteSettingsHandler::GetReadableName(
const GURL& site_url) {
if (site_url.SchemeIs(extensions::kExtensionScheme)) {
- Profile* profile = Profile::FromWebUI(web_ui());
+ Profile* profile = GetProfile();
ExtensionService* extension_service =
extensions::ExtensionSystem::Get(profile)->extension_service();
@@ -772,4 +765,15 @@ const std::string& WebsiteSettingsHandler::GetReadableName(
return site_url.spec();
}
+Profile* WebsiteSettingsHandler::GetProfile() {
+ Profile* profile = Profile::FromWebUI(web_ui());
+#if defined(OS_CHROMEOS)
+ // Chrome OS special case: in Guest mode settings are opened in Incognito
+ // mode, so we need original profile to actually modify settings.
+ if (user_manager::UserManager::Get()->IsLoggedInAsGuest())
+ profile = profile->GetOriginalProfile();
+#endif
+ return profile;
+}
+
} // namespace options
« no previous file with comments | « chrome/browser/ui/webui/options/website_settings_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698