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/),
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
### Compatibility note
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										60
									
								
								clearurls.js
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								clearurls.js
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -41,12 +41,20 @@ var lastVisited = "";
 | 
			
		|||
function removeFieldsFormURL(provider, pureUrl)
 | 
			
		||||
{
 | 
			
		||||
    var url = pureUrl;
 | 
			
		||||
    var domain = url.replace(new RegExp("\\?.*", "i"), "");
 | 
			
		||||
    var domain = "";
 | 
			
		||||
    var fragments = "";
 | 
			
		||||
    var fields = "";
 | 
			
		||||
    var rules = provider.getRules();
 | 
			
		||||
    var changes = 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
 | 
			
		||||
    * 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))
 | 
			
		||||
    {
 | 
			
		||||
        /**
 | 
			
		||||
        * It must be non-greedy, because by default .* will match
 | 
			
		||||
        * 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"), "");
 | 
			
		||||
        fields = extractFileds(url).rmEmpty().join("&");
 | 
			
		||||
        fragments = extractFragments(url).rmEmpty().join("&");
 | 
			
		||||
 | 
			
		||||
        rules.forEach(function(rule) {
 | 
			
		||||
            var beforReplace = fields;
 | 
			
		||||
            var beforReplaceFragments = fragments;
 | 
			
		||||
            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
 | 
			
		||||
                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;
 | 
			
		||||
| 
						 | 
				
			
			@ -107,21 +120,12 @@ function removeFieldsFormURL(provider, pureUrl)
 | 
			
		|||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        var finalFields = extractFileds(fields).rmEmpty();
 | 
			
		||||
        if(finalFields.length > 0)
 | 
			
		||||
        {
 | 
			
		||||
            url = domain+"?"+finalFields.join("&");
 | 
			
		||||
        }
 | 
			
		||||
        else{
 | 
			
		||||
            url = domain;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        if(domain != url)
 | 
			
		||||
        {
 | 
			
		||||
            url = domain;
 | 
			
		||||
            changes = true;
 | 
			
		||||
        }
 | 
			
		||||
        var finalURL = domain;
 | 
			
		||||
 | 
			
		||||
        if(fields !== "") finalURL += "?"+fields;
 | 
			
		||||
        if(fragments !== "") finalURL += "#"+fragments;
 | 
			
		||||
 | 
			
		||||
        url = finalURL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(provider.isCaneling()){
 | 
			
		||||
| 
						 | 
				
			
			@ -359,7 +363,7 @@ function start()
 | 
			
		|||
            * @param {boolean} isActive   Is this rule active?
 | 
			
		||||
            */
 | 
			
		||||
            this.addRule = function(rule, isActive = true) {
 | 
			
		||||
                rule = "([\\/|\\?]|(&|&))("+rule+"=[^\\/|\\?|&]*)";
 | 
			
		||||
                rule = "([\\/]|(&|&))*("+rule+"=[^\\/|\\?|&]*)";
 | 
			
		||||
 | 
			
		||||
                if(isActive)
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,6 @@ function cleanURLs() {
 | 
			
		|||
        }).then((data) => {
 | 
			
		||||
            cleanedURLs.push(data.response);
 | 
			
		||||
            if(i >= length-1) {
 | 
			
		||||
                console.log("End of loop.");
 | 
			
		||||
                cleanTArea.val(cleanedURLs.join('\n'));
 | 
			
		||||
            }
 | 
			
		||||
        }, handleError);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,16 +92,6 @@ function countFields(url)
 | 
			
		|||
    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.
 | 
			
		||||
* @param  {String}     url URL as String
 | 
			
		||||
| 
						 | 
				
			
			@ -115,6 +105,63 @@ function existsFields(url)
 | 
			
		|||
    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
 | 
			
		||||
* some other network trouble.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
{
 | 
			
		||||
    "providers": {
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "pf_rd_[a-zA-Z]",
 | 
			
		||||
| 
						 | 
				
			
			@ -36,7 +36,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "ved",
 | 
			
		||||
| 
						 | 
				
			
			@ -117,36 +117,38 @@
 | 
			
		|||
            "urlPattern": ".*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "utm_[a-zA-Z]*",
 | 
			
		||||
                "ga_source",
 | 
			
		||||
                "ga_medium",
 | 
			
		||||
                "ga_term",
 | 
			
		||||
                "ga_content",
 | 
			
		||||
                "ga_campaign",
 | 
			
		||||
                "ga_place",
 | 
			
		||||
                "yclid",
 | 
			
		||||
                "_openstat",
 | 
			
		||||
                "fb_action_ids",
 | 
			
		||||
                "fb_action_types",
 | 
			
		||||
                "fb_source",
 | 
			
		||||
                "fb_ref",
 | 
			
		||||
                "fbclid",
 | 
			
		||||
                "action_object_map",
 | 
			
		||||
                "action_type_map",
 | 
			
		||||
                "action_ref_map",
 | 
			
		||||
                "gs_l",
 | 
			
		||||
                "mkt_tok",
 | 
			
		||||
                "hmb_campaign",
 | 
			
		||||
                "hmb_medium",
 | 
			
		||||
                "hmb_source",
 | 
			
		||||
                "[\\?|&]ref[\\_]?"
 | 
			
		||||
                "(%3F)?utm_[a-zA-Z]*",
 | 
			
		||||
                "(%3F)?ga_source",
 | 
			
		||||
                "(%3F)?ga_medium",
 | 
			
		||||
                "(%3F)?ga_term",
 | 
			
		||||
                "(%3F)?ga_content",
 | 
			
		||||
                "(%3F)?ga_campaign",
 | 
			
		||||
                "(%3F)?ga_place",
 | 
			
		||||
                "(%3F)?yclid",
 | 
			
		||||
                "(%3F)?_openstat",
 | 
			
		||||
                "(%3F)?fb_action_ids",
 | 
			
		||||
                "(%3F)?fb_action_types",
 | 
			
		||||
                "(%3F)?fb_source",
 | 
			
		||||
                "(%3F)?fb_ref",
 | 
			
		||||
                "(%3F)?fbclid",
 | 
			
		||||
                "(%3F)?action_object_map",
 | 
			
		||||
                "(%3F)?action_type_map",
 | 
			
		||||
                "(%3F)?action_ref_map",
 | 
			
		||||
                "(%3F)?gs_l",
 | 
			
		||||
                "(%3F)?mkt_tok",
 | 
			
		||||
                "(%3F)?hmb_campaign",
 | 
			
		||||
                "(%3F)?hmb_medium",
 | 
			
		||||
                "(%3F)?hmb_source",
 | 
			
		||||
                "(%3F)?[\\?|&]ref[\\_]?"
 | 
			
		||||
            ],
 | 
			
		||||
            "exceptions": [
 | 
			
		||||
                ".*([\\.]?matrix\\.org)(\\/_matrix)\\/.*",
 | 
			
		||||
                ".*([\\.]?prismic\\.io).*",
 | 
			
		||||
                ".*([\\.]?gitlab\\.com).*",
 | 
			
		||||
                ".*([\\.]?gcsip\\.com).*[\\?|&]ref[\\_]?=[^\\/|\\?|&]*.*",
 | 
			
		||||
                ".*([\\.]?cloudflare\\.com).*"
 | 
			
		||||
                ".*([\\.]?cloudflare\\.com).*",
 | 
			
		||||
                ".*(myaccount.google\\.[a-zA-Z]{2,}).*",
 | 
			
		||||
                ".*([\\.]?tangerine\\.ca).*"
 | 
			
		||||
            ],
 | 
			
		||||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
| 
						 | 
				
			
			@ -186,7 +188,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "feature",
 | 
			
		||||
| 
						 | 
				
			
			@ -199,7 +201,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "hc_[a-zA-Z_%\\[\\]0-9]*",
 | 
			
		||||
| 
						 | 
				
			
			@ -227,16 +229,17 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "(ref_)?src"
 | 
			
		||||
                "(ref_)?src",
 | 
			
		||||
                "s"
 | 
			
		||||
            ],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
| 
						 | 
				
			
			@ -246,7 +249,7 @@
 | 
			
		|||
        }
 | 
			
		||||
        ,
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "trackId",
 | 
			
		||||
| 
						 | 
				
			
			@ -257,7 +260,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "techcrunch": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?([\\.]?techcrunch\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?([\\.]?techcrunch\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "ncid",
 | 
			
		||||
| 
						 | 
				
			
			@ -268,7 +271,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "cvid",
 | 
			
		||||
| 
						 | 
				
			
			@ -283,7 +286,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "tweakers": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tweakers\\.net)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tweakers\\.net).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "nb",
 | 
			
		||||
| 
						 | 
				
			
			@ -293,7 +296,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "tt_medium",
 | 
			
		||||
| 
						 | 
				
			
			@ -303,7 +306,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "vivaldi": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(vivaldi\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(vivaldi\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "pk_campaign",
 | 
			
		||||
| 
						 | 
				
			
			@ -313,7 +316,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "indeed": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(indeed\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(indeed\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "from",
 | 
			
		||||
| 
						 | 
				
			
			@ -324,7 +327,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "hhdotru": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(hh\\.ru)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(hh\\.ru).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "vss",
 | 
			
		||||
| 
						 | 
				
			
			@ -340,7 +343,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "_trkparms",
 | 
			
		||||
| 
						 | 
				
			
			@ -351,7 +354,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "cnet": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(cnet\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(cnet\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "ftag"
 | 
			
		||||
| 
						 | 
				
			
			@ -360,7 +363,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "imdb.com": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(imdb\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(imdb\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "ref_",
 | 
			
		||||
| 
						 | 
				
			
			@ -370,7 +373,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "govdelivery.com": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(govdelivery\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(govdelivery\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
| 
						 | 
				
			
			@ -380,7 +383,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "walmart.com": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(walmart\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(walmart\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "u1",
 | 
			
		||||
| 
						 | 
				
			
			@ -390,7 +393,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "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,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "pl"
 | 
			
		||||
| 
						 | 
				
			
			@ -399,7 +402,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "prvnizpravy.cz": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(prvnizpravy\\.cz)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(prvnizpravy\\.cz).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "xid"
 | 
			
		||||
| 
						 | 
				
			
			@ -408,7 +411,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "youku.com": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(youku\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(youku\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "spm",
 | 
			
		||||
| 
						 | 
				
			
			@ -418,7 +421,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "nytimes.com": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(nytimes\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(nytimes\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "smid"
 | 
			
		||||
| 
						 | 
				
			
			@ -427,7 +430,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "tchibo.de": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tchibo\\.de)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tchibo\\.de).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "wbdcd"
 | 
			
		||||
| 
						 | 
				
			
			@ -436,7 +439,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "steampowered": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steampowered\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steampowered\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "snr=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
 | 
			
		||||
| 
						 | 
				
			
			@ -445,7 +448,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "steamcommunity": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steamcommunity\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steamcommunity\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
| 
						 | 
				
			
			@ -454,7 +457,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "disq.us": {
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(disq\\.us)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(disq\\.us).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
| 
						 | 
				
			
			@ -472,7 +475,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "shutterstock.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(shutterstock\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(shutterstock\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "src"
 | 
			
		||||
| 
						 | 
				
			
			@ -481,7 +484,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "mozilla.org": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(mozilla\\.org)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(mozilla\\.org).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "src",
 | 
			
		||||
| 
						 | 
				
			
			@ -491,7 +494,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "readdc.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(readdc\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(readdc\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "ref"
 | 
			
		||||
| 
						 | 
				
			
			@ -500,7 +503,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "dailycodingproblem.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(dailycodingproblem\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(dailycodingproblem\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "email"
 | 
			
		||||
| 
						 | 
				
			
			@ -509,7 +512,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "github.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(github\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(github\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "email_token",
 | 
			
		||||
| 
						 | 
				
			
			@ -519,7 +522,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "deviantart.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(deviantart\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(deviantart\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
| 
						 | 
				
			
			@ -528,7 +531,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "site2.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site2\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site2\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
| 
						 | 
				
			
			@ -537,7 +540,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "site.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
| 
						 | 
				
			
			@ -546,7 +549,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "site3.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site3\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(site3\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [],
 | 
			
		||||
            "exceptions": [],
 | 
			
		||||
| 
						 | 
				
			
			@ -555,7 +558,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "aliexpress.com": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(aliexpress\\.com)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(aliexpress\\.com).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "ws_ab_test",
 | 
			
		||||
| 
						 | 
				
			
			@ -567,7 +570,7 @@
 | 
			
		|||
            "redirections": []
 | 
			
		||||
        },
 | 
			
		||||
        "mozillazine.org": {
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(mozillazine\\.org)(.*\\?.*)",
 | 
			
		||||
            "urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(mozillazine\\.org).*",
 | 
			
		||||
            "completeProvider": false,
 | 
			
		||||
            "rules": [
 | 
			
		||||
                "sid"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
{
 | 
			
		||||
    "manifest_version": 2,
 | 
			
		||||
    "name": "ClearURLs",
 | 
			
		||||
    "version": "1.6.4",
 | 
			
		||||
    "version": "1.6.5",
 | 
			
		||||
    "author": "Kevin R.",
 | 
			
		||||
    "description": "Remove tracking elements form URLs.",
 | 
			
		||||
    "homepage_url": "https://gitlab.com/KevinRoebert/ClearUrls",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user