| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2010 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 "chrome/browser/content_setting_combo_model.h" | |
| 6 | |
| 7 #include "base/command_line.h" | |
| 8 #include "base/string16.h" | |
| 9 #include "chrome/common/chrome_switches.h" | |
| 10 #include "grit/generated_resources.h" | |
| 11 #include "ui/base/l10n/l10n_util.h" | |
| 12 | |
| 13 namespace { | |
| 14 | |
| 15 // The settings shown in the combobox if show_session_ is false; | |
| 16 const ContentSetting kNoSessionSettings[] = { CONTENT_SETTING_ALLOW, | |
| 17 CONTENT_SETTING_BLOCK }; | |
| 18 | |
| 19 // The settings shown in the combobox if show_session_ is true; | |
| 20 const ContentSetting kSessionSettings[] = { CONTENT_SETTING_ALLOW, | |
| 21 CONTENT_SETTING_SESSION_ONLY, | |
| 22 CONTENT_SETTING_BLOCK }; | |
| 23 | |
| 24 // The settings shown in the combobox for plug-ins; | |
| 25 const ContentSetting kAskSettings[] = { CONTENT_SETTING_ALLOW, | |
| 26 CONTENT_SETTING_ASK, | |
| 27 CONTENT_SETTING_BLOCK }; | |
| 28 | |
| 29 } // namespace | |
| 30 | |
| 31 ContentSettingComboModel::ContentSettingComboModel(ContentSettingsType type) | |
| 32 : content_type_(type) { | |
| 33 } | |
| 34 | |
| 35 ContentSettingComboModel::~ContentSettingComboModel() { | |
| 36 } | |
| 37 | |
| 38 int ContentSettingComboModel::GetItemCount() { | |
| 39 if (content_type_ == CONTENT_SETTINGS_TYPE_PLUGINS && | |
| 40 CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableClickToPlay)) | |
| 41 return arraysize(kAskSettings); | |
| 42 if (content_type_ == CONTENT_SETTINGS_TYPE_COOKIES) | |
| 43 return arraysize(kSessionSettings); | |
| 44 return arraysize(kNoSessionSettings); | |
| 45 } | |
| 46 | |
| 47 string16 ContentSettingComboModel::GetItemAt(int index) { | |
| 48 switch (SettingForIndex(index)) { | |
| 49 case CONTENT_SETTING_ALLOW: | |
| 50 return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_ALLOW_BUTTON); | |
| 51 case CONTENT_SETTING_BLOCK: | |
| 52 return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_BLOCK_BUTTON); | |
| 53 case CONTENT_SETTING_ASK: | |
| 54 return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_ASK_BUTTON); | |
| 55 case CONTENT_SETTING_SESSION_ONLY: | |
| 56 return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_SESSION_ONLY_BUTTON); | |
| 57 default: | |
| 58 NOTREACHED(); | |
| 59 } | |
| 60 return string16(); | |
| 61 } | |
| 62 | |
| 63 ContentSetting ContentSettingComboModel::SettingForIndex(int index) { | |
| 64 if (content_type_ == CONTENT_SETTINGS_TYPE_PLUGINS && | |
| 65 CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableClickToPlay)) | |
| 66 return kAskSettings[index]; | |
| 67 if (content_type_ == CONTENT_SETTINGS_TYPE_COOKIES) | |
| 68 return kSessionSettings[index]; | |
| 69 return kNoSessionSettings[index]; | |
| 70 } | |
| 71 | |
| 72 int ContentSettingComboModel::IndexForSetting(ContentSetting setting) { | |
| 73 for (int i = 0; i < GetItemCount(); ++i) | |
| 74 if (SettingForIndex(i) == setting) | |
| 75 return i; | |
| 76 NOTREACHED(); | |
| 77 return 0; | |
| 78 } | |
| 79 | |
| OLD | NEW |