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

Unified 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: 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/settings/site_settings/site_settings_behavior.js
diff --git a/chrome/browser/resources/settings/site_settings/site_settings_behavior.js b/chrome/browser/resources/settings/site_settings/site_settings_behavior.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d355adc66c46d715c57278667d15ef7561d5aa0
--- /dev/null
+++ b/chrome/browser/resources/settings/site_settings/site_settings_behavior.js
@@ -0,0 +1,189 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Behavior common to Site Settings classes.
+ */
+
+var SiteSettingsBehaviorImpl = {
+ /**
+ * Returns whether the category default is set to enabled or not.
+ * @param {number} category The category to check.
+ * @return {boolean} True if the category default is set to enabled.
+ * @protected
+ */
+ isCategoryAllowed: function(category) {
+ var pref = this.getPref(this.computeCategoryPrefName(category));
+
+ // FullScreen is Allow vs. Ask.
+ if (category == settings.ContentSettingsTypes.FULLSCREEN)
+ return pref.value != settings.DefaultValues.ASK;
+
+ return pref.value != settings.DefaultValues.BLOCK;
+ },
+
+ /**
+ * A utility function to compute the icon to use for the category.
+ * @param {number} category The category to show the icon for.
+ * @return {string} The id of the icon for the given category.
+ * @protected
+ */
+ computeIconForContentCategory: function(category) {
+ switch (category) {
+ case settings.ContentSettingsTypes.COOKIES:
+ return ''; // Haven't found a good cookies icon under iron-icons.
+ case settings.ContentSettingsTypes.JAVASCRIPT:
+ return 'icons:input';
+ case settings.ContentSettingsTypes.FULLSCREEN:
+ return 'icons:fullscreen';
+ case settings.ContentSettingsTypes.POPUPS:
+ return 'icons:open-in-new';
+ case settings.ContentSettingsTypes.GEOLOCATION:
+ return 'communication:location-on';
+ case settings.ContentSettingsTypes.NOTIFICATION:
+ return 'social:notifications';
+ case settings.ContentSettingsTypes.CAMERA:
+ return 'av:videocam';
+ case settings.ContentSettingsTypes.MIC:
+ return 'av:mic';
+ default:
+ assertNotReached();
+ return '';
+ }
+ },
+
+ /**
+ * A utility function to compute the title of the category.
+ * @param {number} category The category to show the title for.
+ * @return {string} The title for the given category.
+ * @protected
+ */
+ computeTitleForContentCategory: function(category) {
+ switch (category) {
+ case settings.ContentSettingsTypes.COOKIES:
+ return loadTimeData.getString('siteSettingsCookies');
+ case settings.ContentSettingsTypes.JAVASCRIPT:
+ return loadTimeData.getString('siteSettingsJavascript');
+ case settings.ContentSettingsTypes.FULLSCREEN:
+ return loadTimeData.getString('siteSettingsFullscreen');
+ case settings.ContentSettingsTypes.POPUPS:
+ return loadTimeData.getString('siteSettingsPopups');
+ case settings.ContentSettingsTypes.GEOLOCATION:
+ return loadTimeData.getString('siteSettingsLocation');
+ case settings.ContentSettingsTypes.NOTIFICATION:
+ return loadTimeData.getString('siteSettingsNotifications');
+ case settings.ContentSettingsTypes.CAMERA:
+ return loadTimeData.getString('siteSettingsCamera');
+ case settings.ContentSettingsTypes.MIC:
+ return loadTimeData.getString('siteSettingsMic');
+ default:
+ assertNotReached();
+ return '';
+ }
+ },
+
+ /**
+ * A utility function to compute the name of the pref for the category.
+ * @param {number} category The category to find the pref name for.
+ * @return {string} The pref name for the given category.
+ * @protected
+ */
+ computeCategoryPrefName: function(category) {
+ return 'profile.default_content_setting_values.' +
+ this.computeCategorySuffix(category);
+ },
+
+ /**
+ * A utility function to compute the name of the pref for the exceptions
+ * for a given category.
+ * @param {number} category The category to find the pref name for.
+ * @return {string} The pref name for the given category exceptions.
+ * @protected
+ */
+ computeCategoryExceptionsPrefName: function(category) {
+ return 'profile.content_settings.exceptions.' +
+ this.computeCategorySuffix(category);
+ },
+
+ /**
+ * A utility function to convert the category enum into its text
+ * representation, for use with prefs.
+ * @param {number} category The category to find the pref name for.
+ * @return {string} The pref name (suffix) for the given category.
+ * @protected
+ */
+ computeCategorySuffix: function(category) {
+ switch (category) {
+ case settings.ContentSettingsTypes.COOKIES:
+ return 'cookies';
+ case settings.ContentSettingsTypes.JAVASCRIPT:
+ return 'javascript';
+ case settings.ContentSettingsTypes.FULLSCREEN:
+ return 'fullscreen';
+ case settings.ContentSettingsTypes.POPUPS:
+ return 'popups';
+ case settings.ContentSettingsTypes.GEOLOCATION:
+ return 'geolocation';
+ case settings.ContentSettingsTypes.NOTIFICATION:
+ return 'notifications';
+ case settings.ContentSettingsTypes.CAMERA:
+ return 'media_stream_camera';
+ case settings.ContentSettingsTypes.MIC:
+ return 'media_stream_mic';
+ default:
+ assertNotReached();
+ return '';
+ }
+ },
+
+ /**
+ * A utility function to compute the description for the category.
+ * @param {number} category The category to show the description for.
+ * @param {boolean} categoryEnabled The state of the global toggle.
+ * @return {string} The category description.
+ * @protected
+ */
+ computeCategoryDesc: function(category, categoryEnabled) {
+ switch (category) {
+ case settings.ContentSettingsTypes.JAVASCRIPT:
+ // "Allowed (recommended)" vs "Blocked".
+ return categoryEnabled ?
+ loadTimeData.getString('siteSettingsAllowedRecommended') :
+ loadTimeData.getString('siteSettingsBlocked');
+ case settings.ContentSettingsTypes.POPUPS:
+ // "Allowed" vs "Blocked (recommended)".
+ return categoryEnabled ?
+ loadTimeData.getString('siteSettingsAllowed') :
+ loadTimeData.getString('siteSettingsBlockedRecommended');
+ case settings.ContentSettingsTypes.NOTIFICATION:
+ // "Ask before sending (recommended)" vs "Blocked".
+ return categoryEnabled ?
+ loadTimeData.getString('siteSettingsAskBeforeSending') :
+ loadTimeData.getString('siteSettingsBlocked');
+ case settings.ContentSettingsTypes.GEOLOCATION:
+ case settings.ContentSettingsTypes.CAMERA:
+ case settings.ContentSettingsTypes.MIC:
+ // "Ask before accessing (recommended)" vs "Blocked".
+ return categoryEnabled ?
+ loadTimeData.getString('siteSettingsAskBeforeAccessing') :
+ loadTimeData.getString('siteSettingsBlocked');
+ case settings.ContentSettingsTypes.FULLSCREEN:
+ // "Allowed" vs. "Ask first (recommended)".
+ return categoryEnabled ?
+ loadTimeData.getString('siteSettingsAllowed') :
+ loadTimeData.getString('siteSettingsAskFirstRecommended');
+ case settings.ContentSettingsTypes.COOKIES:
+ // "Allow sites to save and read cookie data" vs "Blocked".
+ return categoryEnabled ?
+ loadTimeData.getString('siteSettingsCookiesAllowed') :
+ loadTimeData.getString('siteSettingsBlocked');
+ default:
+ assertNotReached();
+ return '';
+ }
+ },
+};
+
+/** @polymerBehavior */
+var SiteSettingsBehavior = [PrefsBehavior, SiteSettingsBehaviorImpl];

Powered by Google App Engine
This is Rietveld 408576698