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
3 // found in the LICENSE file.
5 #include "chrome/common/extensions/permissions/settings_override_permission.h"
7 #include "base/strings/utf_string_conversions.h"
8 #include "grit/generated_resources.h"
9 #include "ui/base/l10n/l10n_util.h"
12 namespace extensions {
14 SettingsOverrideAPIPermission::SettingsOverrideAPIPermission(
15 const APIPermissionInfo* permission, const std::string& setting_value)
16 : APIPermission(permission),
17 setting_value_(setting_value) {
20 SettingsOverrideAPIPermission::~SettingsOverrideAPIPermission() {
23 bool SettingsOverrideAPIPermission::HasMessages() const {
24 return info()->message_id() > PermissionMessage::kNone;
27 PermissionMessages SettingsOverrideAPIPermission::GetMessages() const {
28 DCHECK(HasMessages());
32 string_id = IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE;
36 string_id = IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE;
39 case kSearchProvider: {
40 string_id = IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE;
46 PermissionMessages result;
47 result.push_back(PermissionMessage(
49 l10n_util::GetStringFUTF16(string_id, UTF8ToUTF16(setting_value_))));
53 bool SettingsOverrideAPIPermission::Check(
54 const APIPermission::CheckParam* param) const {
58 bool SettingsOverrideAPIPermission::Contains(const APIPermission* rhs) const {
59 CHECK(info() == rhs->info());
63 bool SettingsOverrideAPIPermission::Equal(const APIPermission* rhs) const {
66 CHECK(info() == rhs->info());
70 bool SettingsOverrideAPIPermission::FromValue(const base::Value* value) {
76 scoped_ptr<base::Value> SettingsOverrideAPIPermission::ToValue() const {
77 return scoped_ptr<base::Value>();
80 APIPermission* SettingsOverrideAPIPermission::Clone() const {
81 return new SettingsOverrideAPIPermission(info(), setting_value_);
84 APIPermission* SettingsOverrideAPIPermission::Diff(
85 const APIPermission* rhs) const {
86 CHECK(info() == rhs->info());
90 APIPermission* SettingsOverrideAPIPermission::Union(
91 const APIPermission* rhs) const {
92 CHECK(info() == rhs->info());
93 return new SettingsOverrideAPIPermission(info(), setting_value_);
96 APIPermission* SettingsOverrideAPIPermission::Intersect(
97 const APIPermission* rhs) const {
98 CHECK(info() == rhs->info());
99 return new SettingsOverrideAPIPermission(info(), setting_value_);
102 void SettingsOverrideAPIPermission::Write(IPC::Message* m) const {
105 bool SettingsOverrideAPIPermission::Read(
106 const IPC::Message* m, PickleIterator* iter) {
110 void SettingsOverrideAPIPermission::Log(std::string* log) const {
113 } // namespace extensions