Chromium Code Reviews| Index: chrome/common/extensions/permissions/settings_override_permission.cc |
| diff --git a/chrome/common/extensions/permissions/settings_override_permission.cc b/chrome/common/extensions/permissions/settings_override_permission.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6630765d4ee5144d5f1e057b92122c7509787432 |
| --- /dev/null |
| +++ b/chrome/common/extensions/permissions/settings_override_permission.cc |
| @@ -0,0 +1,115 @@ |
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/common/extensions/permissions/settings_override_permission.h" |
| + |
| +#include "base/strings/utf_string_conversions.h" |
| +#include "grit/generated_resources.h" |
| +#include "ui/base/l10n/l10n_util.h" |
| + |
| + |
| +namespace extensions { |
| + |
| +SettingsOverrideAPIPermission::SettingsOverrideAPIPermission( |
| + const APIPermissionInfo* permission, const std::string setting_value) |
| + : APIPermission(permission), |
| + setting_value_(setting_value) { |
| +} |
| + |
| +SettingsOverrideAPIPermission::~SettingsOverrideAPIPermission() { |
| +} |
| + |
| +bool SettingsOverrideAPIPermission::HasMessages() const { |
| + return info()->message_id() > PermissionMessage::kNone; |
| +} |
| + |
| +PermissionMessages SettingsOverrideAPIPermission::GetMessages() const { |
| + DCHECK(HasMessages()); |
| + PermissionMessages result; |
|
gab
2013/11/01 22:35:40
Move this line to line 47 since it's not needed be
MAD
2013/11/03 02:21:20
Done.
|
| + int string_id = -1; |
| + switch (id()) { |
| + case(kHomePage): { |
|
gab
2013/11/01 22:35:40
Typical style for case statements is:
case foo: .
MAD
2013/11/03 02:21:20
Done.
|
| + string_id = IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE; |
| + break; |
| + } |
| + case(kStartupPages): { |
| + string_id = IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE; |
| + break; |
| + } |
| + case(kSearchSettings): { |
| + string_id = IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE; |
| + break; |
| + } |
| + default: |
| + NOTREACHED(); |
| + } |
| + result.push_back(PermissionMessage( |
| + info()->message_id(), |
| + l10n_util::GetStringFUTF16(string_id, UTF8ToUTF16(setting_value_)))); |
| + return result; |
| +} |
| + |
| +bool SettingsOverrideAPIPermission::Check( |
|
gab
2013/11/01 22:35:40
I'm guessing you based most of this implementation
|
| + const APIPermission::CheckParam* param) const { |
| + return !param; |
| +} |
| + |
| +bool SettingsOverrideAPIPermission::Contains(const APIPermission* rhs) const { |
| + CHECK(info() == rhs->info()); |
| + return true; |
| +} |
| + |
| +bool SettingsOverrideAPIPermission::Equal(const APIPermission* rhs) const { |
| + if (this == rhs) |
| + return true; |
| + CHECK(info() == rhs->info()); |
| + return true; |
| +} |
| + |
| +bool SettingsOverrideAPIPermission::FromValue(const base::Value* value) { |
| + // This should never be called since we create the permission manually |
| + // because it's not one explicitly set in the manifest file, it's implicitly |
| + // added when settigns overrides are used. |
|
gab
2013/11/01 22:35:40
s/settigns/settings
MAD
2013/11/03 02:21:20
Done.
|
| + NOTREACHED(); |
| + return false; |
| +} |
| + |
| +scoped_ptr<base::Value> SettingsOverrideAPIPermission::ToValue() const { |
| + return scoped_ptr<base::Value>(); |
| +} |
| + |
| +APIPermission* SettingsOverrideAPIPermission::Clone() const { |
| + return new SettingsOverrideAPIPermission(info(), setting_value_); |
| +} |
| + |
| +APIPermission* SettingsOverrideAPIPermission::Diff( |
| + const APIPermission* rhs) const { |
| + CHECK(info() == rhs->info()); |
| + return NULL; |
| +} |
| + |
| +APIPermission* SettingsOverrideAPIPermission::Union( |
| + const APIPermission* rhs) const { |
| + CHECK(info() == rhs->info()); |
| + return new SettingsOverrideAPIPermission(info(), setting_value_); |
| +} |
| + |
| +APIPermission* SettingsOverrideAPIPermission::Intersect( |
| + const APIPermission* rhs) const { |
| + CHECK(info() == rhs->info()); |
| + return new SettingsOverrideAPIPermission(info(), setting_value_); |
| +} |
| + |
| +void SettingsOverrideAPIPermission::Write(IPC::Message* m) const { |
| +} |
| + |
| +bool SettingsOverrideAPIPermission::Read( |
| + const IPC::Message* m, PickleIterator* iter) { |
| + return true; |
| +} |
| + |
| +void SettingsOverrideAPIPermission::Log(std::string* log) const { |
| +} |
| + |
| +} // namespace extensions |