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 |
index c541b8db9f1ff136caaf0b309b88974d66b5dbb9..6d21fed4a9fc4d8aa19f84c6d5124f46a028d3b8 100644 |
--- a/chrome/browser/resources/settings/site_settings/site_settings_behavior.js |
+++ b/chrome/browser/resources/settings/site_settings/site_settings_behavior.js |
@@ -10,10 +10,10 @@ |
var SiteSettingsBehaviorImpl = { |
properties: { |
/** |
- * The ID of the category this element is displaying data for. |
+ * The string ID of the category this element is displaying data for. |
* See site_settings/constants.js for possible values. |
*/ |
- category: Number, |
+ category: String, |
/** |
* The browser proxy used to retrieve and change information about site |
@@ -34,7 +34,7 @@ var SiteSettingsBehaviorImpl = { |
* for. |
* @param {string} secondaryPattern The secondary pattern to reset the |
* permission for. |
- * @param {number} category The category permission to change. |
+ * @param {string} category The category permission to change. |
* @protected |
*/ |
resetCategoryPermissionForOrigin: function( |
@@ -49,7 +49,7 @@ var SiteSettingsBehaviorImpl = { |
* for. |
* @param {string} secondaryPattern The secondary pattern to change the |
* permission for. |
- * @param {number} category The category permission to change. |
+ * @param {string} category The category permission to change. |
* @param {string} value What value to set the permission to. |
* @protected |
*/ |
@@ -61,12 +61,16 @@ var SiteSettingsBehaviorImpl = { |
/** |
* A utility function to lookup a category name from its enum. |
- * @param {number} category The category ID to look up. |
+ * @param {string} category The category ID to look up. |
* @return {string} The category found or blank string if not found. |
* @protected |
*/ |
computeCategoryTextId: function(category) { |
michaelpg
2016/06/02 12:58:30
Can you adjust the IDs to match so you don't need
Finnur
2016/06/02 17:31:36
This was my thinking at first too, but the problem
michaelpg
2016/06/03 13:37:14
Cool, makes sense then.
|
switch (category) { |
+ case settings.ContentSettingsTypes.AUTOMATIC_DOWNLOADS: |
+ return 'automatic-downloads'; |
+ case settings.ContentSettingsTypes.BACKGROUND_SYNC: |
+ return 'background-sync'; |
case settings.ContentSettingsTypes.CAMERA: |
return 'camera'; |
case settings.ContentSettingsTypes.COOKIES: |
@@ -77,12 +81,18 @@ var SiteSettingsBehaviorImpl = { |
return 'images'; |
case settings.ContentSettingsTypes.JAVASCRIPT: |
return 'javascript'; |
+ case settings.ContentSettingsTypes.KEYGEN: |
+ return 'keygen'; |
case settings.ContentSettingsTypes.MIC: |
return 'microphone'; |
case settings.ContentSettingsTypes.NOTIFICATIONS: |
return 'notifications'; |
+ case settings.ContentSettingsTypes.PLUGINS: |
+ return 'plugins'; |
case settings.ContentSettingsTypes.POPUPS: |
return 'popups'; |
+ case settings.ContentSettingsTypes.UNSANDBOXED_PLUGINS: |
+ return 'unsandboxed-plugins'; |
default: |
return ''; |
} |
@@ -92,12 +102,17 @@ var SiteSettingsBehaviorImpl = { |
* A utility function to compute the icon to use for the category, both for |
* the overall category as well as the individual permission in the details |
* for a site. |
- * @param {number} category The category to show the icon for. |
+ * @param {string} category The category to show the icon for. |
* @return {string} The id of the icon for the given category. |
* @protected |
*/ |
computeIconForContentCategory: function(category) { |
+ // TODO(finnur): Get missing image assets from designer. |
switch (category) { |
+ case settings.ContentSettingsTypes.AUTOMATIC_DOWNLOADS: |
+ return ''; |
+ case settings.ContentSettingsTypes.BACKGROUND_SYNC: |
+ return ''; |
case settings.ContentSettingsTypes.CAMERA: |
return 'settings:videocam'; |
case settings.ContentSettingsTypes.COOKIES: |
@@ -110,12 +125,18 @@ var SiteSettingsBehaviorImpl = { |
return 'settings:photo'; |
case settings.ContentSettingsTypes.JAVASCRIPT: |
return 'settings:input'; |
+ case settings.ContentSettingsTypes.KEYGEN: |
+ return ''; |
case settings.ContentSettingsTypes.MIC: |
return 'settings:mic'; |
case settings.ContentSettingsTypes.NOTIFICATIONS: |
return 'settings:notifications'; |
+ case settings.ContentSettingsTypes.PLUGINS: |
+ return ''; |
case settings.ContentSettingsTypes.POPUPS: |
return 'settings:open-in-new'; |
+ case settings.ContentSettingsTypes.UNSANDBOXED_PLUGINS: |
+ return ''; |
default: |
assertNotReached('Invalid category: ' + category); |
return ''; |
@@ -126,12 +147,16 @@ var SiteSettingsBehaviorImpl = { |
* A utility function to compute the title of the category, both for |
* the overall category as well as the individual permission in the details |
* for a site. |
- * @param {number} category The category to show the title for. |
+ * @param {string} 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.AUTOMATIC_DOWNLOADS: |
+ return loadTimeData.getString('siteSettingsAutomaticDownloads'); |
+ case settings.ContentSettingsTypes.BACKGROUND_SYNC: |
+ return loadTimeData.getString('siteSettingsBackgroundSync'); |
case settings.ContentSettingsTypes.CAMERA: |
return loadTimeData.getString('siteSettingsCamera'); |
case settings.ContentSettingsTypes.COOKIES: |
@@ -144,12 +169,18 @@ var SiteSettingsBehaviorImpl = { |
return loadTimeData.getString('siteSettingsImages'); |
case settings.ContentSettingsTypes.JAVASCRIPT: |
return loadTimeData.getString('siteSettingsJavascript'); |
+ case settings.ContentSettingsTypes.KEYGEN: |
+ return loadTimeData.getString('siteSettingsKeygen'); |
case settings.ContentSettingsTypes.MIC: |
return loadTimeData.getString('siteSettingsMic'); |
case settings.ContentSettingsTypes.NOTIFICATIONS: |
return loadTimeData.getString('siteSettingsNotifications'); |
+ case settings.ContentSettingsTypes.PLUGINS: |
+ return loadTimeData.getString('siteSettingsPlugins'); |
case settings.ContentSettingsTypes.POPUPS: |
return loadTimeData.getString('siteSettingsPopups'); |
+ case settings.ContentSettingsTypes.UNSANDBOXED_PLUGINS: |
+ return loadTimeData.getString('siteSettingsUnsandboxedPlugins'); |
default: |
assertNotReached('Invalid category: ' + category); |
return ''; |
@@ -158,7 +189,7 @@ var SiteSettingsBehaviorImpl = { |
/** |
* A utility function to compute the description for the category. |
- * @param {number} category The category to show the description for. |
+ * @param {string} category The category to show the description for. |
* @param {boolean} categoryEnabled The state of the global toggle. |
* @param {boolean} showRecommendation Whether to show the '(recommended)' |
* label prefix. |
@@ -191,8 +222,8 @@ var SiteSettingsBehaviorImpl = { |
return showRecommendation ? |
loadTimeData.getString('siteSettingsAskBeforeSendingRecommended') : |
loadTimeData.getString('siteSettingsAskBeforeSending'); |
- case settings.ContentSettingsTypes.GEOLOCATION: |
case settings.ContentSettingsTypes.CAMERA: |
+ case settings.ContentSettingsTypes.GEOLOCATION: |
case settings.ContentSettingsTypes.MIC: |
// "Ask before accessing (recommended)" vs "Blocked". |
if (!categoryEnabled) { |
@@ -217,6 +248,49 @@ var SiteSettingsBehaviorImpl = { |
return showRecommendation ? |
loadTimeData.getString('siteSettingsShowAllRecommended') : |
loadTimeData.getString('siteSettingsShowAll'); |
+ case settings.ContentSettingsTypes.PLUGINS: |
+ // "Detect and run important content (recommended)" vs "Let me choose". |
+ if (!categoryEnabled) { |
+ return loadTimeData.getString('siteSettingsLetMeChoose'); |
+ } |
+ return showRecommendation ? |
+ loadTimeData.getString( |
+ 'siteSettingsDetectAndRunImportantRecommended') : |
+ loadTimeData.getString('siteSettingsDetectAndRunImportant'); |
+ case settings.ContentSettingsTypes.BACKGROUND_SYNC: |
+ // "Allow sites to finish sending and receiving data" vs "Do not allow". |
+ if (!categoryEnabled) { |
+ return loadTimeData.getString('siteSettingsBackgroundSyncBlocked'); |
+ } |
+ return showRecommendation ? |
+ loadTimeData.getString( |
+ 'siteSettingsAllowRecentlyClosedSitesRecommended') : |
+ loadTimeData.getString('siteSettingsAllowRecentlyClosedSites'); |
+ case settings.ContentSettingsTypes.KEYGEN: |
+ // "Allow sites to use keygen" vs "Do not allow". |
+ if (categoryEnabled) { |
+ return loadTimeData.getString('siteSettingsKeygenAllow'); |
+ } |
+ return showRecommendation ? |
+ loadTimeData.getString('siteSettingsKeygenBlockRecommended') : |
+ loadTimeData.getString('siteSettingsKeygenBlock'); |
+ case settings.ContentSettingsTypes.AUTOMATIC_DOWNLOADS: |
+ // "Ask when a site wants to auto-download multiple" vs "Do not allow". |
+ if (!categoryEnabled) { |
+ return loadTimeData.getString('siteSettingsAutoDownloadBlock'); |
+ } |
+ return showRecommendation ? |
+ loadTimeData.getString('siteSettingsAutoDownloadAskRecommended') : |
+ loadTimeData.getString('siteSettingsAutoDownloadAsk'); |
+ case settings.ContentSettingsTypes.UNSANDBOXED_PLUGINS: |
+ // "Ask when a plugin accesses your computer" vs "Do not allow". |
+ if (!categoryEnabled) { |
+ return loadTimeData.getString('siteSettingsUnsandboxedPluginsBlock'); |
+ } |
+ return showRecommendation ? |
+ loadTimeData.getString( |
+ 'siteSettingsUnsandboxedPluginsAskRecommended') : |
+ loadTimeData.getString('siteSettingsUnsandboxedPluginsAsk'); |
default: |
assertNotReached(); |
return ''; |
@@ -252,6 +326,37 @@ var SiteSettingsBehaviorImpl = { |
}, |
/** |
+ * Adds the wildcard prefix to a pattern string. |
+ * @param {string} pattern The pattern to add the wildcard to. |
+ * @return {string} The resulting pattern. |
+ * @private |
+ */ |
+ addPatternWildcard_: function(pattern) { |
+ if (pattern.startsWith('http://')) |
+ return pattern.replace('http://', 'http://[*.]'); |
+ else if (pattern.startsWith('https://')) |
+ return pattern.replace('https://', 'https://[*.]'); |
+ else |
+ return '[*.]' + pattern; |
+ }, |
+ |
+ /** |
+ * Removes the wildcard prefix from a pattern string. |
+ * @param {string} pattern The pattern to remove the wildcard from. |
+ * @return {string} The resulting pattern. |
+ * @private |
+ */ |
+ removePatternWildcard_: function(pattern) { |
+ if (pattern.startsWith('http://[*.]')) |
+ return pattern.replace('http://[*.]', 'http://'); |
+ else if (pattern.startsWith('https://[*.]')) |
+ return pattern.replace('https://[*.]', 'https://'); |
+ else if (pattern.startsWith('[*.]')) |
+ return pattern.substring(4, pattern.length); |
+ return pattern; |
+ }, |
+ |
+ /** |
* Returns the icon to use for a given site. |
* @param {SiteException} site The url of the site to fetch the icon for. |
* @return {string} The background-image style with the favicon. |