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

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

Issue 1546993003: Site Settings: Give each category its own route. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address feedback and add some tests Created 4 years, 11 months 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Behavior common to Site Settings classes. 6 * @fileoverview Behavior common to Site Settings classes.
7 */ 7 */
8 8
9 /** @polymerBehavior */ 9 /** @polymerBehavior */
10 var SiteSettingsBehaviorImpl = { 10 var SiteSettingsBehaviorImpl = {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 var key2 = origin + ',*'; 63 var key2 = origin + ',*';
64 if (pref.value[key1] != undefined) 64 if (pref.value[key1] != undefined)
65 pref.value[key1].setting = value; 65 pref.value[key1].setting = value;
66 if (pref.value[key2] != undefined) 66 if (pref.value[key2] != undefined)
67 pref.value[key2].setting = value; 67 pref.value[key2].setting = value;
68 this.setPrefValue( 68 this.setPrefValue(
69 this.computeCategoryExceptionsPrefName(category), pref.value); 69 this.computeCategoryExceptionsPrefName(category), pref.value);
70 }, 70 },
71 71
72 /** 72 /**
73 * A utility function to lookup a category name from its enum.
Finnur 2016/01/06 14:53:46 It is easier to review this file if you don't look
74 * @param {number} category The category ID to look up.
75 * @return {string} The category found or blank string if not found.
76 * @protected
77 */
78 computeCategoryTextId: function(category) {
79 switch (category) {
80 case settings.ContentSettingsTypes.CAMERA:
81 return 'camera';
82 case settings.ContentSettingsTypes.COOKIES:
83 return 'cookies';
84 case settings.ContentSettingsTypes.FULLSCREEN:
85 return 'fullscreen';
86 case settings.ContentSettingsTypes.GEOLOCATION:
87 return 'location';
88 case settings.ContentSettingsTypes.IMAGES:
89 return 'images';
90 case settings.ContentSettingsTypes.JAVASCRIPT:
91 return 'javascript';
92 case settings.ContentSettingsTypes.MIC:
93 return 'microphone';
94 case settings.ContentSettingsTypes.NOTIFICATIONS:
95 return 'notifications';
96 case settings.ContentSettingsTypes.POPUPS:
97 return 'popups';
98 default:
99 return '';
100 }
101 },
102
103 /**
104 * A utility function to lookup a category enum from its text id.
105 * @param {string} textId The category text id to look up.
106 * @return {number} The category found or -1 if not found.
107 * @protected
108 */
109 computeCategoryFromTextId: function(textId) {
110 switch (textId) {
111 case 'camera':
112 return settings.ContentSettingsTypes.CAMERA;
113 case 'cookies':
114 return settings.ContentSettingsTypes.COOKIES;
115 case 'fullscreen':
116 return settings.ContentSettingsTypes.FULLSCREEN;
117 case 'location':
118 return settings.ContentSettingsTypes.GEOLOCATION;
119 case 'images':
120 return settings.ContentSettingsTypes.IMAGES;
121 case 'javascript':
122 return settings.ContentSettingsTypes.JAVASCRIPT;
123 case 'microphone':
124 return settings.ContentSettingsTypes.MIC;
125 case 'notifications':
126 return settings.ContentSettingsTypes.NOTIFICATIONS;
127 case 'popups':
128 return settings.ContentSettingsTypes.POPUPS;
129 default:
130 return -1;
131 }
132 },
133
134 /**
73 * A utility function to compute the icon to use for the category. 135 * A utility function to compute the icon to use for the category.
74 * @param {number} category The category to show the icon for. 136 * @param {number} category The category to show the icon for.
75 * @return {string} The id of the icon for the given category. 137 * @return {string} The id of the icon for the given category.
76 * @protected 138 * @protected
77 */ 139 */
78 computeIconForContentCategory: function(category) { 140 computeIconForContentCategory: function(category) {
79 switch (category) { 141 switch (category) {
80 case settings.ContentSettingsTypes.CAMERA: 142 case settings.ContentSettingsTypes.CAMERA:
81 return 'av:videocam'; 143 return 'av:videocam';
82 case settings.ContentSettingsTypes.COOKIES: 144 case settings.ContentSettingsTypes.COOKIES:
83 return 'md-settings-icons:cookie'; 145 return 'md-settings-icons:cookie';
84 case settings.ContentSettingsTypes.FULLSCREEN: 146 case settings.ContentSettingsTypes.FULLSCREEN:
85 return 'icons:fullscreen'; 147 return 'icons:fullscreen';
86 case settings.ContentSettingsTypes.GEOLOCATION: 148 case settings.ContentSettingsTypes.GEOLOCATION:
87 return 'communication:location-on'; 149 return 'communication:location-on';
88 case settings.ContentSettingsTypes.IMAGES: 150 case settings.ContentSettingsTypes.IMAGES:
89 return 'image:photo'; 151 return 'image:photo';
90 case settings.ContentSettingsTypes.JAVASCRIPT: 152 case settings.ContentSettingsTypes.JAVASCRIPT:
91 return 'icons:input'; 153 return 'icons:input';
92 case settings.ContentSettingsTypes.MIC: 154 case settings.ContentSettingsTypes.MIC:
93 return 'av:mic'; 155 return 'av:mic';
94 case settings.ContentSettingsTypes.NOTIFICATION: 156 case settings.ContentSettingsTypes.NOTIFICATIONS:
95 return 'social:notifications'; 157 return 'social:notifications';
96 case settings.ContentSettingsTypes.POPUPS: 158 case settings.ContentSettingsTypes.POPUPS:
97 return 'icons:open-in-new'; 159 return 'icons:open-in-new';
98 default: 160 default:
99 assertNotReached(); 161 assertNotReached();
100 return ''; 162 return '';
101 } 163 }
102 }, 164 },
103 165
104 /** 166 /**
(...skipping 11 matching lines...) Expand all
116 case settings.ContentSettingsTypes.FULLSCREEN: 178 case settings.ContentSettingsTypes.FULLSCREEN:
117 return loadTimeData.getString('siteSettingsFullscreen'); 179 return loadTimeData.getString('siteSettingsFullscreen');
118 case settings.ContentSettingsTypes.GEOLOCATION: 180 case settings.ContentSettingsTypes.GEOLOCATION:
119 return loadTimeData.getString('siteSettingsLocation'); 181 return loadTimeData.getString('siteSettingsLocation');
120 case settings.ContentSettingsTypes.IMAGES: 182 case settings.ContentSettingsTypes.IMAGES:
121 return loadTimeData.getString('siteSettingsImages'); 183 return loadTimeData.getString('siteSettingsImages');
122 case settings.ContentSettingsTypes.JAVASCRIPT: 184 case settings.ContentSettingsTypes.JAVASCRIPT:
123 return loadTimeData.getString('siteSettingsJavascript'); 185 return loadTimeData.getString('siteSettingsJavascript');
124 case settings.ContentSettingsTypes.MIC: 186 case settings.ContentSettingsTypes.MIC:
125 return loadTimeData.getString('siteSettingsMic'); 187 return loadTimeData.getString('siteSettingsMic');
126 case settings.ContentSettingsTypes.NOTIFICATION: 188 case settings.ContentSettingsTypes.NOTIFICATIONS:
127 return loadTimeData.getString('siteSettingsNotifications'); 189 return loadTimeData.getString('siteSettingsNotifications');
128 case settings.ContentSettingsTypes.POPUPS: 190 case settings.ContentSettingsTypes.POPUPS:
129 return loadTimeData.getString('siteSettingsPopups'); 191 return loadTimeData.getString('siteSettingsPopups');
130 default: 192 default:
131 assertNotReached(); 193 assertNotReached();
132 return ''; 194 return '';
133 } 195 }
134 }, 196 },
135 197
136 /** 198 /**
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 case settings.ContentSettingsTypes.FULLSCREEN: 234 case settings.ContentSettingsTypes.FULLSCREEN:
173 return 'fullscreen'; 235 return 'fullscreen';
174 case settings.ContentSettingsTypes.GEOLOCATION: 236 case settings.ContentSettingsTypes.GEOLOCATION:
175 return 'geolocation'; 237 return 'geolocation';
176 case settings.ContentSettingsTypes.IMAGES: 238 case settings.ContentSettingsTypes.IMAGES:
177 return 'images'; 239 return 'images';
178 case settings.ContentSettingsTypes.JAVASCRIPT: 240 case settings.ContentSettingsTypes.JAVASCRIPT:
179 return 'javascript'; 241 return 'javascript';
180 case settings.ContentSettingsTypes.MIC: 242 case settings.ContentSettingsTypes.MIC:
181 return 'media_stream_mic'; 243 return 'media_stream_mic';
182 case settings.ContentSettingsTypes.NOTIFICATION: 244 case settings.ContentSettingsTypes.NOTIFICATIONS:
183 return 'notifications'; 245 return 'notifications';
184 case settings.ContentSettingsTypes.POPUPS: 246 case settings.ContentSettingsTypes.POPUPS:
185 return 'popups'; 247 return 'popups';
186 default: 248 default:
187 assertNotReached(); 249 assertNotReached();
188 return ''; 250 return '';
189 } 251 }
190 }, 252 },
191 253
192 /** 254 /**
(...skipping 16 matching lines...) Expand all
209 loadTimeData.getString('siteSettingsAllowedRecommended') : 271 loadTimeData.getString('siteSettingsAllowedRecommended') :
210 loadTimeData.getString('siteSettingsAllowed'); 272 loadTimeData.getString('siteSettingsAllowed');
211 case settings.ContentSettingsTypes.POPUPS: 273 case settings.ContentSettingsTypes.POPUPS:
212 // "Allowed" vs "Blocked (recommended)". 274 // "Allowed" vs "Blocked (recommended)".
213 if (categoryEnabled) { 275 if (categoryEnabled) {
214 return loadTimeData.getString('siteSettingsAllowed'); 276 return loadTimeData.getString('siteSettingsAllowed');
215 } 277 }
216 return showRecommendation ? 278 return showRecommendation ?
217 loadTimeData.getString('siteSettingsBlockedRecommended') : 279 loadTimeData.getString('siteSettingsBlockedRecommended') :
218 loadTimeData.getString('siteSettingsBlocked'); 280 loadTimeData.getString('siteSettingsBlocked');
219 case settings.ContentSettingsTypes.NOTIFICATION: 281 case settings.ContentSettingsTypes.NOTIFICATIONS:
220 // "Ask before sending (recommended)" vs "Blocked". 282 // "Ask before sending (recommended)" vs "Blocked".
221 if (!categoryEnabled) { 283 if (!categoryEnabled) {
222 return loadTimeData.getString('siteSettingsBlocked'); 284 return loadTimeData.getString('siteSettingsBlocked');
223 } 285 }
224 return showRecommendation ? 286 return showRecommendation ?
225 loadTimeData.getString('siteSettingsAskBeforeSendingRecommended') : 287 loadTimeData.getString('siteSettingsAskBeforeSendingRecommended') :
226 loadTimeData.getString('siteSettingsAskBeforeSending'); 288 loadTimeData.getString('siteSettingsAskBeforeSending');
227 case settings.ContentSettingsTypes.GEOLOCATION: 289 case settings.ContentSettingsTypes.GEOLOCATION:
228 case settings.ContentSettingsTypes.CAMERA: 290 case settings.ContentSettingsTypes.CAMERA:
229 case settings.ContentSettingsTypes.MIC: 291 case settings.ContentSettingsTypes.MIC:
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 return settings.ContentSettingsTypes[type]; 339 return settings.ContentSettingsTypes[type];
278 } 340 }
279 } 341 }
280 assertNotReached(); 342 assertNotReached();
281 return 0; 343 return 0;
282 }, 344 },
283 }; 345 };
284 346
285 /** @polymerBehavior */ 347 /** @polymerBehavior */
286 var SiteSettingsBehavior = [PrefsBehavior, SiteSettingsBehaviorImpl]; 348 var SiteSettingsBehavior = [PrefsBehavior, SiteSettingsBehaviorImpl];
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698