1// Copyright 2014 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. 4 5#include "extensions/common/permissions/settings_override_permission.h" 6 7#include "base/strings/utf_string_conversions.h" 8#include "grit/extensions_strings.h" 9#include "ui/base/l10n/l10n_util.h" 10 11namespace extensions { 12 13SettingsOverrideAPIPermission::SettingsOverrideAPIPermission( 14 const APIPermissionInfo* permission, 15 const std::string& setting_value) 16 : APIPermission(permission), setting_value_(setting_value) {} 17 18SettingsOverrideAPIPermission::~SettingsOverrideAPIPermission() {} 19 20bool SettingsOverrideAPIPermission::HasMessages() const { 21 return info()->message_id() > PermissionMessage::kNone; 22} 23 24PermissionMessages SettingsOverrideAPIPermission::GetMessages() const { 25 DCHECK(HasMessages()); 26 int string_id = -1; 27 switch (id()) { 28 case kHomepage: { 29 string_id = IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE; 30 break; 31 } 32 case kStartupPages: { 33 string_id = IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE; 34 break; 35 } 36 case kSearchProvider: { 37 string_id = IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE; 38 break; 39 } 40 default: 41 NOTREACHED(); 42 } 43 PermissionMessages result; 44 result.push_back( 45 PermissionMessage(info()->message_id(), 46 l10n_util::GetStringFUTF16( 47 string_id, base::UTF8ToUTF16(setting_value_)))); 48 return result; 49} 50 51bool SettingsOverrideAPIPermission::Check( 52 const APIPermission::CheckParam* param) const { 53 return (param == NULL); 54} 55 56bool SettingsOverrideAPIPermission::Contains(const APIPermission* rhs) const { 57 CHECK_EQ(info(), rhs->info()); 58 return true; 59} 60 61bool SettingsOverrideAPIPermission::Equal(const APIPermission* rhs) const { 62 if (this != rhs) 63 CHECK_EQ(info(), rhs->info()); 64 return true; 65} 66 67bool SettingsOverrideAPIPermission::FromValue( 68 const base::Value* value, 69 std::string* /*error*/, 70 std::vector<std::string>* unhandled_permissions) { 71 return (value == NULL); 72} 73 74scoped_ptr<base::Value> SettingsOverrideAPIPermission::ToValue() const { 75 return scoped_ptr<base::Value>(); 76} 77 78APIPermission* SettingsOverrideAPIPermission::Clone() const { 79 return new SettingsOverrideAPIPermission(info(), setting_value_); 80} 81 82APIPermission* SettingsOverrideAPIPermission::Diff( 83 const APIPermission* rhs) const { 84 CHECK_EQ(info(), rhs->info()); 85 return NULL; 86} 87 88APIPermission* SettingsOverrideAPIPermission::Union( 89 const APIPermission* rhs) const { 90 CHECK_EQ(info(), rhs->info()); 91 return new SettingsOverrideAPIPermission(info(), setting_value_); 92} 93 94APIPermission* SettingsOverrideAPIPermission::Intersect( 95 const APIPermission* rhs) const { 96 CHECK_EQ(info(), rhs->info()); 97 return new SettingsOverrideAPIPermission(info(), setting_value_); 98} 99 100void SettingsOverrideAPIPermission::Write(IPC::Message* m) const {} 101 102bool SettingsOverrideAPIPermission::Read(const IPC::Message* m, 103 PickleIterator* iter) { 104 return true; 105} 106 107void SettingsOverrideAPIPermission::Log(std::string* log) const {} 108 109} // namespace extensions 110