Improve usability of domain profile condition

This commit is contained in:
toasted-nutbread 2019-11-23 10:28:37 -05:00
parent baf0325f62
commit b4c6fa2d37

View File

@ -17,6 +17,26 @@
*/
function _profileConditionTestDomain(urlDomain, domain) {
return (
urlDomain.endsWith(domain) &&
(
domain.length === urlDomain.length ||
urlDomain[urlDomain.length - domain.length - 1] === '.'
)
);
}
function _profileConditionTestDomainList(url, domainList) {
const urlDomain = new URL(url).hostname.toLowerCase();
for (const domain of domainList) {
if (_profileConditionTestDomain(urlDomain, domain)) {
return true;
}
}
return false;
}
const profileConditionsDescriptor = {
popupLevel: {
name: 'Popup Level',
@ -69,7 +89,7 @@ const profileConditionsDescriptor = {
transform: (optionValue) => optionValue.split(/[,;\s]+/).map(v => v.trim().toLowerCase()).filter(v => v.length > 0),
transformReverse: (transformedOptionValue) => transformedOptionValue.join(', '),
validateTransformed: (transformedOptionValue) => (transformedOptionValue.length > 0),
test: ({url}, transformedOptionValue) => (transformedOptionValue.indexOf(new URL(url).hostname.toLowerCase()) >= 0)
test: ({url}, transformedOptionValue) => _profileConditionTestDomainList(url, transformedOptionValue)
},
matchRegExp: {
name: 'Matches RegExp',