├── .gitattributes
├── images
├── delete38.png
├── allowall19.png
├── allowall38.png
├── blacklist38.png
├── blockall19.png
├── blockall38.png
├── filtered19.png
├── filtered38.png
├── jaegerhut16.png
├── jaegerhut48.png
├── relaxed19.png
├── relaxed38.png
├── undefined19.png
├── undefined38.png
├── whitelist38.png
├── jaegerhut128.png
├── delete.svg
├── allowonce-off.svg
├── delete38.svg
├── allowonce-on.svg
├── preferences.svg
├── GitHub-Octocat.svg
├── hasframe.svg
├── websocket.svg
└── GitHub-Typography.svg
├── .gitignore
├── _locales
├── en_US
│ └── messages.json
├── pt_BR
│ └── messages.json
├── pt
│ └── messages.json
├── it
│ └── messages.json
├── de
│ └── messages.json
└── en
│ └── messages.json
├── theme.css
├── manifest.json
├── LICENSE
├── popup.html
├── README.md
├── prefs.html
├── popup.css
├── default-prefs.js
├── prefs.css
├── popup.js
├── prefs.js
└── background.js
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/images/delete38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/delete38.png
--------------------------------------------------------------------------------
/images/allowall19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/allowall19.png
--------------------------------------------------------------------------------
/images/allowall38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/allowall38.png
--------------------------------------------------------------------------------
/images/blacklist38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/blacklist38.png
--------------------------------------------------------------------------------
/images/blockall19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/blockall19.png
--------------------------------------------------------------------------------
/images/blockall38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/blockall38.png
--------------------------------------------------------------------------------
/images/filtered19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/filtered19.png
--------------------------------------------------------------------------------
/images/filtered38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/filtered38.png
--------------------------------------------------------------------------------
/images/jaegerhut16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/jaegerhut16.png
--------------------------------------------------------------------------------
/images/jaegerhut48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/jaegerhut48.png
--------------------------------------------------------------------------------
/images/relaxed19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/relaxed19.png
--------------------------------------------------------------------------------
/images/relaxed38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/relaxed38.png
--------------------------------------------------------------------------------
/images/undefined19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/undefined19.png
--------------------------------------------------------------------------------
/images/undefined38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/undefined38.png
--------------------------------------------------------------------------------
/images/whitelist38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/whitelist38.png
--------------------------------------------------------------------------------
/images/jaegerhut128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/An-dz/ScriptJaeger/HEAD/images/jaegerhut128.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #############
2 | ## OS crap ##
3 | #############
4 |
5 | # Windows image file caches
6 | Thumbs.db
7 | ehthumbs.db
8 |
9 | # Folder config file
10 | Desktop.ini
11 |
12 | # Recycle Bin used on file shares
13 | $RECYCLE.BIN/
14 |
15 | # Mac crap
16 | .DS_Store
17 |
--------------------------------------------------------------------------------
/images/delete.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/images/allowonce-off.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/images/delete38.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/images/allowonce-on.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/_locales/en_US/messages.json:
--------------------------------------------------------------------------------
1 | {
2 | "settingsManageResetTooltip": {
3 | "message": "There's no confirmation dialog and no going back! Export your settings if you want them!",
4 | "description": "Button tooltip."
5 | },
6 | "settingsNumLevels": {
7 | "message": "Sublevel rules",
8 | "description": "Tooltip in number square. Shows how many rules for a more specific scope exist under that level. E.g. number of sub-domain specific rules exist under a domain rule."
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/images/preferences.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/images/GitHub-Octocat.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/theme.css:
--------------------------------------------------------------------------------
1 | html {
2 | --colorBorder: #d1d0d2;
3 | --colorBorderHighlight: #c83838;
4 | --colorAccentBg: #c83838;
5 | --colorAccentBgDark: #b22128;
6 | --colorAccentBgLight: #ffb7b7;
7 | --colorSecondary: #73ab55;
8 | --colorSecondaryLight: #c2d8b7;
9 | --colorFg: #1e1e1e;
10 | --colorBg: #fafafa;
11 | --colorBgAlpha: rgba(255, 255, 255, 0.5);
12 | --colorBgLightIntense: #fff;
13 | --colorBgIntense: #fff;
14 | --colorBgDark: #dedede;
15 | --colorBgDarker: rgba(0, 0, 0, 0.3);
16 | --colorHighlightBg: #c83838;
17 | --colorHighlightBgDark: #dedede;
18 | --colorHighlightBgLight: #ffb7b7;
19 | --colorHighlightFg: #fff;
20 | --colorDisabled: #8e8e8e;
21 | --radius: 0;
22 | --radiusRound: 100px;
23 | --radiusRounded: 2px;
24 | --colorScopeGlobal: #ab74c2;
25 | --colorScopeDomain: #f8b11b;
26 | --colorScopeSite: #18c5a1;
27 | --colorScopePage: #e5d817;
28 | --colorPolicyAllow: #d84a4a;
29 | --colorPolicyRelaxed: #559fe6;
30 | --colorPolicyFiltered: #73ab55;
31 | --colorPolicyBlock: #26272a;
32 | --colorScopeGlobalLight: #d8c1e2;
33 | --colorScopeDomainLight: #fcde9c;
34 | --colorScopeSiteLight: #9ce8d9;
35 | --colorScopePageLight: #f9f3a3;
36 | font-family: sans-serif;
37 | }
38 |
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ScriptJäger",
3 | "version": "0.5.1",
4 | "author": "André Zanghelini (An_dz)",
5 | "description": "Die Erweiterung für den Jägermeister! __MSG_sjDescription__",
6 | "homepage_url": "https://github.com/An-dz/ScriptJaeger",
7 | "applications": {
8 | "gecko": {
9 | "id": "scriptjaeger@zanghelini.com",
10 | "strict_min_version": "58.0"
11 | }
12 | },
13 |
14 | "icons": {
15 | "128": "images/jaegerhut128.png",
16 | "48": "images/jaegerhut48.png",
17 | "16": "images/jaegerhut16.png"
18 | },
19 | "options_ui": {
20 | "page": "prefs.html",
21 | "open_in_tab": true,
22 | "browser_style": false,
23 | "chrome_style": false
24 | },
25 |
26 | "background": {
27 | "scripts": [
28 | "background.js"
29 | ]
30 | },
31 |
32 | "browser_action": {
33 | "default_icon": {
34 | "19": "images/undefined19.png",
35 | "38": "images/undefined38.png"
36 | },
37 | "default_title": "ScriptJäger",
38 | "default_popup": "popup.html"
39 | },
40 |
41 | "web_accessible_resources": [
42 | "prefs.html"
43 | ],
44 |
45 | "permissions": [
46 | "alarms",
47 | "notifications",
48 | "storage",
49 | "tabs",
50 | "webNavigation",
51 | "webRequest",
52 | "webRequestBlocking",
53 | ""
54 | ],
55 |
56 | "default_locale": "en",
57 |
58 | "manifest_version": 2
59 | }
60 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The BSD 2-Clause License
2 |
3 | Copyright (c) 2016 André Zanghelini
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
7 |
8 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
11 |
12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13 |
--------------------------------------------------------------------------------
/images/hasframe.svg:
--------------------------------------------------------------------------------
1 |
22 |
--------------------------------------------------------------------------------
/images/websocket.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ScriptJäger
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
__MSG_scopePage__
17 |
__MSG_scopeSite__
18 |
__MSG_scopeDomain__
19 |
__MSG_scopeGlobal__
20 |
21 |
22 |
23 |
__MSG_policyBlockAll__
24 |
__MSG_policyFiltered__
25 |
__MSG_policyRelaxed__
26 |
__MSG_policyAllowAll__
27 |
28 |
29 |
30 |
31 |
32 |
33 |
__MSG_scopePage__
34 |
__MSG_scopeSite__
35 |
__MSG_scopeDomain__
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/images/GitHub-Typography.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ScriptJäger
2 | __Der ScriptJäger - die Erweiterung für den Jägermeister!__
3 |
4 | ScriptJäger is a script, frame and websocket connection management extension, it allows you to control which domains are allowed to load those resources for each page.
5 |
6 | ScriptJäger is inspired by [ScriptWeeder](https://github.com/lemonsqueeze/scriptweeder) by lemonsqueeze.
7 |
8 | ## How it works
9 | ScriptJäger only checks for scripts, frames and websocket connections on the http, https and file protocols, traffic from other resource types or protocols are not intercepted.
10 |
11 | ScriptJäger was created to be lightweigth, fast, powerful & easy-to-use. Anything is only loaded when really required.
12 |
13 | ScriptJäger is tested only under the [Vivaldi browser](https://vivaldi.com/), sometimes on Firefox and very sporadically on bare Chromium, though it should work on any browser built on Chromium, and very likely to work on any Gecko-based browser. No matter which browser you are using remember to include this info when reporting a bug.
14 |
15 | Check the [wiki](https://github.com/An-dz/ScriptJaeger/wiki) for info on how to use it.
16 |
17 | ## Download
18 | A _'stable'_ version of the extension as a CRX file can be downloaded on the [releases](https://github.com/An-dz/ScriptJaeger/releases) page.
19 |
20 | The extension automatically checks for updates every 24 hours and will notify you of updates, if you cancel the notification a new one will be shown in the next 24 hours. The update check will send a normal GET request to GitHub to download the latest manifest file here, no other information is sent.
21 |
22 | After downloading the latest CRX open the page, enable _developer mode_ at the top right, refresh the page and drop the CRX file on the page.
23 |
24 | This extension is not available at Chrome Web Store, if it ever becomes available on it this notice will be removed and a link to the store will be added. There are two reasons for this:
25 |
26 | * You must pay a fee to be there
27 | Yes, I must pay to help them make their browser more popular and track users
28 | * This fee is their verification method
29 | Yes, you pay and you are verified, this gives no protection to the users
30 |
31 | ## Permissions
32 | This extension requests some permissions, here's why it requires each one:
33 |
34 | * tabs
35 | To be able to access the tabs url and so apply the rules
36 | * storage
37 | To save & load preferences
38 | * webNavigation
39 | To know which kind of redirection it is to update the popup accordingly, preventing resetting of information on dynamically loaded pages like YouTube, Facebook & Twitter
40 | * webRequest & webRequestBlocking
41 | To be able to intercept the scripts before requesting them and then block if necessary
42 | * \
43 | To work on any page
44 | * alarms
45 | To check for updates
46 | * notifications
47 | To notify you about an update
48 |
--------------------------------------------------------------------------------
/prefs.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ScriptJäger
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |