Commit fc174649 authored by Ehimare Okoyomon's avatar Ehimare Okoyomon Committed by Commit Bot

Added Third Party Site exception label

This cl changed the display format of a site exception that applies
a rule to all third parties on a given site. Previously, the rule in
settings looked like this:
https://screenshot.googleplex.com/pDiF3NvoLFd.png
and now it looks like this:
https://screenshot.googleplex.com/6d5FtQkMcJ4.png

Bug: 998062
Change-Id: If98eee7323d6429c031dd602e0baf6443fbb2c6c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1816548
Commit-Queue: Ehimare Okoyomon <eokoyomon@chromium.org>
Reviewed-by: default avatarDan Beam <dbeam@chromium.org>
Reviewed-by: default avatarChristian Dullweber <dullweber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#700725}
parent c6c1bf57
......@@ -3604,6 +3604,9 @@
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_THIRD_PARTY_COOKIES" desc="Label for the confirmation dialog button to delete all cookies and site data for third-party contexts.">
Clear third-party cookies
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_THIRD_PARTY_COOKIES_EXCEPTION_LABEL" desc="Label for site exceptions that affect third party cookies.">
Including third-party cookies
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_COOKIE_REMOVE_DIALOG_TITLE" desc="Title of the dialog that warns about deleting all site data.">
Clear site data
</message>
......
......@@ -121,3 +121,10 @@ settings.SortMethod = {
MOST_VISITED: 'most-visited',
STORAGE: 'data-stored',
};
/**
* String representation of the wildcard used for universal
* match for SiteExceptions.
* @type {string}
*/
settings.SITE_EXCEPTION_WILDCARD = '*';
......@@ -36,16 +36,17 @@
<site-favicon url="[[model.origin]]"></site-favicon>
<div class="middle no-min-width">
<div class="text-elide">
<span class="url-directionality">[[model.displayName]]</span>
<span class="url-directionality">[[computeDisplayName_(model)]]
</span>
</div>
<!-- This div must not contain extra whitespace. -->
<div class="secondary text-elide"
id="siteDescription">[[siteDescription_]]</div>
id="siteDescription">[[computeSiteDescription_(model)]]</div>
</div>
<template is="dom-if" if="[[allowNavigateToSiteDetail_]]">
<cr-icon-button class="subpage-arrow"
aria-label$="[[model.displayName]]"
aria-label$="[[computeDisplayName_(model)]]"
aria-describedby="siteDescription" focus-row-control
focus-type="site-details"></cr-icon-button>
<div class="separator"></div>
......
......@@ -54,12 +54,6 @@ Polymer({
value: null,
},
/** @private */
siteDescription_: {
type: String,
computed: 'computeSiteDescription_(model)',
},
/** @private */
showPolicyPrefIndicator_: {
type: Boolean,
......@@ -125,35 +119,60 @@ Polymer({
new URLSearchParams('site=' + this.model.origin));
},
/**
* Returns the appropriate display name to show for the exception.
* This can, for example, be the website that is affected itself,
* or the website whose third parties are also affected.
* @return {string}
*/
computeDisplayName_: function() {
if (this.model.embeddingOrigin &&
this.model.category === settings.ContentSettingsTypes.COOKIES &&
this.model.origin.trim() == settings.SITE_EXCEPTION_WILDCARD) {
return this.model.embeddingOrigin;
}
return this.model.displayName;
},
/**
* Returns the appropriate site description to display. This can, for example,
* be blank, an 'embedded on <site>' or 'Current incognito session' (or a
* mix of the last two).
* @return {string} The site description.
* @return {string}
*/
computeSiteDescription_: function() {
let displayName = '';
let description = '';
if (this.model.embeddingOrigin) {
displayName = loadTimeData.getStringF(
'embeddedOnHost', this.sanitizePort(this.model.embeddingOrigin));
if (this.model.category === settings.ContentSettingsTypes.COOKIES &&
this.model.origin.trim() == settings.SITE_EXCEPTION_WILDCARD) {
description =
loadTimeData.getString(
'siteSettingsCookiesThirdPartyExceptionLabel');
} else {
description = loadTimeData.getStringF(
'embeddedOnHost', this.sanitizePort(this.model.embeddingOrigin));
}
} else if (this.category == settings.ContentSettingsTypes.GEOLOCATION) {
displayName = loadTimeData.getString('embeddedOnAnyHost');
description = loadTimeData.getString('embeddedOnAnyHost');
}
// <if expr="chromeos">
if (this.model.category === settings.ContentSettingsTypes.NOTIFICATIONS &&
this.model.showAndroidSmsNote) {
displayName = loadTimeData.getString('androidSmsNote');
description = loadTimeData.getString('androidSmsNote');
}
// </if>
if (this.model.incognito) {
if (displayName.length > 0) {
return loadTimeData.getStringF('embeddedIncognitoSite', displayName);
if (description.length > 0) {
description =
loadTimeData.getStringF('embeddedIncognitoSite', description);
} else {
description = loadTimeData.getString('incognitoSite');
}
return loadTimeData.getString('incognitoSite');
}
return displayName;
return description;
},
/**
......
......@@ -2987,6 +2987,8 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
IDS_SETTINGS_SITE_SETTINGS_THIRD_PARTY_COOKIE_REMOVE_CONFIRMATION},
{"siteSettingsCookiesClearThirdParty",
IDS_SETTINGS_SITE_SETTINGS_CLEAR_THIRD_PARTY_COOKIES},
{"siteSettingsCookiesThirdPartyExceptionLabel",
IDS_SETTINGS_SITE_SETTINGS_THIRD_PARTY_COOKIES_EXCEPTION_LABEL},
{"siteSettingsCookieRemoveDialogTitle",
IDS_SETTINGS_SITE_SETTINGS_COOKIE_REMOVE_DIALOG_TITLE},
{"siteSettingsCookieRemoveMultipleConfirmation",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment