├── v2 ├── LICENSE ├── data │ ├── icons │ │ ├── 16.png │ │ ├── 32.png │ │ ├── 48.png │ │ ├── 64.png │ │ ├── 128.png │ │ ├── 256.png │ │ ├── 512.png │ │ ├── disabled │ │ │ ├── 16.png │ │ │ └── 32.png │ │ └── state │ │ │ ├── 1 │ │ │ ├── 16.png │ │ │ └── 32.png │ │ │ ├── 2 │ │ │ ├── 16.png │ │ │ └── 32.png │ │ │ ├── 3 │ │ │ ├── 16.png │ │ │ └── 32.png │ │ │ └── 4 │ │ │ ├── 16.png │ │ │ └── 32.png │ ├── inject │ │ ├── ff.js │ │ ├── iframe.js │ │ └── uncode.js │ ├── ui │ │ ├── ui.html │ │ ├── wot.js │ │ ├── ui.css │ │ └── ui.js │ ├── popup │ │ ├── index.html │ │ ├── index.css │ │ └── index.js │ └── options │ │ ├── index.css │ │ ├── index.html │ │ └── index.js ├── actions │ ├── disabled.js │ └── enabled.js ├── config.js ├── manifest.json └── _locales │ ├── zh_CN │ └── messages.json │ ├── ko │ └── messages.json │ ├── tr │ └── messages.json │ ├── en │ └── messages.json │ ├── ar │ └── messages.json │ ├── sv │ └── messages.json │ ├── it │ └── messages.json │ ├── de │ └── messages.json │ ├── fr │ └── messages.json │ └── es │ └── messages.json ├── v3 ├── data │ ├── inject │ │ ├── test.js │ │ ├── disabled.js │ │ └── block │ │ │ ├── isolated.css │ │ │ └── isolated.js │ ├── icons │ │ ├── 16.png │ │ ├── 32.png │ │ ├── 48.png │ │ ├── 64.png │ │ ├── 128.png │ │ ├── 256.png │ │ ├── 512.png │ │ └── state │ │ │ ├── 0 │ │ │ ├── 16.png │ │ │ └── 32.png │ │ │ ├── 1 │ │ │ ├── 16.png │ │ │ └── 32.png │ │ │ ├── 2 │ │ │ ├── 16.png │ │ │ └── 32.png │ │ │ ├── 3 │ │ │ ├── 16.png │ │ │ └── 32.png │ │ │ └── 4 │ │ │ ├── 16.png │ │ │ └── 32.png │ ├── popup │ │ ├── ReadMe │ │ ├── health.js │ │ ├── index.css │ │ ├── index.html │ │ └── index.mjs │ ├── ui │ │ ├── index.html │ │ └── index.css │ └── options │ │ ├── index.css │ │ ├── index.html │ │ └── index.js ├── _locales │ ├── ko │ │ └── messages.json │ ├── tr │ │ └── messages.json │ ├── en │ │ └── messages.json │ └── pt_BR │ │ └── messages.json ├── manifest.json ├── badge.js └── config.js ├── imgs ├── one.xcf └── two.xcf ├── test ├── example.txt ├── popup-blocker-iframe.html └── blocking-ui.html ├── .github └── FUNDING.yml └── README.md /v2/LICENSE: -------------------------------------------------------------------------------- 1 | ../../LICENSE -------------------------------------------------------------------------------- /v3/data/inject/test.js: -------------------------------------------------------------------------------- 1 | console.info('testing script'); 2 | -------------------------------------------------------------------------------- /imgs/one.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/imgs/one.xcf -------------------------------------------------------------------------------- /imgs/two.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/imgs/two.xcf -------------------------------------------------------------------------------- /v2/data/icons/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/16.png -------------------------------------------------------------------------------- /v2/data/icons/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/32.png -------------------------------------------------------------------------------- /v2/data/icons/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/48.png -------------------------------------------------------------------------------- /v2/data/icons/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/64.png -------------------------------------------------------------------------------- /v3/data/icons/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/16.png -------------------------------------------------------------------------------- /v3/data/icons/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/32.png -------------------------------------------------------------------------------- /v3/data/icons/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/48.png -------------------------------------------------------------------------------- /v3/data/icons/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/64.png -------------------------------------------------------------------------------- /v2/data/icons/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/128.png -------------------------------------------------------------------------------- /v2/data/icons/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/256.png -------------------------------------------------------------------------------- /v2/data/icons/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/512.png -------------------------------------------------------------------------------- /v3/data/icons/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/128.png -------------------------------------------------------------------------------- /v3/data/icons/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/256.png -------------------------------------------------------------------------------- /v3/data/icons/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/512.png -------------------------------------------------------------------------------- /v2/data/icons/disabled/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/disabled/16.png -------------------------------------------------------------------------------- /v2/data/icons/disabled/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/disabled/32.png -------------------------------------------------------------------------------- /v2/data/icons/state/1/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/state/1/16.png -------------------------------------------------------------------------------- /v2/data/icons/state/1/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/state/1/32.png -------------------------------------------------------------------------------- /v2/data/icons/state/2/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/state/2/16.png -------------------------------------------------------------------------------- /v2/data/icons/state/2/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/state/2/32.png -------------------------------------------------------------------------------- /v2/data/icons/state/3/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/state/3/16.png -------------------------------------------------------------------------------- /v2/data/icons/state/3/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/state/3/32.png -------------------------------------------------------------------------------- /v2/data/icons/state/4/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/state/4/16.png -------------------------------------------------------------------------------- /v2/data/icons/state/4/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v2/data/icons/state/4/32.png -------------------------------------------------------------------------------- /v3/data/icons/state/0/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/0/16.png -------------------------------------------------------------------------------- /v3/data/icons/state/0/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/0/32.png -------------------------------------------------------------------------------- /v3/data/icons/state/1/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/1/16.png -------------------------------------------------------------------------------- /v3/data/icons/state/1/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/1/32.png -------------------------------------------------------------------------------- /v3/data/icons/state/2/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/2/16.png -------------------------------------------------------------------------------- /v3/data/icons/state/2/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/2/32.png -------------------------------------------------------------------------------- /v3/data/icons/state/3/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/3/16.png -------------------------------------------------------------------------------- /v3/data/icons/state/3/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/3/32.png -------------------------------------------------------------------------------- /v3/data/icons/state/4/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/4/16.png -------------------------------------------------------------------------------- /v3/data/icons/state/4/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/schomery/popup-blocker/HEAD/v3/data/icons/state/4/32.png -------------------------------------------------------------------------------- /v3/data/inject/disabled.js: -------------------------------------------------------------------------------- 1 | chrome.runtime.sendMessage({ 2 | 'cmd': 'state', 3 | 'active': false 4 | }); 5 | 6 | -------------------------------------------------------------------------------- /v3/_locales/ko/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "app_description": { 3 | "message": "웹사이트의 모든 팝업 요청을 엄격하게 차단하십시오." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /v2/actions/disabled.js: -------------------------------------------------------------------------------- 1 | /* global prefs */ 2 | 3 | window.enabled = false; 4 | 5 | if (typeof prefs === 'object') { 6 | prefs.enabled = window.enabled; 7 | } 8 | -------------------------------------------------------------------------------- /v3/data/popup/ReadMe: -------------------------------------------------------------------------------- 1 | tld.js (MD5 = 2cffb104667a9f2ba4f78999907178a3) 2 | 3 | https://cdn.jsdelivr.net/npm/tldjs@2.3.1/tld.js 4 | 5 | Manual verification 6 | npm install tldjs@2.3.1 7 | md5 ./node_modules/tldjs/tld.js 8 | -------------------------------------------------------------------------------- /v2/actions/enabled.js: -------------------------------------------------------------------------------- 1 | /* global prefs */ 2 | 3 | if (!('enabled' in window)) { // in case disabled.js is called first 4 | window.enabled = true; 5 | } 6 | 7 | if (typeof prefs === 'object') { 8 | prefs.enabled = window.enabled; 9 | } 10 | -------------------------------------------------------------------------------- /v3/data/popup/health.js: -------------------------------------------------------------------------------- 1 | const check = () => { 2 | if (confirm(chrome.i18n.getMessage('pp_health'))) { 3 | chrome.runtime.reload(); 4 | } 5 | }; 6 | check.id = setTimeout(check, 2000); 7 | 8 | chrome.runtime.sendMessage({ 9 | method: 'echo' 10 | }, r => { 11 | if (r) { 12 | clearTimeout(check.id); 13 | console.info('health check passed'); 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /v2/data/inject/ff.js: -------------------------------------------------------------------------------- 1 | // Firefox issue; document.activeElement is always
6 | 34 | 35 | 38 | 39 |2 | 3 | let activeElement = document.documentElement; 4 | 5 | document.addEventListener('click', e => activeElement = e.target, true); 6 | 7 | Object.defineProperty(document, 'activeElement', { 8 | get() { 9 | return activeElement; 10 | } 11 | }); 12 | 13 | window.isFirefox = /Firefox/.test(navigator.userAgent) || typeof InstallTrigger !== 'undefined'; 14 | -------------------------------------------------------------------------------- /v3/data/inject/block/isolated.css: -------------------------------------------------------------------------------- 1 | @layer { 2 | iframe.pp-blocker { 3 | all: initial; 4 | z-index: calc(infinity) !important; 5 | color-scheme: light !important; 6 | position: fixed !important; 7 | width: var(--width, 420px) !important; 8 | max-width: 80vw !important; 9 | height: var(--height, 65px) !important; 10 | background: transparent !important; 11 | border-radius: 0 !important; 12 | border: none !important; 13 | } 14 | 15 | #ppop-port { 16 | display: none; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/example.txt: -------------------------------------------------------------------------------- 1 | 1. https://andrewgillum.com/news/ -> Sharing buttons 2 | 2. https://andrewgillum.com/2018/08/statement-dolores-huerta-labor-civil-rights-womens-icon-endorses-andrew-gillum/ 3 | -> refresh to get "https://www.facebook.com/tr/" and "https://syndication.twitter.com/i/jot" popup requests; the base is set so the popups are ignored 4 | 3. https://www.virustotal.com/ 5 | -> Check a text file 6 | 4. https://apps.facebook.com/criminalcase -> should allow target 7 | 5. http://www.tagindex.net/html/frame/example_t04.html -> should allow target 8 | 6. https://sadd.io/ 9 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: webextension?product=popup-blocker 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 12 | polar: # Replace with a single Polar username 13 | buy_me_a_coffee: # Replace with a single Buy Me a Coffee username 14 | thanks_dev: # Replace with a single thanks.dev username 15 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 16 | -------------------------------------------------------------------------------- /test/popup-blocker-iframe.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |