_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; },
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 }; };