SYMBOL INDEX (104 symbols across 14 files) FILE: src/background/background.js function updateCSS (line 56) | function updateCSS(action, style, tabId, frameId) { function onMessage (line 71) | function onMessage({ msg, ...data }, sender) { FILE: src/background/webrequest.js function updateRuleset (line 39) | function updateRuleset(enable) { FILE: src/common.js function log (line 25) | function log(arg) { function warn (line 28) | function warn(arg) { function log_to (line 32) | function log_to(logger, arg) { FILE: src/config.js constant MAX_CANVAS_SENSITIVITY (line 39) | const MAX_CANVAS_SENSITIVITY = 2; method set (line 68) | set(opts, prop, val) { method deleteProperty (line 84) | deleteProperty(opts, prop) { function reset (line 98) | function reset(keys) { method update (line 114) | update(/**@type {HideRules}*/ raw) { method update (line 122) | update(/**@type {ParamCleaning}*/ raw) { method update (line 130) | update(/**@type {ClickWhitelist}*/ raw) { function initHideRule (line 164) | function initHideRule(rule) { method addListener (line 177) | addListener(cb) { function sync (line 189) | async function sync(keys) { constant READY (line 219) | const READY = new Promise((res, rej) => { FILE: src/consts.js constant RATE_LIMIT (line 1) | const RATE_LIMIT = 1000 * 60 * 15; constant STYLE_CLASS (line 3) | const STYLE_CLASS = "fbtrStyled"; constant PROCESSED_CLASS (line 4) | const PROCESSED_CLASS = "FBTR-PROCESSED"; constant COLLAPSED_SELECTOR (line 5) | const COLLAPSED_SELECTOR = ".fbtrHidden"; constant MSG (line 9) | const MSG = Object.freeze({ constant CHROME_PORT (line 17) | const CHROME_PORT = "CHROME_POPUP"; FILE: src/content_script/app.js function isCollapsed (line 38) | function isCollapsed(target) { function hide (line 47) | function hide(elem, label, method) { function removeLinkTracking (line 85) | function removeLinkTracking(node) { function removeArticles (line 99) | function removeArticles(node, { selector, texts, patterns }, method = op... function removeCanvasArticle (line 136) | function removeCanvasArticle(canvas) { function removeAll (line 168) | function removeAll(target) { function forEachAdded (line 193) | function forEachAdded(mutation, cb) { function findPending (line 211) | function findPending(target) { function processPending (line 225) | function processPending() { constant SKIP (line 237) | const SKIP = ["SCRIPT", "STYLE", "LINK"]; function watchCanvas (line 257) | function watchCanvas(canvas) { function run (line 269) | async function run() { function handleMessage (line 298) | function handleMessage({ type, ...data }) { function start (line 310) | function start() { function stop (line 319) | function stop() { FILE: src/content_script/canvas_fingerprint.js function gaps (line 33) | function gaps(data) { function fingerprintCanvas (line 56) | function fingerprintCanvas(ctx, txt) { function computeCanvasPrints (line 71) | async function computeCanvasPrints(texts, ref) { function testCanvas (line 90) | function testCanvas(ctx) { FILE: src/content_script/cleaning.js function applyStyle (line 28) | function applyStyle(elem) { function cleanLink (line 33) | function cleanLink(a, href) { function buildVideo (line 46) | function buildVideo(src, poster) { function cleanShimLinks (line 58) | function cleanShimLinks(node) { function fixVideoLinks (line 68) | function fixVideoLinks(node) { function cleanRedirectLinks (line 108) | function cleanRedirectLinks(node) { function stripFBCLID (line 122) | function stripFBCLID(node) { function stripRefs (line 144) | function stripRefs(node) { function fixGifs (line 194) | function fixGifs(node) { function extractQuotedString (line 227) | function extractQuotedString(s) { FILE: src/content_script/dom.js function isAllowedTarget (line 36) | function isAllowedTarget(e) { function restrictEventPropagation (line 65) | function restrictEventPropagation(e) { function stopPropagation (line 74) | function stopPropagation(e) { function applyEventBlockers (line 81) | function applyEventBlockers(target) { function cleanAttrs (line 92) | function cleanAttrs(elem) { function buildCollapsible (line 100) | function buildCollapsible(label) { function selectAllWithBase (line 117) | function selectAllWithBase(node, selector) { function inlineUse (line 137) | function inlineUse(target) { function ariaText (line 148) | function ariaText(elem) { function visibleText (line 160) | function visibleText(elem) { function rectsIntersect (line 187) | function rectsIntersect(a, b) { FILE: src/i18n.js function getMessage (line 22) | function getMessage(key, ...vars) { function getMessageSafe (line 29) | function getMessageSafe(key, ...vars) { function translate (line 41) | function translate(elem) { method observedAttributes (line 53) | static get observedAttributes() { method constructor (line 57) | constructor() { method textContent (line 69) | get textContent() { method attributeChangedCallback (line 73) | attributeChangedCallback() { method connectedCallback (line 77) | connectedCallback() { method disconnectedCallback (line 81) | disconnectedCallback() { method update (line 85) | update() { constant I18N_SELECTOR (line 99) | const I18N_SELECTOR = "[data-i18n]"; FILE: src/options/options.js method set (line 34) | set(obj, key, val) { function handleChange (line 74) | function handleChange(e) { function handleToggle (line 107) | function handleToggle(e) { function findRadio (line 116) | function findRadio(elem, name, value) { method constructor (line 124) | constructor() { method reset (line 134) | reset(e) { function init (line 219) | function init() { FILE: src/rules_sync.js constant SELECTOR_RULE_FILES (line 24) | const SELECTOR_RULE_FILES = ["article_wrapper", "unconditional"]; constant DYN_RULE_FILES (line 25) | const DYN_RULE_FILES = ["pending"]; constant SPLIT_RULE_DIRS (line 26) | const SPLIT_RULE_DIRS = ["sponsored", "suggested"]; constant PARAM_CLEANING_FILES (line 27) | const PARAM_CLEANING_FILES = ["params", "prefix_patterns", "values"]; constant CLICK_WHITELIST_FILES (line 28) | const CLICK_WHITELIST_FILES = ["elements", "roles", "selectors"]; function fetchRule (line 30) | async function fetchRule(path, currentVal) { function loadHideRules (line 45) | async function loadHideRules() { function loadArrayData (line 72) | async function loadArrayData(key, files) { function loadSplitRule (line 88) | async function loadSplitRule(dir, currentRule) { function _try (line 116) | async function _try(func, ...args) { function timeoutRemaining (line 124) | async function timeoutRemaining() { function refreshRules (line 130) | async function refreshRules(force = false) { FILE: src/types.d.ts type HideRule (line 3) | interface HideRule { type HideRules (line 9) | interface HideRules { type ParamCleaning (line 16) | interface ParamCleaning { type ClickWhitelist (line 23) | interface ClickWhitelist { type Options (line 30) | interface Options { FILE: src/util.js function splitLines (line 24) | function splitLines(text) { function stripComments (line 29) | function stripComments(text) { function joinSelectors (line 34) | function joinSelectors(text) { function parseHideRules (line 40) | function parseHideRules(text) { function normalizeString (line 64) | function normalizeString(str) { function cleanLinkParams (line 69) | function cleanLinkParams(link, base = location.origin + location.pathnam...