Git Product home page Git Product logo

scriptjaeger's Introduction

ScriptJäger

Der ScriptJäger - die Erweiterung für den Jägermeister!

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.

ScriptJäger is inspired by ScriptWeeder by lemonsqueeze.

How it works

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.

ScriptJäger was created to be lightweigth, fast, powerful & easy-to-use. Anything is only loaded when really required.

ScriptJäger is tested only under the Vivaldi browser, 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.

Check the wiki for info on how to use it.

Download

A 'stable' version of the extension as a CRX file can be downloaded on the releases page.

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.

After downloading the latest CRX open the chrome://extensions/ page, enable developer mode at the top right, refresh the page and drop the CRX file on the page.

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:

  • You must pay a fee to be there
    Yes, I must pay to help them make their browser more popular and track users
  • This fee is their verification method
    Yes, you pay and you are verified, this gives no protection to the users

Permissions

This extension requests some permissions, here's why it requires each one:

  • tabs
    To be able to access the tabs url and so apply the rules
  • storage
    To save & load preferences
  • webNavigation
    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
  • webRequest & webRequestBlocking
    To be able to intercept the scripts before requesting them and then block if necessary
  • <all_urls>
    To work on any page
  • alarms
    To check for updates
  • notifications
    To notify you about an update

scriptjaeger's People

Contributors

an-dz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

scriptjaeger's Issues

Better deal with iframe/sub_frame requests

  • flag iframe/sub_frame requests in scriptweeder function [238a6f0]
  • Make scripts from iframes follow the rules of the iframe rather than the top domain? [238a6f0]
    Might help youtube videos for example, where all allowed rules for it would be applied to those frames requiring only the user to allow youtube on the page, and not all of its scripts as well.
  • Add marks on iframe object and parent host [87e3942]
  • Better style childs of an iframe, including hide them until a button is clicked [87e3942]

Private browsing enhancements

  • Preferences made in private browsing vanish on close
    On private windows changing settings should only apply to the private session, when all private windows are closed those must vanish
    Don't store, only add in background variable and clean it on last window closed
  • Option to inherit preferences
    An option to choose between using the default preferences when starting a private browsing or already inherit the current preferences

No way to edit preferences (make popup work)

Make popup buttons work AKA be able to change settings (in progress...)

  • Be able to see a list of each individual script [26b6976]
  • Save exception rule when checking the checkmarks [b602037]
  • Automatically check the correct scripts when choosing Filtered & Relaxed [1dbc450]
  • Save the policy in the correct scope [537917c]

[Investigate] Error tabStorage[].scripts not defined sometimes

From time to time I see an error when trying to save the script information @scriptweeder, hard to reproduce.

Some remarks I saw:

  • Seems to be a problem where tabStorage for that tab does not exists.
  • On first call for @addTab nothing is added in tabStorage
  • A script is loaded in between chrome.tabs.onUpdated and chrome.webNavigation.onCommitted (Fixed with 27a0c49)

Another related bug is that scripts can be loaded from other things other than sub_frame, at least it seems, needs checking.

Add new rules on update

Add a way to be able to update the rules on updates without messing with the user's preferences.

Must check if rule won't overwrite, save without overwrite and request user action.

Option to block inline scripts

The block all policy (policy 3) also requires an extra policy to block inline <scripts> and to make <noscript> tags visible.

Chromium API allows to change the browser Javascript options but the solution must also keep track of it so the popup shows info accordingly.

Errors in Chrome newtab

The Chrome newtab also loads scripts associated with that tab, A special handling is required for such tab.

Does not affect other browsers without this like Vivaldi.

Related to #8

Improve icons to be more visually distinguishable

I undestand that the colors are set and this indeed is a good thing. Maybe then the colors could be switched. If the most common setting is relaxed maybe change that one to GREEN and set filtered to blue. So the user has the "feel safe" feeling.

Maybe you could make to icon color more visible? Maybe a simpler/bigger icon (to see the "state" better - compare Scriptsafe).

Although the hat one is kind of a funny and smart "corperate identity".

Block connections without any tab assigned

Some connections (websockets?) occur without a tabid, connections coming from extension popups or other means also occur without a tabid. Need to keep an eye on all of them.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.