Version 1.6.5
This commit is contained in:
		
							parent
							
								
									4d9e066781
								
							
						
					
					
						commit
						f9289d9216
					
				
							
								
								
									
										16
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| 
						 | 
					@ -4,6 +4,22 @@ All notable changes to this project will be documented in this file.
 | 
				
			||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 | 
					The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 | 
				
			||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 | 
					and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [1.6.5] - 2019-06-12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Compatibility note
 | 
				
			||||||
 | 
					- Require Firefox >= 55
 | 
				
			||||||
 | 
					- Require Chrome >= 22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Added
 | 
				
			||||||
 | 
					- Added support for fragment cleaning
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Fixed
 | 
				
			||||||
 | 
					- [#171](https://gitlab.com/KevinRoebert/ClearUrls/issues/171)
 | 
				
			||||||
 | 
					- [#191](https://gitlab.com/KevinRoebert/ClearUrls/issues/191)
 | 
				
			||||||
 | 
					- [#192](https://gitlab.com/KevinRoebert/ClearUrls/issues/192)
 | 
				
			||||||
 | 
					- [#193](https://gitlab.com/KevinRoebert/ClearUrls/issues/193)
 | 
				
			||||||
 | 
					- [#194](https://gitlab.com/KevinRoebert/ClearUrls/issues/194)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## [1.6.4] - 2019-05-07
 | 
					## [1.6.4] - 2019-05-07
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Compatibility note
 | 
					### Compatibility note
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										60
									
								
								clearurls.js
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								clearurls.js
									
									
									
									
									
								
							| 
						 | 
					@ -41,12 +41,20 @@ var lastVisited = "";
 | 
				
			||||||
function removeFieldsFormURL(provider, pureUrl)
 | 
					function removeFieldsFormURL(provider, pureUrl)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    var url = pureUrl;
 | 
					    var url = pureUrl;
 | 
				
			||||||
    var domain = url.replace(new RegExp("\\?.*", "i"), "");
 | 
					    var domain = "";
 | 
				
			||||||
 | 
					    var fragments = "";
 | 
				
			||||||
    var fields = "";
 | 
					    var fields = "";
 | 
				
			||||||
    var rules = provider.getRules();
 | 
					    var rules = provider.getRules();
 | 
				
			||||||
    var changes = false;
 | 
					    var changes = false;
 | 
				
			||||||
    var cancel = false;
 | 
					    var cancel = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(existsFragments(url)) {
 | 
				
			||||||
 | 
					        domain = url.replace(new RegExp("#.*", "i"), "");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if(existsFields(url)) {
 | 
				
			||||||
 | 
					        domain = url.replace(new RegExp("\\?.*", "i"), "");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
    * Expand the url by provider redirections. So no tracking on
 | 
					    * Expand the url by provider redirections. So no tracking on
 | 
				
			||||||
    * url redirections form sites to sites.
 | 
					    * url redirections form sites to sites.
 | 
				
			||||||
| 
						 | 
					@ -65,28 +73,33 @@ function removeFieldsFormURL(provider, pureUrl)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
    * Only test for matches, if there are fields that can be cleaned.
 | 
					    * Only test for matches, if there are fields or fragments that can be cleaned.
 | 
				
			||||||
    */
 | 
					    */
 | 
				
			||||||
    if(existsFields(url))
 | 
					    if(existsFields(url) || existsFragments(url))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /**
 | 
					        fields = extractFileds(url).rmEmpty().join("&");
 | 
				
			||||||
        * It must be non-greedy, because by default .* will match
 | 
					        fragments = extractFragments(url).rmEmpty().join("&");
 | 
				
			||||||
        * all ? chars. So the replace function delete everything
 | 
					 | 
				
			||||||
        * before the last ?. With adding a ? on the quantifier *,
 | 
					 | 
				
			||||||
        * we fixed this problem.
 | 
					 | 
				
			||||||
        */
 | 
					 | 
				
			||||||
        fields = "?"+url.replace(new RegExp(".*?\\?", "i"), "");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        rules.forEach(function(rule) {
 | 
					        rules.forEach(function(rule) {
 | 
				
			||||||
            var beforReplace = fields;
 | 
					            var beforReplace = fields;
 | 
				
			||||||
 | 
					            var beforReplaceFragments = fragments;
 | 
				
			||||||
            fields = fields.replace(new RegExp(rule, "gi"), "");
 | 
					            fields = fields.replace(new RegExp(rule, "gi"), "");
 | 
				
			||||||
 | 
					            fragments = fragments.replace(new RegExp(rule, "gi"), "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if(beforReplace !== fields)
 | 
					            if(beforReplace !== fields || beforReplaceFragments !== fragments)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                //Log the action
 | 
					                //Log the action
 | 
				
			||||||
                if(storage.loggingStatus)
 | 
					                if(storage.loggingStatus)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    pushToLog(domain+beforReplace, domain+"?"+extractFileds(fields).rmEmpty().join("&"), rule);
 | 
					                    var tempURL = domain;
 | 
				
			||||||
 | 
					                    var tempBeforeURL = domain;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    if(fields !== "") tempURL += "?"+fields;
 | 
				
			||||||
 | 
					                    if(fragments !== "") tempURL += "#"+fragments;
 | 
				
			||||||
 | 
					                    if(beforReplace !== "") tempBeforeURL += "?"+beforReplace;
 | 
				
			||||||
 | 
					                    if(beforReplaceFragments !== "") tempBeforeURL += "#"+beforReplaceFragments;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    pushToLog(tempBeforeURL, tempURL, rule);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if(badges[tabid] == null) badges[tabid] = 0;
 | 
					                if(badges[tabid] == null) badges[tabid] = 0;
 | 
				
			||||||
| 
						 | 
					@ -107,21 +120,12 @@ function removeFieldsFormURL(provider, pureUrl)
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        var finalFields = extractFileds(fields).rmEmpty();
 | 
					        var finalURL = domain;
 | 
				
			||||||
        if(finalFields.length > 0)
 | 
					
 | 
				
			||||||
        {
 | 
					        if(fields !== "") finalURL += "?"+fields;
 | 
				
			||||||
            url = domain+"?"+finalFields.join("&");
 | 
					        if(fragments !== "") finalURL += "#"+fragments;
 | 
				
			||||||
        }
 | 
					
 | 
				
			||||||
        else{
 | 
					        url = finalURL;
 | 
				
			||||||
            url = domain;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
        if(domain != url)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            url = domain;
 | 
					 | 
				
			||||||
            changes = true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(provider.isCaneling()){
 | 
					    if(provider.isCaneling()){
 | 
				
			||||||
| 
						 | 
					@ -359,7 +363,7 @@ function start()
 | 
				
			||||||
            * @param {boolean} isActive   Is this rule active?
 | 
					            * @param {boolean} isActive   Is this rule active?
 | 
				
			||||||
            */
 | 
					            */
 | 
				
			||||||
            this.addRule = function(rule, isActive = true) {
 | 
					            this.addRule = function(rule, isActive = true) {
 | 
				
			||||||
                rule = "([\\/|\\?]|(&|&))("+rule+"=[^\\/|\\?|&]*)";
 | 
					                rule = "([\\/]|(&|&))*("+rule+"=[^\\/|\\?|&]*)";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if(isActive)
 | 
					                if(isActive)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,6 @@ function cleanURLs() {
 | 
				
			||||||
        }).then((data) => {
 | 
					        }).then((data) => {
 | 
				
			||||||
            cleanedURLs.push(data.response);
 | 
					            cleanedURLs.push(data.response);
 | 
				
			||||||
            if(i >= length-1) {
 | 
					            if(i >= length-1) {
 | 
				
			||||||
                console.log("End of loop.");
 | 
					 | 
				
			||||||
                cleanTArea.val(cleanedURLs.join('\n'));
 | 
					                cleanTArea.val(cleanedURLs.join('\n'));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }, handleError);
 | 
					        }, handleError);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,16 +92,6 @@ function countFields(url)
 | 
				
			||||||
    return extractFileds(url).length;
 | 
					    return extractFileds(url).length;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
* Extract the fields from an url.
 | 
					 | 
				
			||||||
* @param  {String} url URL as String
 | 
					 | 
				
			||||||
* @return {Array}     Fields as array
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
function extractFileds(url)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return (url.match(/[^\/|\?|&]+=*[^\/|\?|&]+/gi) || []);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
* Returns true if fields exists.
 | 
					* Returns true if fields exists.
 | 
				
			||||||
* @param  {String}     url URL as String
 | 
					* @param  {String}     url URL as String
 | 
				
			||||||
| 
						 | 
					@ -115,6 +105,63 @@ function existsFields(url)
 | 
				
			||||||
    return (count > 0);
 | 
					    return (count > 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					* Extract the fields from an url.
 | 
				
			||||||
 | 
					* @param  {String} url URL as String
 | 
				
			||||||
 | 
					* @return {Array}     Fields as array
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					function extractFileds(url)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(existsFields(url)) {
 | 
				
			||||||
 | 
					        var fields = url.replace(new RegExp(".*?\\?", "i"), "");
 | 
				
			||||||
 | 
					        if(existsFragments(url)) {
 | 
				
			||||||
 | 
					            fields = fields.replace(new RegExp("#.*", "i"), "");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return (fields.match(/[^\/|\?|&]+=?[^\/|\?|&]?/gi) || []);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return [];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					* Return the number of fragments query strings.
 | 
				
			||||||
 | 
					* @param  {String}     url URL as String
 | 
				
			||||||
 | 
					* @return {int}        Number of fragments
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					function countFragments(url)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return extractFragments(url).length;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					* Extract the fragments from an url.
 | 
				
			||||||
 | 
					* @param  {String} url URL as String
 | 
				
			||||||
 | 
					* @return {Array}     fragments as array
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					function extractFragments(url)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(existsFragments(url)) {
 | 
				
			||||||
 | 
					        var fragments = url.replace(new RegExp(".*?#", "i"), "");
 | 
				
			||||||
 | 
					        return (fragments.match(/[^&]+=?[^&]*/gi) || []);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return [];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					* Returns true if fragments exists.
 | 
				
			||||||
 | 
					* @param  {String}     url URL as String
 | 
				
			||||||
 | 
					* @return {boolean}
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					function existsFragments(url)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    var matches = (url.match(/\#.+/i) || []);
 | 
				
			||||||
 | 
					    var count = matches.length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return (count > 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
* Load local saved data, if the browser is offline or
 | 
					* Load local saved data, if the browser is offline or
 | 
				
			||||||
* some other network trouble.
 | 
					* some other network trouble.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    "providers": {
 | 
					    "providers": {
 | 
				
			||||||
        "amazon": {
 | 
					        "amazon": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(amazon)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(amazon)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "pf_rd_[a-zA-Z]",
 | 
					                "pf_rd_[a-zA-Z]",
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "google": {
 | 
					        "google": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(google)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(google)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "ved",
 | 
					                "ved",
 | 
				
			||||||
| 
						 | 
					@ -117,36 +117,38 @@
 | 
				
			||||||
            "urlPattern": ".*",
 | 
					            "urlPattern": ".*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "utm_[a-zA-Z]*",
 | 
					                "(%3F)?utm_[a-zA-Z]*",
 | 
				
			||||||
                "ga_source",
 | 
					                "(%3F)?ga_source",
 | 
				
			||||||
                "ga_medium",
 | 
					                "(%3F)?ga_medium",
 | 
				
			||||||
                "ga_term",
 | 
					                "(%3F)?ga_term",
 | 
				
			||||||
                "ga_content",
 | 
					                "(%3F)?ga_content",
 | 
				
			||||||
                "ga_campaign",
 | 
					                "(%3F)?ga_campaign",
 | 
				
			||||||
                "ga_place",
 | 
					                "(%3F)?ga_place",
 | 
				
			||||||
                "yclid",
 | 
					                "(%3F)?yclid",
 | 
				
			||||||
                "_openstat",
 | 
					                "(%3F)?_openstat",
 | 
				
			||||||
                "fb_action_ids",
 | 
					                "(%3F)?fb_action_ids",
 | 
				
			||||||
                "fb_action_types",
 | 
					                "(%3F)?fb_action_types",
 | 
				
			||||||
                "fb_source",
 | 
					                "(%3F)?fb_source",
 | 
				
			||||||
                "fb_ref",
 | 
					                "(%3F)?fb_ref",
 | 
				
			||||||
                "fbclid",
 | 
					                "(%3F)?fbclid",
 | 
				
			||||||
                "action_object_map",
 | 
					                "(%3F)?action_object_map",
 | 
				
			||||||
                "action_type_map",
 | 
					                "(%3F)?action_type_map",
 | 
				
			||||||
                "action_ref_map",
 | 
					                "(%3F)?action_ref_map",
 | 
				
			||||||
                "gs_l",
 | 
					                "(%3F)?gs_l",
 | 
				
			||||||
                "mkt_tok",
 | 
					                "(%3F)?mkt_tok",
 | 
				
			||||||
                "hmb_campaign",
 | 
					                "(%3F)?hmb_campaign",
 | 
				
			||||||
                "hmb_medium",
 | 
					                "(%3F)?hmb_medium",
 | 
				
			||||||
                "hmb_source",
 | 
					                "(%3F)?hmb_source",
 | 
				
			||||||
                "[\\?|&]ref[\\_]?"
 | 
					                "(%3F)?[\\?|&]ref[\\_]?"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "exceptions": [
 | 
					            "exceptions": [
 | 
				
			||||||
                ".*([\\.]?matrix\\.org)(\\/_matrix)\\/.*",
 | 
					                ".*([\\.]?matrix\\.org)(\\/_matrix)\\/.*",
 | 
				
			||||||
                ".*([\\.]?prismic\\.io).*",
 | 
					                ".*([\\.]?prismic\\.io).*",
 | 
				
			||||||
                ".*([\\.]?gitlab\\.com).*",
 | 
					                ".*([\\.]?gitlab\\.com).*",
 | 
				
			||||||
                ".*([\\.]?gcsip\\.com).*[\\?|&]ref[\\_]?=[^\\/|\\?|&]*.*",
 | 
					                ".*([\\.]?gcsip\\.com).*[\\?|&]ref[\\_]?=[^\\/|\\?|&]*.*",
 | 
				
			||||||
                ".*([\\.]?cloudflare\\.com).*"
 | 
					                ".*([\\.]?cloudflare\\.com).*",
 | 
				
			||||||
 | 
					                ".*(myaccount.google\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
 | 
					                ".*([\\.]?tangerine\\.ca).*"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
| 
						 | 
					@ -186,7 +188,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "youtube": {
 | 
					        "youtube": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(youtube)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(youtube)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "feature",
 | 
					                "feature",
 | 
				
			||||||
| 
						 | 
					@ -199,7 +201,7 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "facebook": {
 | 
					        "facebook": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(facebook)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(facebook)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "hc_[a-zA-Z_%\\[\\]0-9]*",
 | 
					                "hc_[a-zA-Z_%\\[\\]0-9]*",
 | 
				
			||||||
| 
						 | 
					@ -227,16 +229,17 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "twitter": {
 | 
					        "twitter": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(twitter)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(twitter)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "(ref_)?src"
 | 
					                "(ref_)?src",
 | 
				
			||||||
 | 
					                "s"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "reddit": {
 | 
					        "reddit": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(reddit)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(reddit)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [],
 | 
					            "rules": [],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
| 
						 | 
					@ -246,7 +249,7 @@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        ,
 | 
					        ,
 | 
				
			||||||
        "netflix": {
 | 
					        "netflix": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(netflix)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(netflix)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "trackId",
 | 
					                "trackId",
 | 
				
			||||||
| 
						 | 
					@ -257,7 +260,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "techcrunch": {
 | 
					        "techcrunch": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?([\\.]?techcrunch\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?([\\.]?techcrunch\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "ncid",
 | 
					                "ncid",
 | 
				
			||||||
| 
						 | 
					@ -268,7 +271,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bing": {
 | 
					        "bing": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(bing)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(bing)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "cvid",
 | 
					                "cvid",
 | 
				
			||||||
| 
						 | 
					@ -283,7 +286,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "tweakers": {
 | 
					        "tweakers": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tweakers\\.net)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tweakers\\.net).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "nb",
 | 
					                "nb",
 | 
				
			||||||
| 
						 | 
					@ -293,7 +296,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "twitch": {
 | 
					        "twitch": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(twitch)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(twitch)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "tt_medium",
 | 
					                "tt_medium",
 | 
				
			||||||
| 
						 | 
					@ -303,7 +306,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "vivaldi": {
 | 
					        "vivaldi": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(vivaldi\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(vivaldi\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "pk_campaign",
 | 
					                "pk_campaign",
 | 
				
			||||||
| 
						 | 
					@ -313,7 +316,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "indeed": {
 | 
					        "indeed": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(indeed\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(indeed\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "from",
 | 
					                "from",
 | 
				
			||||||
| 
						 | 
					@ -324,7 +327,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "hhdotru": {
 | 
					        "hhdotru": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(hh\\.ru)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(hh\\.ru).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "vss",
 | 
					                "vss",
 | 
				
			||||||
| 
						 | 
					@ -340,7 +343,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "ebay": {
 | 
					        "ebay": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(ebay)(\\.[a-zA-Z]{2,})(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(ebay)(\\.[a-zA-Z]{2,}).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "_trkparms",
 | 
					                "_trkparms",
 | 
				
			||||||
| 
						 | 
					@ -351,7 +354,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "cnet": {
 | 
					        "cnet": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(cnet\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(cnet\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "ftag"
 | 
					                "ftag"
 | 
				
			||||||
| 
						 | 
					@ -360,7 +363,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "imdb.com": {
 | 
					        "imdb.com": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(imdb\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(imdb\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "ref_",
 | 
					                "ref_",
 | 
				
			||||||
| 
						 | 
					@ -370,7 +373,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "govdelivery.com": {
 | 
					        "govdelivery.com": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(govdelivery\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(govdelivery\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [],
 | 
					            "rules": [],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
| 
						 | 
					@ -380,7 +383,7 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "walmart.com": {
 | 
					        "walmart.com": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(walmart\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(walmart\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "u1",
 | 
					                "u1",
 | 
				
			||||||
| 
						 | 
					@ -390,7 +393,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "net-parade.it": {
 | 
					        "net-parade.it": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(net\\-parade\\.it)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(net\\-parade\\.it).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "pl"
 | 
					                "pl"
 | 
				
			||||||
| 
						 | 
					@ -399,7 +402,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "prvnizpravy.cz": {
 | 
					        "prvnizpravy.cz": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(prvnizpravy\\.cz)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(prvnizpravy\\.cz).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "xid"
 | 
					                "xid"
 | 
				
			||||||
| 
						 | 
					@ -408,7 +411,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "youku.com": {
 | 
					        "youku.com": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(youku\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(youku\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "spm",
 | 
					                "spm",
 | 
				
			||||||
| 
						 | 
					@ -418,7 +421,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "nytimes.com": {
 | 
					        "nytimes.com": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(nytimes\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(nytimes\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "smid"
 | 
					                "smid"
 | 
				
			||||||
| 
						 | 
					@ -427,7 +430,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "tchibo.de": {
 | 
					        "tchibo.de": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tchibo\\.de)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tchibo\\.de).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "wbdcd"
 | 
					                "wbdcd"
 | 
				
			||||||
| 
						 | 
					@ -436,7 +439,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "steampowered": {
 | 
					        "steampowered": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steampowered\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steampowered\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "snr=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
 | 
					                "snr=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
 | 
				
			||||||
| 
						 | 
					@ -445,7 +448,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "steamcommunity": {
 | 
					        "steamcommunity": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steamcommunity\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steamcommunity\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [],
 | 
					            "rules": [],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
| 
						 | 
					@ -454,7 +457,7 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "disq.us": {
 | 
					        "disq.us": {
 | 
				
			||||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(disq\\.us)(.*\\?.*)",
 | 
					            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(disq\\.us).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [],
 | 
					            "rules": [],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
| 
						 | 
					@ -472,7 +475,7 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "shutterstock.com": {
 | 
					        "shutterstock.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(shutterstock\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(shutterstock\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "src"
 | 
					                "src"
 | 
				
			||||||
| 
						 | 
					@ -481,7 +484,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "mozilla.org": {
 | 
					        "mozilla.org": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(mozilla\\.org)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(mozilla\\.org).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "src",
 | 
					                "src",
 | 
				
			||||||
| 
						 | 
					@ -491,7 +494,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "readdc.com": {
 | 
					        "readdc.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(readdc\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(readdc\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "ref"
 | 
					                "ref"
 | 
				
			||||||
| 
						 | 
					@ -500,7 +503,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "dailycodingproblem.com": {
 | 
					        "dailycodingproblem.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(dailycodingproblem\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(dailycodingproblem\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "email"
 | 
					                "email"
 | 
				
			||||||
| 
						 | 
					@ -509,7 +512,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "github.com": {
 | 
					        "github.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(github\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(github\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "email_token",
 | 
					                "email_token",
 | 
				
			||||||
| 
						 | 
					@ -519,7 +522,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "deviantart.com": {
 | 
					        "deviantart.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(deviantart\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(deviantart\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [],
 | 
					            "rules": [],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
| 
						 | 
					@ -528,7 +531,7 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "site2.com": {
 | 
					        "site2.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site2\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site2\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [],
 | 
					            "rules": [],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
| 
						 | 
					@ -537,7 +540,7 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "site.com": {
 | 
					        "site.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [],
 | 
					            "rules": [],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
| 
						 | 
					@ -546,7 +549,7 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "site3.com": {
 | 
					        "site3.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site3\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site3\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [],
 | 
					            "rules": [],
 | 
				
			||||||
            "exceptions": [],
 | 
					            "exceptions": [],
 | 
				
			||||||
| 
						 | 
					@ -555,7 +558,7 @@
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "aliexpress.com": {
 | 
					        "aliexpress.com": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(aliexpress\\.com)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(aliexpress\\.com).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "ws_ab_test",
 | 
					                "ws_ab_test",
 | 
				
			||||||
| 
						 | 
					@ -567,7 +570,7 @@
 | 
				
			||||||
            "redirections": []
 | 
					            "redirections": []
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "mozillazine.org": {
 | 
					        "mozillazine.org": {
 | 
				
			||||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(mozillazine\\.org)(.*\\?.*)",
 | 
					            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(mozillazine\\.org).*",
 | 
				
			||||||
            "completeProvider": false,
 | 
					            "completeProvider": false,
 | 
				
			||||||
            "rules": [
 | 
					            "rules": [
 | 
				
			||||||
                "sid"
 | 
					                "sid"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    "manifest_version": 2,
 | 
					    "manifest_version": 2,
 | 
				
			||||||
    "name": "ClearURLs",
 | 
					    "name": "ClearURLs",
 | 
				
			||||||
    "version": "1.6.4",
 | 
					    "version": "1.6.5",
 | 
				
			||||||
    "author": "Kevin R.",
 | 
					    "author": "Kevin R.",
 | 
				
			||||||
    "description": "Remove tracking elements form URLs.",
 | 
					    "description": "Remove tracking elements form URLs.",
 | 
				
			||||||
    "homepage_url": "https://gitlab.com/KevinRoebert/ClearUrls",
 | 
					    "homepage_url": "https://gitlab.com/KevinRoebert/ClearUrls",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user