Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: chrome/browser/resources/settings/site_settings/site_settings_behavior.js

Issue 1372053002: Flesh out the location-page class to make it more general. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address feedback from Dan and Michael Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 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 /**
6 * @fileoverview Behavior common to Site Settings classes.
7 */
8
9 var SiteSettingsBehaviorImpl = {
10 /**
11 * Returns whether the category default is set to enabled or not.
12 * @param {number} category The category to check.
13 * @return {boolean} True if the category default is set to enabled.
14 * @protected
15 */
16 isCategoryAllowed_: function(category) {
17 var pref = this.getPref_(this.computeCategoryPrefName_(category));
18
19 // FullScreen is Allow vs. Ask.
20 if (category == settings.ContentSettingsTypes.FULLSCREEN)
21 return pref.value != settings.DefaultValues.ASK;
22
23 return pref.value != settings.DefaultValues.BLOCK;
24 },
25
26 /**
27 * A utility function to compute the icon to use for the category.
28 * @param {number} category The category to show the icon for.
29 * @return {string} The id of the icon for the given category.
30 * @protected
31 */
32 computeIconForContentCategory_: function(category) {
33 switch (category) {
34 case settings.ContentSettingsTypes.COOKIES:
35 return ''; // Haven't found a good cookies icon under iron-icons.
36 case settings.ContentSettingsTypes.JAVASCRIPT:
37 return 'icons:input';
38 case settings.ContentSettingsTypes.FULLSCREEN:
39 return 'icons:fullscreen';
40 case settings.ContentSettingsTypes.POPUPS:
41 return 'icons:open-in-new';
42 case settings.ContentSettingsTypes.GEOLOCATION:
43 return 'communication:location-on';
44 case settings.ContentSettingsTypes.NOTIFICATION:
45 return 'social:notifications';
46 case settings.ContentSettingsTypes.CAMERA:
47 return 'av:videocam';
48 case settings.ContentSettingsTypes.MIC:
49 return 'av:mic';
50 default:
51 assertNotReached();
52 return '';
53 }
54 },
55
56 /**
57 * A utility function to compute the title of the category.
58 * @param {number} category The category to show the title for.
59 * @return {string} The title for the given category.
60 * @protected
61 */
62 computeTitleForContentCategory_: function(category) {
63 switch (category) {
64 case settings.ContentSettingsTypes.COOKIES:
65 return loadTimeData.getString('siteSettingsCookies');
66 case settings.ContentSettingsTypes.JAVASCRIPT:
67 return loadTimeData.getString('siteSettingsJavascript');
68 case settings.ContentSettingsTypes.FULLSCREEN:
69 return loadTimeData.getString('siteSettingsFullscreen');
70 case settings.ContentSettingsTypes.POPUPS:
71 return loadTimeData.getString('siteSettingsPopups');
72 case settings.ContentSettingsTypes.GEOLOCATION:
73 return loadTimeData.getString('siteSettingsLocation');
74 case settings.ContentSettingsTypes.NOTIFICATION:
75 return loadTimeData.getString('siteSettingsNotifications');
76 case settings.ContentSettingsTypes.CAMERA:
77 return loadTimeData.getString('siteSettingsCamera');
78 case settings.ContentSettingsTypes.MIC:
79 return loadTimeData.getString('siteSettingsMic');
80 default:
81 assertNotReached();
82 return '';
83 }
84 },
85
86 /**
87 * A utility function to compute the name of the pref for the category.
88 * @param {number} category The category to find the pref name for.
89 * @return {string} The pref name for the given category.
90 * @protected
91 */
92 computeCategoryPrefName_: function(category) {
93 return 'profile.default_content_setting_values.' +
94 this.computeCategorySuffix_(category);
95 },
96
97 /**
98 * A utility function to compute the name of the pref for the exceptions
99 * for a given category.
100 * @param {number} category The category to find the pref name for.
101 * @return {string} The pref name for the given category exceptions.
102 * @protected
103 */
104 computeCategoryExceptionsPrefName_: function(category) {
105 return 'profile.content_settings.exceptions.' +
106 this.computeCategorySuffix_(category);
107 },
108
109 /**
110 * A utility function to convert the category enum into its text
111 * representation, for use with prefs.
112 * @param {number} category The category to find the pref name for.
113 * @return {string} The pref name (suffix) for the given category.
114 * @protected
115 */
116 computeCategorySuffix_: function(category) {
117 switch (category) {
118 case settings.ContentSettingsTypes.COOKIES:
119 return 'cookies';
120 case settings.ContentSettingsTypes.JAVASCRIPT:
121 return 'javascript';
122 case settings.ContentSettingsTypes.FULLSCREEN:
123 return 'fullscreen';
124 case settings.ContentSettingsTypes.POPUPS:
125 return 'popups';
126 case settings.ContentSettingsTypes.GEOLOCATION:
127 return 'geolocation';
128 case settings.ContentSettingsTypes.NOTIFICATION:
129 return 'notifications';
130 case settings.ContentSettingsTypes.CAMERA:
131 return 'media_stream_camera';
132 case settings.ContentSettingsTypes.MIC:
133 return 'media_stream_mic';
134 default:
135 assertNotReached();
136 return '';
137 }
138 },
139
140 /**
141 * A utility function to compute the description for the category.
142 * @param {number} category The category to show the description for.
143 * @param {boolean} categoryEnabled The state of the global toggle.
144 * @return {string} The category description.
145 * @protected
Dan Beam 2015/10/30 20:23:54 drop all the _s
Finnur 2015/11/02 10:43:48 Done.
146 */
147 computeCategoryDesc_: function(category, categoryEnabled) {
148 switch (category) {
149 case settings.ContentSettingsTypes.JAVASCRIPT:
150 // "Allowed (recommended)" vs "Blocked".
151 return categoryEnabled ?
152 loadTimeData.getString('siteSettingsAllowedRecommended') :
153 loadTimeData.getString('siteSettingsBlocked');
154 case settings.ContentSettingsTypes.POPUPS:
155 // "Allowed" vs "Blocked (recommended)".
156 return categoryEnabled ?
157 loadTimeData.getString('siteSettingsAllowed') :
158 loadTimeData.getString('siteSettingsBlockedRecommended');
159 case settings.ContentSettingsTypes.NOTIFICATION:
160 // "Ask before sending (recommended)" vs "Blocked".
161 return categoryEnabled ?
162 loadTimeData.getString('siteSettingsAskBeforeSending') :
163 loadTimeData.getString('siteSettingsBlocked');
164 case settings.ContentSettingsTypes.GEOLOCATION:
165 case settings.ContentSettingsTypes.CAMERA:
166 case settings.ContentSettingsTypes.MIC:
167 // "Ask before accessing (recommended)" vs "Blocked".
168 return categoryEnabled ?
169 loadTimeData.getString('siteSettingsAskBeforeAccessing') :
170 loadTimeData.getString('siteSettingsBlocked');
171 case settings.ContentSettingsTypes.FULLSCREEN:
172 // "Allowed" vs. "Ask first (recommended)".
173 return categoryEnabled ?
174 loadTimeData.getString('siteSettingsAllowed') :
175 loadTimeData.getString('siteSettingsAskFirstRecommended');
176 case settings.ContentSettingsTypes.COOKIES:
177 // "Allow sites to save and read cookie data" vs "Blocked".
178 return categoryEnabled ?
179 loadTimeData.getString('siteSettingsCookiesAllowed') :
180 loadTimeData.getString('siteSettingsBlocked');
181 default:
182 assertNotReached();
183 return '';
184 }
185 },
186 };
187
188 /** @polymerBehavior */
189 var SiteSettingsBehavior = [PrefsBehavior, SiteSettingsBehaviorImpl];
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698