OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/common/extensions/manifest_handlers/settings_overrides_handler.
h" | 5 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler.
h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 SettingsOverrides::SettingsOverrides() {} | 213 SettingsOverrides::SettingsOverrides() {} |
214 | 214 |
215 SettingsOverrides::~SettingsOverrides() {} | 215 SettingsOverrides::~SettingsOverrides() {} |
216 | 216 |
217 const SettingsOverrides* SettingsOverrides::Get( | 217 const SettingsOverrides* SettingsOverrides::Get( |
218 const Extension* extension) { | 218 const Extension* extension) { |
219 return static_cast<SettingsOverrides*>( | 219 return static_cast<SettingsOverrides*>( |
220 extension->GetManifestData(manifest_keys::kSettingsOverride)); | 220 extension->GetManifestData(manifest_keys::kSettingsOverride)); |
221 } | 221 } |
222 | 222 |
223 bool SettingsOverrides::RemovesBookmarkButton() const { | 223 bool SettingsOverrides::RemovesBookmarkButton( |
224 return bookmarks_ui && bookmarks_ui->remove_button && | 224 const SettingsOverrides& settings_overrides) { |
225 *bookmarks_ui->remove_button; | 225 return settings_overrides.bookmarks_ui && |
| 226 settings_overrides.bookmarks_ui->remove_button && |
| 227 *settings_overrides.bookmarks_ui->remove_button; |
| 228 } |
| 229 |
| 230 bool SettingsOverrides::RemovesBookmarkShortcut( |
| 231 const SettingsOverrides& settings_overrides) { |
| 232 return settings_overrides.bookmarks_ui && |
| 233 settings_overrides.bookmarks_ui->remove_bookmark_shortcut && |
| 234 *settings_overrides.bookmarks_ui->remove_bookmark_shortcut; |
226 } | 235 } |
227 | 236 |
228 SettingsOverridesHandler::SettingsOverridesHandler() {} | 237 SettingsOverridesHandler::SettingsOverridesHandler() {} |
229 | 238 |
230 SettingsOverridesHandler::~SettingsOverridesHandler() {} | 239 SettingsOverridesHandler::~SettingsOverridesHandler() {} |
231 | 240 |
232 bool SettingsOverridesHandler::Parse(Extension* extension, | 241 bool SettingsOverridesHandler::Parse(Extension* extension, |
233 base::string16* error) { | 242 base::string16* error) { |
234 const base::Value* dict = NULL; | 243 const base::Value* dict = NULL; |
235 CHECK(extension->manifest()->Get(manifest_keys::kSettingsOverride, &dict)); | 244 CHECK(extension->manifest()->Get(manifest_keys::kSettingsOverride, &dict)); |
(...skipping 14 matching lines...) Expand all Loading... |
250 info->homepage = ParseHomepage(*settings, error); | 259 info->homepage = ParseHomepage(*settings, error); |
251 info->search_engine = ParseSearchEngine(settings.get(), error); | 260 info->search_engine = ParseSearchEngine(settings.get(), error); |
252 info->startup_pages = ParseStartupPage(*settings, error); | 261 info->startup_pages = ParseStartupPage(*settings, error); |
253 if (!info->bookmarks_ui && !info->homepage && | 262 if (!info->bookmarks_ui && !info->homepage && |
254 !info->search_engine && info->startup_pages.empty()) { | 263 !info->search_engine && info->startup_pages.empty()) { |
255 *error = | 264 *error = |
256 base::ASCIIToUTF16(manifest_errors::kInvalidEmptySettingsOverrides); | 265 base::ASCIIToUTF16(manifest_errors::kInvalidEmptySettingsOverrides); |
257 return false; | 266 return false; |
258 } | 267 } |
259 info->manifest_permission.reset(new ManifestPermissionImpl( | 268 info->manifest_permission.reset(new ManifestPermissionImpl( |
260 info->RemovesBookmarkButton())); | 269 SettingsOverrides::RemovesBookmarkButton(*info))); |
261 | 270 |
262 APIPermissionSet* permission_set = | 271 APIPermissionSet* permission_set = |
263 PermissionsData::GetInitialAPIPermissions(extension); | 272 PermissionsData::GetInitialAPIPermissions(extension); |
264 DCHECK(permission_set); | 273 DCHECK(permission_set); |
265 if (info->search_engine) { | 274 if (info->search_engine) { |
266 permission_set->insert(new SettingsOverrideAPIPermission( | 275 permission_set->insert(new SettingsOverrideAPIPermission( |
267 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSearchProvider), | 276 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSearchProvider), |
268 RemoveWwwPrefix(CreateManifestURL(info->search_engine->search_url)-> | 277 RemoveWwwPrefix(CreateManifestURL(info->search_engine->search_url)-> |
269 GetOrigin().host()))); | 278 GetOrigin().host()))); |
270 } | 279 } |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 const SettingsOverrides* data = SettingsOverrides::Get(extension); | 328 const SettingsOverrides* data = SettingsOverrides::Get(extension); |
320 if (data) | 329 if (data) |
321 return data->manifest_permission->Clone(); | 330 return data->manifest_permission->Clone(); |
322 return NULL; | 331 return NULL; |
323 } | 332 } |
324 const std::vector<std::string> SettingsOverridesHandler::Keys() const { | 333 const std::vector<std::string> SettingsOverridesHandler::Keys() const { |
325 return SingleKey(manifest_keys::kSettingsOverride); | 334 return SingleKey(manifest_keys::kSettingsOverride); |
326 } | 335 } |
327 | 336 |
328 } // namespace extensions | 337 } // namespace extensions |
OLD | NEW |