| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "base/prefs/pref_service.h" | 5 #include "base/prefs/pref_service.h" |
| 6 #include "chrome/browser/browser_process.h" | 6 #include "chrome/browser/browser_process.h" |
| 7 #include "chrome/browser/extensions/api/settings_private/prefs_util.h" | 7 #include "chrome/browser/extensions/api/settings_private/prefs_util.h" |
| 8 #include "chrome/browser/extensions/chrome_extension_function.h" | 8 #include "chrome/browser/extensions/chrome_extension_function.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/common/pref_names.h" | 10 #include "chrome/common/pref_names.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 return IsPrefTypeURL(name) | 115 return IsPrefTypeURL(name) |
| 116 ? api::settings_private::PrefType::PREF_TYPE_URL | 116 ? api::settings_private::PrefType::PREF_TYPE_URL |
| 117 : api::settings_private::PrefType::PREF_TYPE_STRING; | 117 : api::settings_private::PrefType::PREF_TYPE_STRING; |
| 118 case base::Value::Type::TYPE_LIST: | 118 case base::Value::Type::TYPE_LIST: |
| 119 return api::settings_private::PrefType::PREF_TYPE_LIST; | 119 return api::settings_private::PrefType::PREF_TYPE_LIST; |
| 120 default: | 120 default: |
| 121 return api::settings_private::PrefType::PREF_TYPE_NONE; | 121 return api::settings_private::PrefType::PREF_TYPE_NONE; |
| 122 } | 122 } |
| 123 } | 123 } |
| 124 | 124 |
| 125 scoped_ptr<api::settings_private::PrefObject> PrefsUtil::GetCrosSettingsPref( | 125 scoped_ptr<api::settings_private::PrefData> PrefsUtil::GetCrosSettingsPref( |
| 126 const std::string& name) { | 126 const std::string& name) { |
| 127 scoped_ptr<api::settings_private::PrefObject> pref_object( | 127 scoped_ptr<api::settings_private::PrefData> pref_data( |
| 128 new api::settings_private::PrefObject()); | 128 new api::settings_private::PrefData()); |
| 129 | 129 |
| 130 #if defined(OS_CHROMEOS) | 130 #if defined(OS_CHROMEOS) |
| 131 const base::Value* value = CrosSettings::Get()->GetPref(name); | 131 const base::Value* value = CrosSettings::Get()->GetPref(name); |
| 132 pref_object->key = name; | 132 pref_data->key = name; |
| 133 pref_object->type = GetType(name, value->GetType()); | 133 pref_data->type = GetType(name, value->GetType()); |
| 134 pref_object->value.reset(value->DeepCopy()); | 134 pref_data->value.reset(value->DeepCopy()); |
| 135 #endif | 135 #endif |
| 136 | 136 |
| 137 return pref_object.Pass(); | 137 return pref_data.Pass(); |
| 138 } | 138 } |
| 139 | 139 |
| 140 scoped_ptr<api::settings_private::PrefObject> PrefsUtil::GetPref( | 140 scoped_ptr<api::settings_private::PrefData> PrefsUtil::GetPref( |
| 141 const std::string& name) { | 141 const std::string& name) { |
| 142 if (IsCrosSetting(name)) | 142 if (IsCrosSetting(name)) |
| 143 return GetCrosSettingsPref(name); | 143 return GetCrosSettingsPref(name); |
| 144 | 144 |
| 145 PrefService* pref_service = FindServiceForPref(name); | 145 PrefService* pref_service = FindServiceForPref(name); |
| 146 const PrefService::Preference* pref = pref_service->FindPreference(name); | 146 const PrefService::Preference* pref = pref_service->FindPreference(name); |
| 147 if (!pref) | 147 if (!pref) |
| 148 return nullptr; | 148 return nullptr; |
| 149 | 149 |
| 150 scoped_ptr<api::settings_private::PrefObject> pref_object( | 150 scoped_ptr<api::settings_private::PrefData> pref_data( |
| 151 new api::settings_private::PrefObject()); | 151 new api::settings_private::PrefData()); |
| 152 pref_object->key = pref->name(); | 152 pref_data->key = pref->name(); |
| 153 pref_object->type = GetType(name, pref->GetType()); | 153 pref_data->type = GetType(name, pref->GetType()); |
| 154 pref_object->value.reset(pref->GetValue()->DeepCopy()); | 154 pref_data->value.reset(pref->GetValue()->DeepCopy()); |
| 155 | 155 |
| 156 if (pref->IsManaged()) { | 156 if (pref->IsManaged()) { |
| 157 if (pref->IsManagedByCustodian()) { | 157 if (pref->IsManagedByCustodian()) { |
| 158 pref_object->policy_source = | 158 pref_data->policy_source = |
| 159 api::settings_private::PolicySource::POLICY_SOURCE_DEVICE; | 159 api::settings_private::PolicySource::POLICY_SOURCE_DEVICE; |
| 160 } else { | 160 } else { |
| 161 pref_object->policy_source = | 161 pref_data->policy_source = |
| 162 api::settings_private::PolicySource::POLICY_SOURCE_USER; | 162 api::settings_private::PolicySource::POLICY_SOURCE_USER; |
| 163 } | 163 } |
| 164 pref_object->policy_enforcement = | 164 pref_data->policy_enforcement = |
| 165 pref->IsRecommended() ? api::settings_private::PolicyEnforcement:: | 165 pref->IsRecommended() ? api::settings_private::PolicyEnforcement:: |
| 166 POLICY_ENFORCEMENT_RECOMMENDED | 166 POLICY_ENFORCEMENT_RECOMMENDED |
| 167 : api::settings_private::PolicyEnforcement:: | 167 : api::settings_private::PolicyEnforcement:: |
| 168 POLICY_ENFORCEMENT_ENFORCED; | 168 POLICY_ENFORCEMENT_ENFORCED; |
| 169 } else if (!IsPrefUserModifiable(name)) { | 169 } else if (!IsPrefUserModifiable(name)) { |
| 170 pref_object->policy_source = | 170 pref_data->policy_source = |
| 171 api::settings_private::PolicySource::POLICY_SOURCE_USER; | 171 api::settings_private::PolicySource::POLICY_SOURCE_USER; |
| 172 pref_object->policy_enforcement = | 172 pref_data->policy_enforcement = |
| 173 api::settings_private::PolicyEnforcement::POLICY_ENFORCEMENT_ENFORCED; | 173 api::settings_private::PolicyEnforcement::POLICY_ENFORCEMENT_ENFORCED; |
| 174 } | 174 } |
| 175 | 175 |
| 176 return pref_object.Pass(); | 176 return pref_data.Pass(); |
| 177 } | 177 } |
| 178 | 178 |
| 179 bool PrefsUtil::SetPref(const std::string& pref_name, | 179 bool PrefsUtil::SetPref(const std::string& pref_name, |
| 180 const base::Value* value) { | 180 const base::Value* value) { |
| 181 if (IsCrosSetting(pref_name)) | 181 if (IsCrosSetting(pref_name)) |
| 182 return SetCrosSettingsPref(pref_name, value); | 182 return SetCrosSettingsPref(pref_name, value); |
| 183 | 183 |
| 184 PrefService* pref_service = FindServiceForPref(pref_name); | 184 PrefService* pref_service = FindServiceForPref(pref_name); |
| 185 | 185 |
| 186 if (!IsPrefUserModifiable(pref_name)) | 186 if (!IsPrefUserModifiable(pref_name)) |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 | 343 |
| 344 bool PrefsUtil::IsCrosSetting(const std::string& pref_name) { | 344 bool PrefsUtil::IsCrosSetting(const std::string& pref_name) { |
| 345 #if defined(OS_CHROMEOS) | 345 #if defined(OS_CHROMEOS) |
| 346 return CrosSettings::Get()->IsCrosSettings(pref_name); | 346 return CrosSettings::Get()->IsCrosSettings(pref_name); |
| 347 #else | 347 #else |
| 348 return false; | 348 return false; |
| 349 #endif | 349 #endif |
| 350 } | 350 } |
| 351 | 351 |
| 352 } // namespace extensions | 352 } // namespace extensions |
| OLD | NEW |