16 | Help
17 | In the table above, the columns represent different types of requests. The rows represent domains. Numbers (if recording is enabled) show how many requests of a given type the current tab tries to make to the given domain. Red cells are blocked, green cells are allowed. Light green cells are allowed indirectly, e.g. because they represent a sub-domain of an allowed domain. Grey cells are disabled.
18 | By default, everything is blocked. You can click on a cell to allow it. You can also click on the domain or type to allow the complete row or column. There are also some special rows:
19 |
20 | - inline: This row is in charge of blocking inline code, e.g.
<script>-elements that are directly embedded into the HTML code. Note that some cells are disabled, e.g. there is no such thing as an "inline XHR".
21 | - first-party: This row allows you to set global defaults for requests to the same domain as the page itself.
22 | - sub-domains: If you allow a domain, all of its sub-domains are allowed along with it.
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/CHANGES.md:
--------------------------------------------------------------------------------
1 | # 0.11.1 (2025-10-05)
2 |
3 | - prompt for host permissions when not available
4 |
5 |
6 | # 0.11.0 (2025-10-04)
7 |
8 | - only close popup on toplevel navigation
9 | - display number of blocked requests in badge
10 | - remove the option to disable recording
11 |
12 |
13 | # 0.10.0 (2025-04-25)
14 |
15 | - update to manifest v3
16 | - client side JSON validation for rules
17 |
18 |
19 | # 0.9.0 (2023-12-09)
20 |
21 | - Performance improvements
22 |
23 |
24 | # 0.8.0 (2023-12-08)
25 |
26 | - Store requests to session storage instead of local storage
27 | - Add experimental support for domain patterns
28 |
29 |
30 | # 0.7.1 (2023-10-08)
31 |
32 | - Fix detection of inline scripts and CSS in firefox 115
33 |
34 |
35 | # 0.7.0 (2023-07-06)
36 |
37 | - fix: do not count main request as "other"
38 | - add dark mode
39 |
40 |
41 | # 0.6.0 (2023-05-18)
42 |
43 | - allow to block cookies
44 |
45 |
46 | # 0.5.0 (2023-05-03)
47 |
48 | - add reset button
49 | - flow-relative CSS
50 | - settings: add labels
51 | - add lang attribute in HTML
52 |
53 |
54 | # 0.4.0 (2023-02-25)
55 |
56 | - allow to have temporary and permanent rules
57 | - fix: add title for settings page
58 |
59 |
60 | # 0.3.1 (2022-11-27)
61 |
62 | - fix: do not clear request counts on navigation inside frame
63 |
64 |
65 | # 0.3.0 (2022-11-27)
66 |
67 | - fix concurrency issue when recording requests
68 | - allow to disable recording of requests
69 | - move edit raw rules to settings page
70 | - add explicit extension ID
71 |
72 |
73 | # 0.2.1 (2022-10-15)
74 |
75 | - fix compatibility with event pages
76 | - fix: add DOCTYPE for popup
77 |
78 |
79 | # 0.2.0 (2022-08-08)
80 |
81 | - allow to edit rules as JSON
82 | - fix inline counts if allowed
83 | - fix outdated help text
84 |
85 |
86 | # 0.1.0 (2022-08-07)
87 |
88 | - close popup on reload
89 | - detect counts of blocked inline code
90 | - display URLs of blocked subframes
91 | - fix layout warnings
92 |
93 |
94 | # 0.0.1 (2022-08-01)
95 |
96 | - fix extension icon
97 | - fix: include subdomains in first-party rule
98 | - fix hostname sorting for first party subdomains
99 |
100 |
101 | # 0.0.0 (2022-07-30)
102 |
103 | - initial release
104 |
--------------------------------------------------------------------------------
/src/popup.js:
--------------------------------------------------------------------------------
1 | /* global browser */
2 |
3 | import * as shared from './shared.js';
4 |
5 | var context;
6 | var requests;
7 | var rules;
8 |
9 | const table = document.querySelector('table');
10 | const commitButton = document.querySelector('[name="commit"]');
11 | const resetButton = document.querySelector('[name="reset"]');
12 | const permissionsButton = document.querySelector('[name="permissions"]');
13 |
14 | const permissions = {
15 | origins: ['