Exemple #1
0
	_buildCssByRulesHits: function (rules, appId) {

		var ELEMHIDE_CSS_STYLE = " { display: none!important; }\r\n";
		var ELEMHIDE_HIT_START = " { display: none!important; background-image: url('chrome-extension://" + appId + "/elemhidehit.png#";
		var ELEMHIDE_HIT_END = "') !important;}\r\n";

		var elemHideSb = [];
		var cssSb = [];

		for (var i = 0; i < rules.length; i++) {
			var rule = rules[i];

			if (rule.isInjectRule) {
				cssSb.push(rule.cssSelector);
			} else {
				elemHideSb.push(rule.cssSelector);
				if (FilterUtils.isUserFilterRule(rule)) {
					elemHideSb.push(ELEMHIDE_CSS_STYLE);
				} else {
					elemHideSb.push(ELEMHIDE_HIT_START);
					elemHideSb.push(encodeURIComponent(rule.ruleText));
					elemHideSb.push(ELEMHIDE_HIT_END);
				}
			}
		}

		var styles = [];
		var elemHideStyle = elemHideSb.join("");
		var cssStyle = cssSb.join("\r\n");

		if (elemHideStyle) {
			styles.push(elemHideStyle);
		}

		if (cssStyle) {
			styles.push(cssStyle);
		}

		return styles;
	},
Exemple #2
0
    this.getFrameInfo = function (tab) {

        var frameData = this.getMainFrame(tab);

        var url = tab.url;
        if (!url && frameData) {
            url = frameData.url;
        }

        var urlFilteringDisabled = !UrlUtils.isHttpRequest(url);
        var applicationFilteringDisabled;
        var documentWhiteListed = false;
        var userWhiteListed = false;
        var canAddRemoveRule = false;
        var frameRule;

        if (!urlFilteringDisabled) {

            if (frameData && frameData.adguardDetected) {

                documentWhiteListed = frameData.adguardDocumentWhiteListed;
                userWhiteListed = frameData.adguardUserWhiteListed;
                canAddRemoveRule = !frameData.adguardRemoveRuleNotSupported && !(documentWhiteListed && !userWhiteListed);
                applicationFilteringDisabled = false;

            } else {

                applicationFilteringDisabled = frameData && frameData.applicationFilteringDisabled;

                var rule = frameData ? frameData.frameWhiteListRule : null;
                documentWhiteListed = rule != null;
                if (documentWhiteListed) {
                    userWhiteListed = FilterUtils.isWhiteListFilterRule(rule) || FilterUtils.isUserFilterRule(rule);
                }
                //mean site in exception
                canAddRemoveRule = !(documentWhiteListed && !userWhiteListed);

                if (rule) {
                    frameRule = {
                        filterId: rule.filterId,
                        ruleText: rule.ruleText
                    };
                }
            }
        }

        var totalBlockedTab = frameData ? frameData.blocked : 0;
        var totalBlocked = pageStatistic.getTotalBlocked();

        return {

            url: url,

            applicationFilteringDisabled: applicationFilteringDisabled,
            urlFilteringDisabled: urlFilteringDisabled,

            documentWhiteListed: documentWhiteListed,
            userWhiteListed: userWhiteListed,
            canAddRemoveRule: canAddRemoveRule,
            frameRule: frameRule,

            adguardDetected: frameData && frameData.adguardDetected,
            adguardProductName: frameData ? frameData.adguardProductName : null,

            totalBlockedTab: totalBlockedTab || 0,
            totalBlocked: totalBlocked || 0
        };
    };