Compare commits

...

1448 Commits

Author SHA1 Message Date
Ian Parker 9a57758425 Add building instructions (#5) 5 years ago
Ian Parker 64a911333f
Merge pull request #6 from AaronDewes/patch-1
Update German translation
5 years ago
Ian Parker 300c482314
Merge pull request #4 from AaronDewes/master
A few improvements
5 years ago
Aaron Dewes ad456600ed
Update German translation 5 years ago
AaronDewes a5a9104e77 A few improvements 5 years ago
Ian Parker 9140e3392d Update English description 5 years ago
Ian Parker 06b6ca01f1 Update user-rules.html title 5 years ago
Ian Parker 1c45aa35a3 Fix Firefox extension validation by increasing min version 5 years ago
Ian Parker c3fd99a692 Bump version 5 years ago
Ian Parker 122e5ca082 Rebrand Firefox distribution 5 years ago
Ian Parker 088eea918b
Merge pull request #3 from geekprojects/xofe-minor-fixes-3
Xofe minor fixes 3
5 years ago
Ian Parker e4fd3a0e93 Merge branch 'minor-fixes-3' of https://github.com/xofe/uMatrix into xofe-minor-fixes-3 5 years ago
Ian Parker af770ebeb8 Update to nuTensor in locales 5 years ago
Ian Parker 1cc436b779 Add initial issue templates 5 years ago
Ian Parker b2f09f89b5 Rebranding: Initial work on renaming to nuTensor 5 years ago
Ian Parker e9274d6e30 Update tools to nuTensor and use nuAssets 5 years ago
Ian Parker eca5ca3f32 Update README.md with nuTensor 5 years ago
xofe bda7383bc8 Fix tooltip for "obsolete" icon in dashboard assets page 5 years ago
xofe 7562a3d697 Add missing styling for `fa-icon-vflipped` class
Fixes the search widget down arrow's direction in asset viewer.
5 years ago
xofe 954d827934 Allow line breaking for long domains in popup panel 5 years ago
xofe e7899435fe Open logger/dashboard links adjacent to current tab
This regressed in https://github.com/gorhill/uMatrix/commit/9b29230.
5 years ago
xofe 93edb4aca0 Call `python3` rather than `python` in build scripts
This prevents the build scripts failing when Python 2 isn't installed.
5 years ago
xofe c9ddc9d5d0 Only consider hostname blocklisted if it's a full match
Fixes https://github.com/uBlockOrigin/uMatrix-issues/issues/284
5 years ago
Raymond Hill 0bcb7669e7
Fix exception thrown when a stock asset is removed
Related feedback:
- https://www.reddit.com/r/uMatrix/comments/ftebgz/
6 years ago
Raymond Hill 89b7e026c3
Revert "Remove hpHosts from stock hosts files"
This reverts commit ba0dfe5d9b.

Related feedback:
- https://www.reddit.com/r/uMatrix/comments/ftebgz/
6 years ago
Raymond Hill ba0dfe5d9b
Remove hpHosts from stock hosts files
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/971
6 years ago
Raymond Hill 57eb9fc150
Expect that IntersectionObserver API may not be available
Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/235

The popup-resize functionality won't be available if the
IntersectionObserver API is not available. The purpose
of the popup-resize code is to adjust the matrix visuals
on small display -- i.e. on mobile or when the popup panel
is used in the overflow menu in Firefox.
6 years ago
Raymond Hill e0800f89df
Make Firefox dev build auto-update 6 years ago
Raymond Hill b26b3bb960
New revision for dev build 6 years ago
Raymond Hill 2d8e32c61b
Minor style changes 6 years ago
Raymond Hill 41133dffd2
Fix remnants of uBO code in cache storage manager
Related feedback:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/227#issuecomment-590543891
6 years ago
Saitama a1ec20423c
mvps host list secure protocol http => https (#1014) 6 years ago
Raymond Hill e3ebfdfba4
Fix improper initial value for `suspendTabsUntilReady` 6 years ago
Raymond Hill 43cd137fff
Make Firefox dev build auto-update 6 years ago
Raymond Hill a697ce0be9
New revision for dev build 6 years ago
Raymond Hill b75500eff4
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill 3f4425d9db
Fix broken handling of blocked document parameters
Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/214

Regression from:
- https://github.com/gorhill/uMatrix/commit/9b292304d33a#diff-67a98e071667dfff264d50da29bb3a5cL38-R39
6 years ago
Raymond Hill f8c82add03
Fix python scripts used for pusblishing dev builds 6 years ago
Raymond Hill a78a6465b0
Make Firefox dev build auto-update 6 years ago
Raymond Hill ae7d450827
New revision for dev build 6 years ago
Raymond Hill c908ae5210
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill ea688f3942
Fix network error message in logger
Related feedback:
- https://github.com/gorhill/uMatrix/issues/945#issuecomment-569792402

Regression from:
- https://github.com/gorhill/uMatrix/commit/9b292304d33a
6 years ago
Raymond Hill 8a39b0e171
New revision for dev build 6 years ago
Raymond Hill 5c06fed370
Make 1st and 3rd columns in logger clickable
These columns are unlikely to be used for text
selection, so there is no harm to make them
clickable.
6 years ago
Raymond Hill 035f3f53a2
Fix packaging/publishing scripts 6 years ago
Raymond Hill 17430ded93
Make Firefox dev build auto-update 6 years ago
Raymond Hill b8e62f0c55
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill e800756163
New revision for dev build 6 years ago
Raymond Hill 0190fdaf3d
Add back missing tab context properties
These properties, used to detect/act on/report
unencrypted connection, were erroneously removed
when importing uBO's code en-bloc.

Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/212
6 years ago
Raymond Hill 0db579da97
Make Firefox dev build auto-update 6 years ago
Raymond Hill e5cf0d4684
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill a2f213492e
New revision for dev build 6 years ago
Raymond Hill a9f32a475f
Fix broken content scripts in Firefox
Related commit:
- https://github.com/gorhill/uMatrix/commit/9b292304d33a

Forgot to declare `/js/vapi.js` as first content script
to inject.
6 years ago
Raymond Hill cb9934f67a
Fix publish scripts for dev build versions 6 years ago
Raymond Hill e7140262f2
Use correct manifest key (instead of the alias) 6 years ago
Raymond Hill a9bcc70a2b
Minor code review of WASM-loading code 6 years ago
Raymond Hill 2936d73911
Fix odds and ends from mega commit 9b292304d3
Related commit:
- https://github.com/gorhill/uMatrix/commit/9b292304d33a
6 years ago
Raymond Hill df4a403473
Make use of css flex in matrix UI 6 years ago
Raymond Hill d993b8442a
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill 5aab1fb00b
Import publish script fixes from uBO 6 years ago
Raymond Hill 9b292304d3
Bring uMatrix up to date
Notably:
- Import logger improvements from uBO
- Import CNAME uncloaking from uBO
- Import more improvements from uBO
- Make use of modern JS features

This should un-stall further development of uMatrix.
6 years ago
Raymond Hill 1d936742a7
New revision for stable release 6 years ago
Raymond Hill 5156e23a09
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill 93b28cdd84
Silently ignore invalid tab id 6 years ago
Raymond Hill 3da449b8a4
Import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill eb2a4699d4
make Firefox dev build auto-update 7 years ago
Raymond Hill e01ebef2cf
New revision for release candidate 7 years ago
Raymond Hill c3919da2c2
Add more cases for documentUrl to be safely used as root context
Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/155
7 years ago
Raymond Hill d5fe3edb15
make Firefox dev build auto-update 7 years ago
Raymond Hill f332cd9f68
New revision for release candidate 7 years ago
Raymond Hill d6471b3556
Fix https://github.com/uBlockOrigin/uMatrix-issues/issues/159 7 years ago
Raymond Hill 0da9645d91
make Firefox dev build auto-update 7 years ago
Raymond Hill 6e9f23c940
Import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 04a9d00a5e
New revision for dev build 7 years ago
Raymond Hill 1ddb822509
Mitigate undesireable side-effect of 901c325eab
Related discussion/issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/156#issuecomment-494427094
- https://github.com/uBlockOrigin/uMatrix-issues/issues/155

Due to a Chromium issue about not providing the proper context
information, a negative side-effect was introduced with fix
to #155. This commit will force the originator of a network
request of type `main_frame` to be that of the request URL
itself, i.e. the originator of a top-level document request
is the requested document itself.
7 years ago
Raymond Hill 0807d71704
make Firefox dev build auto-update 7 years ago
Raymond Hill d5f75e84d8
New revision for dev build 7 years ago
Raymond Hill 901c325eab
Use documentUrl for context purpose when available
Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/155

documentUrl was currently used on onBeforeRequest but not
for onBeforeSendHeaders.
7 years ago
Raymond Hill dbe6218926
make Firefox dev build auto-update 7 years ago
Raymond Hill 732d0e84d8
New revision for dev build 7 years ago
Raymond Hill ab303d3c17
Fix the logger's rendering of hostnames starting with digits
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/541
7 years ago
Raymond Hill 1f1429c47a Import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 5c3661b69c make Firefox dev build auto-update 7 years ago
Ryan Hendrickson 3f2916ed05 More unused code cleaning (#1009)
* remove many unused functions

* remove XAL abstraction
7 years ago
Raymond Hill fa795dd446 New revision for dev build 7 years ago
xofe 26aedcc5f9 show placeholder for blocked `frame` elements (fix https://github.com/uBlockOrigin/uMatrix-issues/issues/120) (#1010) 7 years ago
Raymond Hill 054935d025
Fix https://github.com/uBlockOrigin/uMatrix-issues/issues/98 7 years ago
Raymond Hill 62fc318e89
make Firefox dev build auto-update 7 years ago
Raymond Hill 6bba6c4f85
New revision for dev build 7 years ago
Raymond Hill fb94c85df1
Add ability to block early at launch; adapt to changes in Chromium 72+
Related issues:

- "Requests bypass uMatrix on Firefox start"
  <https://github.com/uBlockOrigin/uMatrix-issues/issues/69>

  Using same approach as with uBO:
  https://github.com/gorhill/uBloc/commit/41548be6be35

  `suspendTabsUntilReady` advanced setting added to "More" pane,
  useful only for Chromium -- the blocking of early network
  requests is enforced unconditionally on Firefox (because it
  supports returning Promises from webRequest handlers).

- "Cookies leaking temporarily"
  <https://github.com/uBlockOrigin/uMatrix-issues/issues/74>

  Changes in the webRequest API in Chromium 72+ caused uMatrix
  to fail to process `Cookie` and `Referer` headers on that
  platform.
7 years ago
Raymond Hill 3cc56afe63
make Firefox dev build auto-update 7 years ago
Raymond Hill 9789182b2c
New revision for dev build 7 years ago
Ryan Hendrickson 4d7109bf99 Cleaning (#1007)
* remove unused field distinctRequestCount

* remove mostly unused RequestStats

* write to pageStore.pageUrl, not pageStore.normalURL

* remove unused cookie code

* remove unused field off
7 years ago
Raymond Hill 130db1f351
Mind CR-terminated lines in recipe parser
Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/97
7 years ago
xofe 2045397084 Minor fixes (#1005)
* correct cloud-download/upload icon CSS selectors

* fix scope tooltip in logger appearing offscreen

* open logger/dashboard links adjacent to current tab (match uBO's behaviour)

* opera: fix manifest version not being updated

Version code copied from tools/make-chromium-meta.py

* fix https://www.reddit.com/r/uBlockOrigin/comments/9gwrna/when_you_right_click_and_go_to_options_it_keeps/

source:
* 6dd6dc5f1d

* remove unused "processReferer" setting

It was changed to a matrix switch in 5d8bae3da2

* remove unused source code

source:
* f516cd3d26
* 0503f52b1e

* remove bold version of Roboto font (unused from HTTPSB)

* correct FontAwesome license after change from v5 back to v4.7

License copied from bb737e29d5

* fix build scripts after c0f4abfd00
7 years ago
Raymond Hill 9494da7195
New revision for stable release 7 years ago
Raymond Hill 94fdd3b587
Import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill d7a96081f5
make Firefox dev build auto-update 7 years ago
Raymond Hill 521430115a
New revision for dev build 7 years ago
Raymond Hill acfb1a6310
Import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill de56cfe351
Revert to Fontawesome 4.7 icons
Found out Fonteawesome 5 is a different project than
former Fontawesome (of which 4.7 is latest).

See https://github.com/uBlockOrigin/uBlock-issues/issues/249#issuecomment-448587658
7 years ago
Raymond Hill 5ed6a9703c re-phrase as suggested on https://crowdin.com/project/umatrix 7 years ago
Raymond Hill f94f0010b6 import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 9a6b1c2c9c address remaining quirks (see https://github.com/uBlockOrigin/uMatrix-issues/issues/62#issuecomment-428594617) 7 years ago
Raymond Hill 0f7c82a2d9
fix obsolete comment 7 years ago
Raymond Hill b71eed544f
make Firefox dev build auto-update 7 years ago
Raymond Hill 68e8d96b57
import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 073500ca81
new revision for release candidate 7 years ago
Raymond Hill 494cd9e95c
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/72 7 years ago
Raymond Hill ae894fb571
make Firefox dev build auto-update 7 years ago
Raymond Hill 60da12b0ef
import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 5e86922100
new revision for release candidate 7 years ago
Raymond Hill 6dcc90c639
fix tooltip quirk in popup panel; add visual hint in logger for tab-less requests 7 years ago
Raymond Hill 45be8d04e3
make Firefox dev build auto-update 7 years ago
Raymond Hill 9bbfed8d37
new revision for dev build 7 years ago
Raymond Hill 5b1287d2de
use separate CSS file for styles 7 years ago
Raymond Hill 886664abd4
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/59 and other unrelated quirks
Unrelated quirks:

- missing icons for magnifier (because https://github.com/uBlockOrigin/uMatrix-issues/issues/68)
- missing i18n string
- use separate file for CSS styles
7 years ago
Raymond Hill 495dddc389
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/70 7 years ago
Raymond Hill b822ae72d9
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/68 7 years ago
Raymond Hill 742fba96f0
make Firefox dev build auto-update 7 years ago
Raymond Hill 8eb17934b0
new revision for dev build 7 years ago
Raymond Hill 605368a6e2
import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 52246a5250
convert popup panel icons (https://github.com/uBlockOrigin/uMatrix-issues/issues/68) 7 years ago
Raymond Hill 3ce484688a
add generic support for icon badge (https://github.com/uBlockOrigin/uMatrix-issues/issues/68) 7 years ago
Raymond Hill ec7accc32c
fix icon invisible badge on Firefox (https://github.com/uBlockOrigin/uMatrix-issues/issues/68) 7 years ago
Raymond Hill 495c2bc916
make Firefox dev build auto-update 7 years ago
Raymond Hill 62a7d8f30f
new revision for dev build 7 years ago
Raymond Hill c6e29be792
bring back popup panel access from logger
Popup panel is now tab selector-bound, rather than logger
entry-bound.

Additonally, start migrating toward svg-based icons rather than
font-based icons.
7 years ago
Raymond Hill fc0bb7a35c
fix reload button (regression from 2256552899) 7 years ago
Raymond Hill 77a7b8febe
code review: fix quirks introduced with 2256552899 7 years ago
Raymond Hill 7c63d2b03d
make Firefox dev build auto-update 7 years ago
Raymond Hill 136c434b4d
new revision for dev build 7 years ago
Raymond Hill efa0085a67
fix scope selector for "base-domainless" hostnames 7 years ago
Raymond Hill 9432e3b6eb
make Firefox dev build auto-update 7 years ago
Raymond Hill 7c73664fc8
new revision for dev build 7 years ago
Raymond Hill 228e326111
import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 6b8be2ca43
add partiness column in logger 7 years ago
Raymond Hill 2256552899
fix https://github.com/gorhill/uMatrix/issues/951, https://github.com/uBlockOrigin/uMatrix-issues/issues/62 7 years ago
Raymond Hill cb2ab59297
make Firefox dev build auto-update 7 years ago
Raymond Hill 934d497ef5
new revision for dev build 7 years ago
Raymond Hill e02360f096
remove sidebar support for stable build; prevent sidebar opening at install for dev build 7 years ago
Raymond Hill d42abee957
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/64 by importing CodeMirror 5.40.2 7 years ago
Raymond Hill 956b79816b
make Firefox dev build auto-update 7 years ago
Raymond Hill 7328a46086
new revision for dev build 7 years ago
Raymond Hill 8ed8666e77
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/63 7 years ago
Raymond Hill db7feed9c5
make Firefox dev build auto-update 7 years ago
Raymond Hill 6699e5c56f
import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 017c167ea9
new revision for dev build 7 years ago
Raymond Hill f075f96c58
fix #589: use DOM-based CSP directive (idea from 6e80d3f130) 7 years ago
Raymond Hill 7f3122c5fd
improve workaround for https://github.com/uBlockOrigin/uMatrix-issues/issues/57: lower minimum text size value 7 years ago
Raymond Hill be19816f33
make Firefox dev build auto-update 7 years ago
Raymond Hill 1221431f44
new revision for dev build 7 years ago
Raymond Hill 12a471c3c5
fix regression from fix to https://github.com/uBlockOrigin/uMatrix-issues/issues/53 7 years ago
Raymond Hill cc0bed69bf
fix version parsing 7 years ago
Raymond Hill 0f5a155e4f
make Firefox dev build auto-update 7 years ago
Raymond Hill 66ec464b66
new revision for dev build 7 years ago
Raymond Hill 943d1084d4
import translation from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill bb29ad2c34
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/53 7 years ago
Raymond Hill b724a6356a
import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill 0ae91ed00f
new revision for stable release 7 years ago
Raymond Hill a7753fd356
rename "webext" target to "firefox" 7 years ago
Raymond Hill a0c72fc302
removing unsupported firefox/legacy platform 7 years ago
Raymond Hill 28d50f2347
make Firefox dev build auto-update 7 years ago
Raymond Hill 3795b99fc5
possible fix for https://www.reddit.com/r/uMatrix/comments/8lc9ia/ 7 years ago
Raymond Hill 4b4db46663
new revision for dev build 7 years ago
Raymond Hill 637c0e42f1
make Firefox dev build auto-update 7 years ago
Raymond Hill 73891f217d
new revision for dev build 7 years ago
Raymond Hill e6b1648f53
Merge branch 'master' of https://github.com/gorhill/uMatrix 7 years ago
Raymond Hill b53d1be672
fix #992 7 years ago
Saitama d22981dfbe Added vivaldi-scheme (#1004) 8 years ago
Raymond Hill 5c3e8c6863
Update someonewhocares.org to use HTTPS (#1003)
http requests to someonewhocares.org now responds with 302 redirects to the secure version - so just use the https version to start with
8 years ago
Saitama a68f7a7899 µ to u (#1002) 8 years ago
Raymond Hill 322d689f8b
new revision for stable release 8 years ago
Raymond Hill 9693ea9e96
make Firefox dev build auto-update 8 years ago
Raymond Hill fbf3f1f263
new revision for release candidate 8 years ago
Raymond Hill 3f8794dd89
Code review for 18490b9bf8
- Use a time offset to ensure value fit in a int32
- Also, fix potential false positives re. blocked image placeholders
8 years ago
Raymond Hill 4284a57b4e
make Firefox dev build auto-update 8 years ago
Raymond Hill e1173fc0fd
new revision for release candidate 8 years ago
Raymond Hill 18490b9bf8
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/28 8 years ago
Raymond Hill 2714193b73
Use "development build" instead of "dev build" before Chrome store complains 8 years ago
Raymond Hill 1930844e68
make Firefox dev build auto-update 8 years ago
Raymond Hill 297c2a3b35
new revision for dev build 8 years ago
Raymond Hill 46669115dc
code review: various fixes
- Ensure REFERER spoofing is always reported in logger
- Fixed possible exception thrown when asynchronously reporting cookies
8 years ago
Raymond Hill 18ecb90bd0
new revision for stable release 8 years ago
Raymond Hill c1bbf7b199
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 925b3bdcc9
make Firefox dev build auto-update 8 years ago
Raymond Hill 94e4bdd9d6
new revision for dev build 8 years ago
Raymond Hill 8da0dcd84f
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/9 8 years ago
Saitama d1afcd2e9e Updated few things in descriptions.txt (#1000)
* Updated few things

* minor correction

* minor grammatical mistake
8 years ago
Raymond Hill cd4fc2596e
update py scripts to publish in AMO/CWS 8 years ago
Raymond Hill 00e62b48be
make Firefox dev build auto-update 8 years ago
Raymond Hill bd7e864950
moving update template to more appropriate location 8 years ago
Raymond Hill abfe7a8037
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill ffcd211dcc
new revision for dev build 8 years ago
Raymond Hill 2d97fafbe8
Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
Raymond Hill aba697f2f0
fix https://github.com/uBlockOrigin/uMatrix-issues/issues/8 8 years ago
Saitama 4564ee3b6d Update Issue Tracker link in conjunction with uBO (#999)
* Update Issue Tracker in conjunction with uBO

* Update Issue tracker title and description

Update Issue tracker title and description in conjunction with uBO
8 years ago
Raymond Hill e768b78b73
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill b1d51861e5
new revision for stable release 8 years ago
Raymond Hill 14bcb5ed56
make Firefox dev build auto-update 8 years ago
Raymond Hill 9fa2777589
new revision for release candidate 8 years ago
Raymond Hill 41bec3b53e
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 6958c4ed26
fix 1p recipes returned as 3p ones; preserve & show comments 8 years ago
Raymond Hill b793312143
Update README.md 8 years ago
Raymond Hill b986ff5565
Update README.md 8 years ago
Raymond Hill 97bb075cf1
Update ISSUE_TEMPLATE.md 8 years ago
Saitama 18aa29860c Update Permissions with the correct link (#997) 8 years ago
Raymond Hill fc80b2c581
Update CONTRIBUTING.md 8 years ago
Raymond Hill 4f1c7dd671
Update CONTRIBUTING.md 8 years ago
Raymond Hill 72b89e83e6
Update CONTRIBUTING.md 8 years ago
Raymond Hill 89aed08b4f
Update CONTRIBUTING.md 8 years ago
Raymond Hill a3812d52be
make Firefox dev build auto-update 8 years ago
Raymond Hill a7eeb40e13
new revision for dev build 8 years ago
Raymond Hill fe995d2bc8
fix #995, #945; other minor fixes; opportunistic code review 8 years ago
Raymond Hill 762de2aecd
make Firefox dev build auto-update 8 years ago
Raymond Hill 98e012599c
code review: attempt to lookup actual tab id of behind-the-scene requests 8 years ago
Raymond Hill 06436c61fc
code review: typos 8 years ago
Raymond Hill b627b62f6c
make Firefox dev build auto-update 8 years ago
Raymond Hill 7a1cb53c04
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill f45361fa56
new revision for dev build 8 years ago
Raymond Hill 31cc15ca6c
lots of informal fixes
- us integer tab id -- do not stringify anymore
- improved the parsing of hosts files
- better handling of behind-the-scene network requests when a
  context is provided by the webRequest API
- imported webextFlavor code from uBO
- converted instances of object-as-dict to Map()
8 years ago
Raymond Hill dd5a3a807c
fix https://www.reddit.com/r/uMatrix/comments/8atw04/2bc8_and_2bc6_characters_are_not_available_in/ 8 years ago
Raymond Hill 455155c635
make Firefox dev build auto-update 8 years ago
Raymond Hill 872975656c
new revision for dev build 8 years ago
Raymond Hill 62d06792f1
fix #990 8 years ago
Raymond Hill fde72e4f2a
make Firefox dev build auto-update 8 years ago
Raymond Hill d4d97d018c
new revision for dev build 8 years ago
Raymond Hill eb3a43a71c
new revision for stable release 8 years ago
Raymond Hill 1225405d8e
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 5b86e2901e
make Firefox dev build auto-update 8 years ago
Raymond Hill 2c2f0f8f03
new revision for dev build 8 years ago
Raymond Hill 5dd6564b6a
move the recipe icon to a more suitable position 8 years ago
Raymond Hill fbfce62582
import translation work from https://github.com/gorhill/uMatrix 8 years ago
Raymond Hill 8741f7ee8e
make Firefox dev build auto-update 8 years ago
Raymond Hill 13451a3a4f
new revision for dev build 8 years ago
Raymond Hill 9fd6bdfddd
avoid over-reporting of cookies
Limit each distinct cookie to be reported at most
once a second. Sometimes a cookie's value can
be changed many times a second and it's not useful
to report every single instance of these
changes -- this just pollute both the badge
counter and the logger output.
8 years ago
Raymond Hill 7c0fd0c9b3
make Firefox dev build auto-update 8 years ago
Raymond Hill 591483d07e
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 9d95bbe9b6
new revision for dev build 8 years ago
Raymond Hill 9b9d7e586f
fix #967 8 years ago
Raymond Hill 3935b8417b
make Firefox dev build auto-update 8 years ago
Raymond Hill d9251ce00b
new revision for dev build 8 years ago
Raymond Hill d2a0de861b
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 24289831c2
polish recipe-related code, user interface 8 years ago
Raymond Hill 707fd92307
remove unused strings 8 years ago
Raymond Hill c8c8430993
make Firefox dev build auto-update 8 years ago
Raymond Hill 8fa12d8d7e
new revision for dev build 8 years ago
Raymond Hill a976bd0d22
fix cleaning script 8 years ago
Raymond Hill d825b5562e
integrate CodeMirror's MergeView to the 'My rules' pane 8 years ago
Raymond Hill 747748c9ba
remove unused code 8 years ago
Raymond Hill 4b368c407b
Update README.md 8 years ago
Raymond Hill b6d47f9e86
Update README.md 8 years ago
Raymond Hill a52ea23121
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 6e119fbaaf
new revision for stable release 8 years ago
Raymond Hill 8e48dd18ba
add script to automate signing/publishing of slef-hosted Firefox version 8 years ago
Raymond Hill b4ce23f15e
make Firefox dev build auto-update 8 years ago
Raymond Hill 1470cf12bc
new revision for dev build 8 years ago
Raymond Hill 702fbba914
add changes needed for self-hosted signed beta version 8 years ago
Raymond Hill 08a0cdc218
fix #954 8 years ago
Raymond Hill 45ed6a7e25
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill f35b230c37
new revision for dev build 8 years ago
Raymond Hill fb4e07f107
fix regression reported at https://www.wilderssecurity.com/threads/umatrix-the-http-switchboard-successor.369601/page-27#post-2737419 8 years ago
Raymond Hill 429af12aa2
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 4947019dbb
new revision for dev build 8 years ago
Miguel de Moura 2f0f038668 Update hyperlink auditing HTML spec url (#942) 8 years ago
Raymond Hill 51a68683f8
code review: fix error at extension console; allow recipes to override explicit rules 8 years ago
Raymond Hill 4e00e6e3b0
new revision for dev build 8 years ago
Raymond Hill 860e9185cd
add support for: switch-based rules; entity in source part of condition 8 years ago
Raymond Hill 21c9480965
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 858ee6df69
new revision for dev build 8 years ago
Raymond Hill 335709bc50
fix #940 8 years ago
Raymond Hill 55b9f1c645
add contributor mode and tools to contribute ruleset recipes (need more) 8 years ago
Raymond Hill a88a301d81
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 91cbd94ba7
new revision or dev build 8 years ago
Raymond Hill 749e8d5cc4
improve backup file output for rules: array instead of one huge string 8 years ago
Raymond Hill 1a5d7e400d
fix backward compatibility of restore from backup feature 8 years ago
Raymond Hill b5c377ec73
new revision for dev build 8 years ago
Raymond Hill 931a44ee9d
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 01216b9520
code review: also take into account modifications to http headers 8 years ago
Raymond Hill 82ed807bd2
fix #938: show badge by default for new users 8 years ago
Raymond Hill ebfe08e0a2
fix #938 8 years ago
Raymond Hill b963ccb778
code review: simplify PSL selfie generator 8 years ago
Raymond Hill c2a46c5da4
add tooltip for global scope + setting to disable tooltips (see https://github.com/gorhill/uMatrix/issues/936#issuecomment-361936827) 8 years ago
Raymond Hill d0a41e09d0
remove more trailing periods as per https://github.com/gorhill/uMatrix/issues/30#issuecomment-361923994 8 years ago
Raymond Hill c90ce95f59
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 00df01f633
new revision for dev build 8 years ago
Raymond Hill 081dbf8541
add space after newline: Firefox does not render newlines for placeholders 8 years ago
Raymond Hill e9e5aa295c
fix #935 8 years ago
Raymond Hill b8c4eadc7a
remove spurious trailing periods (https://github.com/gorhill/uMatrix/issues/30#issuecomment-361635820) 8 years ago
Raymond Hill 7b88cef36d
new revision for dev build 8 years ago
Raymond Hill 4ea5334275
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 3e4e1d9def
new revision for dev build 8 years ago
Raymond Hill 2cf4a57bf4
first draft toward fixing #30 8 years ago
Raymond Hill bf4f3e71d3
add 1st recipe file to updatable assets 8 years ago
Raymond Hill 1867635e0d
code review: fix updating of non-hosts resources 8 years ago
Raymond Hill 6207e35a1e
fix #928 8 years ago
Raymond Hill 44a1f6da0d
new revision for bug fixes 8 years ago
Raymond Hill 6abc89dfd5
fix #924 8 years ago
Raymond Hill b8c0089a1a
new revision for release 8 years ago
Raymond Hill 1be2f40eae
move 3rd-party assets management to uBlockOrigin/uAssets 8 years ago
Raymond Hill a9799b70bc
code review for aafb85c6c62a: use `contentType`, `instanceof document` is unreliable on Firefox 8 years ago
Raymond Hill 785b430263
new revision for release candidate 8 years ago
Raymond Hill aafb85c6c6
fix https://bugzilla.mozilla.org/show_bug.cgi?id=1392090#c18 8 years ago
Raymond Hill eeb890000b
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 6485c2e035
new revision for release candidate 8 years ago
Raymond Hill c89a4cfe5e
use worker-src on Firefox 58+ -- turns out this was fixed weeks ago 8 years ago
Raymond Hill 08275aa527
code review: mind inline styles too 8 years ago
Raymond Hill 328f9695d8
add ability to vertically expand a specific row 8 years ago
Raymond Hill 7dac50008a
remove unecessary padding 8 years ago
Raymond Hill f680fc004c
new revision for release candidate 8 years ago
Raymond Hill c3957d3979
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill a8ac21ced0
new revision for release candidate 8 years ago
Raymond Hill 3435f4f444
Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
Raymond Hill 1228ee55d6
add mitigation for #912 8 years ago
y. mise 93d827c63a Add store description for Japanese (#908)
Store description is translated into Japanese. This is based on latest
description.txt.
8 years ago
Raymond Hill 2aeb7696c3
fix https://github.com/gorhill/uBlock/issues/3416 8 years ago
Raymond Hill e8772404c7
new revision for dev build 8 years ago
Raymond Hill f1d0e7a3b1
fix cloud race condition as in 178b82eb6a 8 years ago
Raymond Hill d766209ab5
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill b2e760f40d
fix #904, #436 8 years ago
Raymond Hill ed8556a9fe
add logger-in-sidebar support for Opera 8 years ago
Raymond Hill 533d24b4be
new revision for release 8 years ago
Raymond Hill 6e273545a4
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill c5f90a9cae
use translated string for sidebar name 8 years ago
Raymond Hill 32819b5cca
new revision for dev build 8 years ago
Raymond Hill cfaed1e490
add ability to open the logger in sidebar 8 years ago
Raymond Hill 171552370a
ensure image placeholders' min width can take effect 8 years ago
Raymond Hill 2a2685ff84
new revision for dev build 8 years ago
Raymond Hill 6df5e5212c
code review following feedback: 821e45751a (commitcomment-26587989) 8 years ago
Raymond Hill 35ddcc80eb
code review: giving more thoughts to reporting CSP violations 8 years ago
Raymond Hill 60cd27c347
code review for 821e45751a2dff18: simplify 8 years ago
Raymond Hill 62f48a15ff
new revision for dev build 8 years ago
Raymond Hill 821e45751a
reliably report web worker and inline script presence 8 years ago
Raymond Hill b870757e94
use non-locale-specific URI 8 years ago
Raymond Hill 6ecea191b4
put back space: turns out it's needed for detection 8 years ago
Raymond Hill 2d14874d69
code review for deeb211c5d 8 years ago
Raymond Hill c96fbb4d5c
new revision for dev build 8 years ago
Raymond Hill 1b1d3ad728
add ability to block web workers on a per-site basis 8 years ago
Raymond Hill deeb211c5d
add ability to block web workers on a per-site basis 8 years ago
Raymond Hill 52139a9137
remove localhost `allow` rule from default ruleset 8 years ago
Raymond Hill 6d85d53868
Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
Raymond Hill aef92a21ef
import translation work from https://crowdin.com/project/umatrix 8 years ago
calibrations 204aaae213 Fix and update legacy firefox vapi-client in the style of fa2658c (#900)
* Minimal refactor of vapi-client to get firefox version working

* Move messagingConnector into vAPI.messaging

* Improve vAPI.messaging setup and connecting

* Shutdown-related changes, implement remaining missing functions
8 years ago
Raymond Hill 2b02690b93
code review: fix size of toggle button background 8 years ago
Raymond Hill c1494d719a
new revision for dev build 8 years ago
Raymond Hill af94a80c59
fix html entities 8 years ago
Raymond Hill 19c32608f3
add visual cue to hint at relevance of per-scope switches 8 years ago
Raymond Hill dba034fd90
address #853 8 years ago
Raymond Hill 2c262d1198
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 9d1b89a0c1
fine tune rendering of slider 8 years ago
Raymond Hill 36e7c874cd
fix #479 8 years ago
Raymond Hill 748891a094
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 3a6f550223
code review: be case-insensitive, "URL=" is also used sometimes 8 years ago
Raymond Hill 12630e8a8a
new revision for dev build 8 years ago
Raymond Hill f459f67e72
fix regression: ability to toggle per-scope switches 8 years ago
Raymond Hill 6581071b01
prevent hostname labels from wrapping 8 years ago
Raymond Hill eebf2c7d32
new revision for dev build 8 years ago
Raymond Hill 157045924b
fine tune various UI aspects
- more choices of matrix text size
- more accurate wording for matrix switches
- info links for various matrix switches
8 years ago
Raymond Hill c1325d06b7
new revision for release candidate 8 years ago
Raymond Hill fc24d902ad
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill dd14e13db9
Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
Raymond Hill 298dac337c
better defaults for new installation 8 years ago
Raymond Hill 9724cb0013
Update ISSUE_TEMPLATE.md 8 years ago
Raymond Hill c82fab635c
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill b35aa272d5
better translate NoScript whitelist directives into uMatrix rules 8 years ago
Raymond Hill 23cefde335
code review: better importing from RP/NS 8 years ago
Raymond Hill 111d44b7cb
new revision for release candidate 8 years ago
Raymond Hill 43630426ff
Merge pull request #879 from xofe/settings-fix
Fix noscript spoof setting not being saved on change
8 years ago
xofe 613bab0a9d fix noscript setting not being saved on change (regression from 73c8da05b7) 8 years ago
Raymond Hill 3b77c0732e
import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 4b5cd19396
new revision for release candidate 8 years ago
gorhill 8e073579f6
fix #485 8 years ago
gorhill 05a312f6d0
fix #621 8 years ago
gorhill 2016e28ee5
move support to https://www.reddit.com/r/uMatrix/ 8 years ago
gorhill dfb4127583
new revision for dev build 8 years ago
gorhill 8608b29ded
fix ##773 + added logger output for CSP modification 8 years ago
gorhill 72a9fbf267
new revision for dev build 8 years ago
gorhill e30f189a19
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill c4c0d450fd
code review of request headers processing code
- drop needless overhead now that legacy support is dropped
- output extra information about the headers which are
  modified and their value before/after modification
8 years ago
gorhill ff5789d4ac
minor code review 8 years ago
gorhill 1e9f728a3b
new revision for dev build 8 years ago
gorhill b7127541a3
finally complete fix for #319 8 years ago
gorhill 038b047116
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 73c8da05b7
Fix #335
Additionally, performance improvements:
- Reduce overhead of collapsing elements
  (see https://github.com/gorhill/uBlock/issues/2839)
- Cache decomposition of source hostname when matrix-filtering

Also, various code review.
8 years ago
gorhill 8615f3b804
help with #872: reduce occurrences of "no tab found" cases 8 years ago
gorhill fa2658cd2b
import message handling code from uBO, simplify for uMatrix 8 years ago
gorhill 16eceedbf5
new revision for stable release 8 years ago
gorhill 776fda15a0
Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
gorhill a5a69c2fdf
code review: mind rtl languages 8 years ago
gorhill da20f49c59
code review: mind ltr languages 8 years ago
gorhill cadd9c751d
code review for #319: ensure valid URL 8 years ago
gorhill c983d47c8e
new revision for release candidate 8 years ago
gorhill 91db7e4a84
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill e278a7d4e3
further address #853 8 years ago
gorhill a90e5cc7b4
finalize fix to #319 -- redirect if meta/refresh found in noscript tags 8 years ago
gorhill 5c340e85e8
set minimum chromium version to 45 8 years ago
gorhill 3ff2926871
fix #840 (need confirmation) 8 years ago
gorhill 8660d35dcf
new revision for release candidate 8 years ago
gorhill 25128992b1
important translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 3059d15c17
Update ISSUE_TEMPLATE.md 8 years ago
Raymond Hill f80c8b8141
Update ISSUE_TEMPLATE.md 8 years ago
gorhill 23047bc23c
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 3292b030ce
new revision for release candidate 8 years ago
gorhill 9e2dd8108c
code review: further simplifying; jshint-ing 8 years ago
gorhill 6e15dba281
improve jshint-ing 8 years ago
gorhill 4b32e8b4d3
code review: fix spurious change in last commit 8 years ago
gorhill 6a10411f6a
new revision for dev build 8 years ago
gorhill a38a8d9c59
Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
gorhill ebac131247
code review: simplify code for counting distinct URLs 8 years ago
Raymond Hill 6f8a30c0e3
Update README.md 8 years ago
gorhill 67e7c8a5bf
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill c05f9fe9c9
new revision for dev build 8 years ago
gorhill 3f8168ce0b
fix #502 8 years ago
gorhill 773fe2da59
new revision for dev build 8 years ago
gorhill a4ad3a4ea9
put back ability for "owner" of popup panel to resize it (regression from 878d4fa6d5) 8 years ago
gorhill 39b2f1ddac
add ability to create properly labelled dev build for chromium 8 years ago
gorhill d048ba15cb
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 0207c91312
enable ability to detach the logger (same as uBO) 8 years ago
gorhill 6aa8c856cf
code review: no need for try-catch, a dummy localStorage is created if none exists 8 years ago
gorhill 03120f8dd9
code review: avoid using innerHTML 8 years ago
gorhill fa95f964de
code review: simplify needlessly complicated logger buffering code 8 years ago
gorhill 29a59808ab
new revision for dev build 8 years ago
gorhill 43df802cff
fix #232 8 years ago
gorhill db30e572db
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 9d43f929bc
Revive formerly removed <noscript> tag spoofing code
Also:
- a new per-scope switch has been added to control <noscript> spoofing on
  a per site basis
- a global setting to be used as the default state of the <noscript>
  spoofing switch
- Privacy pane has been merged into Setting pane
8 years ago
gorhill b5d94c708d
Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
gorhill 357b44c265
[corrected commit message] code review of ad9d591b1666: remove more obsolete code 8 years ago
gorhill 6f7d793abd
code review of 88853070a1a4: remove obsolete code 8 years ago
gorhill ad9d591b16
Fix #118, #271, #649, #771: removing flawed-at-the-core UA spoofer
The end result of the flawed UA spoofer was to accomplish the
OPPOSITE of the intended goal. UA spoofing for privacy purpose
turns out to be a whole complicated task on its own, and is
best undertaken as a separate dedicated extension -- assuming
it is possible at all.

In any case, this had no place in a "Privacy" section in uMatrix,
this was a bad idea to create this feature in the first place. It's
never too late to correct a bad idea, and this is the purpose of
this commit.
8 years ago
gorhill ec5faf04f8
new revision for dev build 8 years ago
gorhill c095b722fc
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 040812d813
code review of 28d2f0b66e 8 years ago
gorhill 5b8bcb1a9a
remove obsolete indexedDB transition-related code 8 years ago
gorhill 28d2f0b66e
fix #852 8 years ago
gorhill 65d62ec379
code review of e9968713e4 8 years ago
gorhill e9968713e4
work toward resolving #853 8 years ago
gorhill c090fa175e
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 537f8ef79a
work toward resolving #853 8 years ago
gorhill 07eb60abc6
new stable release revision 8 years ago
gorhill f2bb21f129
properly set global scope visual when default scope is global 8 years ago
gorhill 9d6d27ae21
import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill b4112d5641 list changed files after import 8 years ago
gorhill 2ddde65a57 import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 706fa4fca4 import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill a4d2ca6935 new revision for release candidate 8 years ago
gorhill d9cd957f4d highlight on hove only if it would result in a scope change 8 years ago
gorhill ac7870280a new revision for dev build 8 years ago
Raymond Hill 6e729c517d
Merge pull request #841 from shub-nougat/scopes-hover
Scopes hover
8 years ago
Raymond Hill 0cd3073134
Merge pull request #843 from PenguinDad/patch-1
Fix color-blind friendly mode
8 years ago
PenguinDad 284b26abf4
Fix color-blind friendly mode 8 years ago
shub-nougat 113cd638f5 highlight global scope for consistency 8 years ago
shub-nougat 3755655239 highlight scopes which are subject to toggle 8 years ago
gorhill 040b2a3d7f new revision for dev build 8 years ago
gorhill 2f2fea617b import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 1825b65d4c various visual fixes 8 years ago
gorhill 0a43c6fedd fix minor rendering issue in popup panel on small viewports 8 years ago
gorhill 170a665d4a important translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill 11a47c189c
Merge pull request #838 from xofe/remove-unused-resources
Remove some unused resources (holdovers from HTTPSB)
8 years ago
Raymond Hill d3e789f5da
Merge pull request #839 from xofe/minor-fixes
Minor fixes
8 years ago
gorhill 068ffe6c9a trashcan instead of X to remove an imported list 8 years ago
xofe a36042b5ce webext: fix options_ui.js removal + remove unused options_ui.html
per ec3d1bfc88
8 years ago
xofe d9bfbb5525 firefox: only copy polyfill.js + vapi-*.js to js directory (other js files only needed in root dir of package) 8 years ago
xofe cacdb07a6e add favicon to dashboard/logger (fix #627) + add i18n for logger title 8 years ago
gorhill 396f4fc78e avoid CPU-costly Date.toLocale(Date|Time)String() in logger page
source:
* 02a79ea9fc
* 235d1266e8
* 3b41237e4b
8 years ago
xofe 9adc29318e add missing tooltip for dashboard link (fix #837) 8 years ago
xofe d4c0c1747b fade-in tooltips, like uBO 8 years ago
xofe e6a0379e54 add bottom border to logger toolbar (prevents toolbar blending in to log entries while scrolling) 8 years ago
xofe 5a070388ae remove some unused resources (holdovers from HTTPSB) 8 years ago
gorhill 53c786e73c new revision for dev build 8 years ago
gorhill 6ca45c66b8 hopefully improve UI for mobile devices (#828) 8 years ago
gorhill 06d7612bf5 Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
gorhill ca9229e40c import translation work from https://crowdin.com/project/umatrix 8 years ago
Raymond Hill f2a20688c6
Merge pull request #804 from Neui/native-textarea
Use native textarea when editing user rules
8 years ago
Raymond Hill 3f07dd4094
Merge pull request #800 from Pulsera/master
Commented out unused code
8 years ago
Raymond Hill f8a4630095
Merge pull request #805 from StoyanDimitrov/patch-1
Remove unused l10n string
8 years ago
gorhill ef7b831a82 fix minor glitch causing header row to be under the interactive permission setter 8 years ago
gorhill 083cf4bf46 fix CSS regression: https://github.com/gorhill/uMatrix/issues/821#issuecomment-346461071 8 years ago
gorhill 61ae0d2bee new revision for stable release 8 years ago
gorhill 8deb398675 import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 878d4fa6d5 fix small popup panel glitch when first opened + minor cosmetic changes 8 years ago
gorhill 7c5a4b6e71 oops: release candidate revision number 8 years ago
gorhill 054d3a5b2b new revision for release candidate 8 years ago
gorhill d0a91d5f50 import translation work from https://github.com/gorhill/uMatrix 8 years ago
gorhill 364d2985db minor code review 8 years ago
gorhill d7cb45c237 maybe make uMatrix usable on a mobile device 8 years ago
gorhill a699567a61 new revision for dev build 8 years ago
gorhill dd1cb33626 import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill b1f53a6d09 fix #821 8 years ago
gorhill c4718246ea remove obsolete files 8 years ago
gorhill 0b8291c329 new revision for release candidate 8 years ago
gorhill cdffe16b98 import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill c2f9d10f71 new revision for dev build 8 years ago
gorhill e8136cb667 fix https://discourse.mozilla.org/t/support-umatrix/5131/158 8 years ago
gorhill 9fd92d2245 new revision for development build 8 years ago
gorhill 6460e5893c minor code review 8 years ago
gorhill 48eb207fa5 import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 76639f528a fix #819 8 years ago
gorhill 88912170fc minor edit 8 years ago
gorhill 507c33dc0e drop support of Firefox-legacy 8 years ago
gorhill 404d740305 update issue template 8 years ago
gorhill a15f1fa92e fix #789 8 years ago
gorhill ef09f42af8 new revision for stable release 8 years ago
gorhill bc1ac63af0 issue template 8 years ago
gorhill 5ddffa6c00 new revision for dev build 8 years ago
gorhill e23276b83a add Esperanto; fix Serbian import 8 years ago
gorhill 2692e866dd import translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 70b4eb0877 fix #612 8 years ago
gorhill 97957b7bc3 fix #807: merging was supported after all 8 years ago
gorhill 9c634ebd45 Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
gorhill ffc44db085 fix #807: cloud-merging not supported 8 years ago
Raymond Hill 00d9f0c003
Update README.md 8 years ago
gorhill 540436fe7f remove webext-hybrid version 8 years ago
gorhill b8121aae79 new revision for stable release 8 years ago
gorhill f2d7d32d1e remove unused legacy code from HTTPSB 8 years ago
StoyanDimitrov 6de0f2b9b9 Remove unused l10n string 8 years ago
Neui 9672465292 Use native textarea when editing user rules
Use native textarea (no color set) when editing temporary user rules.
Improves visibility significantly when eg. using Firefox with a dark GTK theme.
8 years ago
gorhill 893b885b5a AMO validation errors: do not rely on innerHTML 8 years ago
gorhill acf318d83c fix AMO validation errors: innerHTML is forbidden 8 years ago
gorhill 84aa1fd0e6 fix min version number 8 years ago
gorhill 71fd4427cc set webext min version of to FF56 8 years ago
gorhill 08f93ae95a new stable release 8 years ago
gorhill c374ce60c3 new revision for release candidate 8 years ago
gorhill 9eda7bf59c import fix from f1036395f7 8 years ago
gorhill f36735a6b4 new revision for release candidate 8 years ago
gorhill bb84ffaf87 import fix to cloud storage from https://github.com/gorhill/uBlock/issues/3006 8 years ago
gorhill 2fa62e12a1 fix https://github.com/gorhill/uBlock/issues/3057 8 years ago
gorhill b92e03eff6 new revision for dev build 8 years ago
gorhill 406f6473b6 use indexedDB to cache assets: https://bugzilla.mozilla.org/show_bug.cgi?id=1371255#c11 8 years ago
gorhill 5ea59ab7c4 address https://github.com/WaldiPL/webpageScanner/issues/8 8 years ago
gorhill f8a54005bf new revision for release candidate 8 years ago
gorhill b58d09cf02 set proper max version for legacy version 8 years ago
gorhill 2388af05e1 fix http://forums.mozillazine.org/viewtopic.php?p=14763169#p14763169 8 years ago
gorhill c3f4f18115 new revision for dev build 8 years ago
gorhill 37ce825dc1 fix https://github.com/gorhill/uBlock/issues/2824 8 years ago
gorhill 10972a55df fix https://github.com/gorhill/uBlock/issues/2855 9 years ago
gorhill be2ab1bdca translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill dc6a80a77d new revision for dev build 9 years ago
gorhill d7b3841f93 fix https://github.com/gorhill/uBlock/issues/2843 9 years ago
gorhill 08ecc1a241 add pure webext version 9 years ago
gorhill fa7b0777f3 rename more accurately webext version to webext-hybrid 9 years ago
gorhill 68b8baef34 rename more accurately webext version to webext-hybrid 9 years ago
gorhill 275899fd29 set FF56 as max version compatible with legacy version of uMatrix 9 years ago
gorhill df548f1db9 publish webext-hybrid to AOM dev channel 9 years ago
Pulsera 6da5e5e5b2 Commented unused code 9 years ago
gorhill ea16b28e65 fix popup panel width issue when photon disabled [firefox] 9 years ago
gorhill 839c185f5e new revision for dev build 9 years ago
gorhill c74174a3c4 fix https://discourse.mozilla-community.org/t/support-umatrix/5131/40 9 years ago
gorhill 3df27ffbdf fix https://github.com/gorhill/uBlock/issues/2696 9 years ago
Raymond Hill f2bb7df1db Create README.md 9 years ago
gorhill 4135a490ff Merge branch 'master' of https://github.com/gorhill/uMatrix 9 years ago
gorhill 3bff9d2aae new revision for dev build 9 years ago
gorhill cb482d3651 translation work from https://crowdin.com/project/umatrix 9 years ago
Raymond Hill 7730994a79 Update README.md 9 years ago
gorhill 930b6dd820 fix #793 9 years ago
gorhill 4765db4d86 code review: simplify CSP injection code 9 years ago
gorhill 27dea59284 fix #759 9 years ago
gorhill da8cc90ab4 fix visual glitch in recent versions of Chromium 9 years ago
gorhill 754e8213cf code review 6781a98f 9 years ago
gorhill 69a9cd66d1 new revision for dev build 9 years ago
gorhill 6781a98fd6 "fix" #771 9 years ago
gorhill 5922c3fcde fix https://github.com/gorhill/uBlock/issues/2558 9 years ago
gorhill 840bf9564d FF webext does not support chrome.contentSettings API 9 years ago
Raymond Hill 27f9925fd1 Update CONTRIBUTING.md 9 years ago
gorhill 3b48d64ec3 new version 9 years ago
gorhill 57022a410f translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 7b0cb1b729 remove unused i18n strings 9 years ago
gorhill b07972c526 minor code review 9 years ago
gorhill 35e9417e8f translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill ef172bcf81 use xpi instead of zip for webext 9 years ago
gorhill 40cc80371b new revision for dev build 9 years ago
gorhill 29f0171291 fix timing issue at launch for Pale Moon by importing uBO's code 9 years ago
gorhill 12a6978748 fix https://github.com/gorhill/uBlock/issues/2506 9 years ago
gorhill e8bcc4ca9f fix #752 9 years ago
gorhill 5f77d89db6 fix https://github.com/gorhill/uBlock/issues/2506 9 years ago
gorhill 09abdc1b9f fix https://github.com/gorhill/uBlock/issues/2502#issuecomment-290941686 9 years ago
gorhill 6e8ebd8253 fix #727 9 years ago
gorhill 276a1dfa1b fix https://github.com/gorhill/uBlock/issues/2502#issuecomment-290943606 9 years ago
gorhill d361ee33fc fix https://github.com/gorhill/uBlock/issues/2499 9 years ago
gorhill 96012c6956 new revision for dev build 9 years ago
gorhill 3df7ee9cb1 fix regression bug introduced with 9a99a06c 9 years ago
gorhill 89c5f02d76 fix https://github.com/gorhill/uBlock/issues/2493
Fix by @gijsk, imported from https://github.com/gorhill/uBlock/pull/2497
9 years ago
gorhill 3e5afa025a new revision for dev build 9 years ago
gorhill 8835aceb35 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill ce97268895 fix #747 9 years ago
gorhill 85255cf195 fix https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10 9 years ago
gorhill 9a99a06cd4 fix https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10 9 years ago
gorhill ad4b9b7b00 fix #746 9 years ago
gorhill b1618632f0 forgot to add webext as target 9 years ago
gorhill e0251f55cd new revision for dev build 9 years ago
gorhill 97509f6d03 hybrid webextension for seamless migration from legacy 9 years ago
gorhill 585802510a report raw type in logger instead of normalized type 9 years ago
gorhill c2d7096500 refactor assets management; working webextension version 9 years ago
Raymond Hill a1e84f4978 Update CONTRIBUTING.md 9 years ago
gorhill 357753dc48 new revision for dev build 9 years ago
gorhill da992312f3 fix #711 (will need confirmations) 9 years ago
gorhill 076382caf3 fix #730 9 years ago
gorhill 4b8345bb94 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 48d9a0fd26 fix #711 9 years ago
gorhill 1c27c01ac5 new revision for dev build 9 years ago
gorhill 33f2dc27d3 fix https://github.com/gorhill/uBlock/issues/2226 9 years ago
gorhill cc7be90de4 update tool scripts for proper versioning 9 years ago
gorhill 8828c4d5cb proper labelling of column 9 years ago
gorhill bf7acf678a fix #706 9 years ago
gorhill a4fb878b08 fix https://github.com/gorhill/uBlock/issues/2084 for uMatrix 9 years ago
gorhill 09004e0d1e translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 4ccb9bd0d4 fix uncaught exception 9 years ago
gorhill e68d9bd76e Merge branch 'master' of https://github.com/gorhill/uMatrix 9 years ago
gorhill e451e70fe0 fix #648 9 years ago
Raymond Hill b3941f8a33 Merge pull request #635 from alexeypetrenko/hyperlink_auditing_link
Fixed broken link
9 years ago
Alexey Petrenko 3b5b572f36 Fixed broken link 9 years ago
gorhill 70910fd2aa Merge branch 'master' of https://github.com/gorhill/uMatrix 9 years ago
gorhill af5afd12f2 translation work from https://crowdin.com/project/umatrix 9 years ago
Raymond Hill fb3a259e41 Merge pull request #617 from mathiasrw/patch-1
Correct check for undefined variable
9 years ago
Mathias Rangel Wulff 978c145180 Correct check for undefined variable
The code was comparing the result of `typeof` with a variable named `undefined`

As typeof returns a string it should compare to `'undefined'`
9 years ago
gorhill 3c539f0ec8 fix #604 10 years ago
gorhill fdc9c38f1a Merge branch 'master' of https://github.com/gorhill/uMatrix 10 years ago
gorhill e21f87a5f6 fix #591 10 years ago
Raymond Hill 52ae23c598 Merge pull request #599 from Llamatron2112/patch-1
Added black default color for popup buttons
10 years ago
Llamatron2112 e6bebd4775 Added black default color for popup buttons
On Linux Firefox with dark GTK theme, the three rightmost toolbar icons of the popup can be light gray, or even white some time, this fixes this issue.
10 years ago
gorhill 83b342d4e4 fix #597 + code review + merge media and image 10 years ago
gorhill 6df6794f7a update jshint default settings 10 years ago
gorhill d586c125a6 new revision for dev build 10 years ago
gorhill 8464e3d594 import uBO fix for some behind-the-scene requests in Pale Moon 10 years ago
gorhill 9a26274b11 fix #586 10 years ago
gorhill 2ef2505507 Merge branch 'master' of https://github.com/gorhill/uMatrix 10 years ago
gorhill 5bb96c1b74 release version 10 years ago
Raymond Hill cf4bb059f9 Merge pull request #572 from coffeemakr/allow-json-import-for-noscript
Allow JSON files as import from Noscript
10 years ago
Coffeemakr 12ebb136ba In addition to text files allow json files for import 10 years ago
gorhill 941d710247 fix https://github.com/gorhill/uBlock/issues/1702 10 years ago
gorhill a429b71665 code review re. #554: use channel data when available 10 years ago
gorhill 7f632afe29 code review re. #554
No longer need to evaluate within asyncOnChannelRedirect() since
all is now evaluated at `http-on-modify-request` time.
10 years ago
gorhill c978b2c5e9 code review re. https://bugzilla.mozilla.org/show_bug.cgi?id=1259169 10 years ago
gorhill 144a557ddb fix #561 10 years ago
gorhill 09cf683e1a fix #429 10 years ago
gorhill 73646ed7ce fix #554 10 years ago
gorhill 5fe51be814 this fixes #540 10 years ago
gorhill 4336c5c7c4 new revision for dev build 10 years ago
gorhill 93f963bc6c this fixes #538 10 years ago
gorhill 8f7f184837 this fixes #513 10 years ago
gorhill 2bbf72d9ab forgot to import zh-TW from https://crowdin.com/project/umatrix 10 years ago
gorhill 6b0e438cb5 need to bump revision for Opera build 10 years ago
gorhill 2e3e1ddb5a bring packages up-to-date with available translations 10 years ago
Raymond Hill 61b3978a5d Merge pull request #511 from JustinCheng12345/master
Adding traditional Chinese translation
10 years ago
JustinCheng12345 ddaa4d13fe Adding traditional Chinese translation 10 years ago
gorhill c0821da875 brought up to date with uBO's version 10 years ago
gorhill 65924d1be8 this fixes #489 10 years ago
gorhill 0031a47721 update hosts file locations -- https used where possible 10 years ago
gorhill 17cc720dc1 this addresses #506 10 years ago
gorhill adfc3b2a50 new revision for dev build 10 years ago
gorhill 44c1ddd00a translation work from https://crowdin.com/project/umatrix 10 years ago
gorhill e9e1f7e631 this fixes #489 10 years ago
gorhill 4f63e079bc reverting fix to #441: undesirable side effects on Firefox 10 years ago
Raymond Hill f3b98c9f9c Update CONTRIBUTING.md 10 years ago
Raymond Hill fa740a797d Update CONTRIBUTING.md 10 years ago
Raymond Hill fb1bd28460 Merge pull request #490 from WyohKnott/visualcue
Adding visual cue indicating that a temp rule will be deleted if clicked
10 years ago
WyohKnott c9f7cc1855 Adding visual cue indicating that a temp rule will be deleted if clicked
When clicking a temporary rule that is not in the permanent list, it is
deleted, yet no visual cue indicates this is the intended behaviour. I
initially thought it would commit the line to the permanent rules.

This patch adds a line-through on :hover to signal it.
10 years ago
gorhill 3150395375 new location for Console.jsm 10 years ago
Raymond Hill e206e62a02 Merge pull request #475 from TonnesM/master
L10n for Dutch AMO description
10 years ago
gorhill fbe58341e4 translation work from https://crowdin.com/project/umatrix 10 years ago
Raymond Hill 02a6fffcff Update CONTRIBUTING.md 10 years ago
TonnesM 1229edd1ea L10n for Dutch AMO description 10 years ago
gorhill 87e85fa0da code review: this fix broken pruning code for `domainCache` 10 years ago
gorhill 9cfc2ff6f8 this fixes https://github.com/gorhill/uBlock/issues/763 10 years ago
gorhill 8200c07a7f Merge tag '0.9.3.2' 10 years ago
gorhill 1d08de94fd translation work from https://crowdin.com/project/umatrix 10 years ago
gorhill 2b74a784df Nightly 46.0 is supported 10 years ago
gorhill 2da268f2ad Merge branch 'master' of https://github.com/gorhill/uMatrix 10 years ago
gorhill fc1662e742 Issue #441: code review
(fixed issue number in commit comment)
10 years ago
gorhill b56790799a #1076: code review 10 years ago
Raymond Hill 88c9440359 Merge pull request #441 from KenMacD/scroll
Allow horizontal scrolling.
10 years ago
Kenny MacDermid 9170fc4b96 Allow horizontal scrolling.
Provide a horizontal scrollbar when required, and scroll the
menu header correctly while keeping it fixed vertically.

This allows Chromium users with a `Page zoom` setting to be able to see
the whole matrix.

Closes #440.
10 years ago
Raymond Hill 43e2bf7453 Merge pull request #425 from WoLpH/master
Fixed chrome os x issue with too small popup size (fixes #423)
10 years ago
Rick van Hattem 9b1dda2c45 fixed chrome os x issue with too small popup size (fixes #423) 10 years ago
gorhill 93d28a8e38 this fixes https://github.com/gorhill/uBlock/issues/845 10 years ago
gorhill deecee477d this fixes invalid version number 10 years ago
gorhill f4dd0254aa translation work from https://crowdin.com/project/umatrix 10 years ago
gorhill 1df054d844 update compatible versions 10 years ago
gorhill 6eaa85eee1 this should fix #357, #395 10 years ago
gorhill 72c9429d74 code review for #390 10 years ago
gorhill 8c6413bfe2 new revision 10 years ago
gorhill 7d941d873d Merge branch 'master' of https://github.com/gorhill/uMatrix 10 years ago
gorhill d5e7bc8800 revert fix to #390 as suggested + hopefully also fixes #413 10 years ago
Raymond Hill 96ffb97a34 Update README.md 10 years ago
Raymond Hill 025446fac1 Update README.md 10 years ago
gorhill 15dc2dc1e9 works fine on latest Nightly, SeaMonkey 10 years ago
gorhill c668d4c17a new revision 10 years ago
gorhill 8c6b94e213 this addresses #358 for the time being 10 years ago
gorhill ef2c07e067 updated 3rd-party assets 10 years ago
gorhill 158eb0f45e translation work from https://crowdin.com/project/umatrix 10 years ago
gorhill 8d8f4b22d4 minor code review 10 years ago
gorhill 364c79d9ee this fixes #388 10 years ago
gorhill 6c0c62cc13 this should fix #390 10 years ago
gorhill b279c85afc Merge branch 'master' of https://github.com/gorhill/uMatrix 10 years ago
gorhill d82b455b4e this fixes #388 10 years ago
Raymond Hill ad9fe2a8ee Merge pull request #376 from hexaholic/patch-1
Fix minor mistake in German description
10 years ago
Pedro Hoffmann Alves 4f80239b4b Fix minor mistake in German description 10 years ago
gorhill 66a710359f forgot to commit this in last build -- this fixes #374 10 years ago
gorhill 3eedfd6fbb translation work from https://crowdin.com/project/umatrix 10 years ago
gorhill cf5143e876 this fixes https://github.com/gorhill/uBlock/issues/800#issuecomment-146580443 10 years ago
gorhill 6fdbf9dd94 this addresses #122 10 years ago
gorhill 7d4e569bd6 see if this helps #362 10 years ago
gorhill 3c1419ad3b this addresses https://github.com/gorhill/uBlock/issues/724 10 years ago
gorhill 50189a450f this fixes https://github.com/gorhill/uBlock/issues/640 10 years ago
gorhill 2d7ffc639e default config for jshint 10 years ago
gorhill 16f986860e translation work from https://crowdin.com/project/umatrix 10 years ago
gorhill c03d38a5c6 this fixes #349 10 years ago
gorhill e18782672d this fixes #345 10 years ago
gorhill 3b7130c525 for jshint 10 years ago
gorhill e25d748aa4 translation work from https://crowdin.com/project/umatrix 10 years ago
gorhill f3876463d3 imported cloud storage support from uBlock: user rules supported for now 10 years ago
gorhill 9e4e4943f3 this fixes many strictness warning in browser console 11 years ago
gorhill 7bc684f2b8 translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 99225e1688 ability to create a dev build for Firefox 11 years ago
gorhill 12c5acd287 this fixes #325 11 years ago
gorhill 2224ece1a5 this fixes #320 11 years ago
gorhill 7b651310b4 this fixes https://github.com/gorhill/uBlock/issues/574 11 years ago
Raymond Hill 85220191c2 Merge pull request #310 from Manouchehri/leak-warning
Warn user about User Agent leaking
11 years ago
David Manouchehri 471c314bed Added warning about User Agent leaking. 11 years ago
gorhill 9bda70293f interim version for dev build 11 years ago
gorhill cfbce5297a translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 0dcf068b56 new revision 11 years ago
gorhill ae0fdc8d10 this fixes #308 11 years ago
gorhill 98c51dbff4 #301: resize only if necessary 11 years ago
gorhill a8ceaa5dfb to be on the safe side 11 years ago
gorhill a914c01ea9 popup resize: code review 11 years ago
gorhill 479b454307 Hopefully this fixes #301 11 years ago
gorhill d265619145 new version 11 years ago
gorhill ff36607354 even better, just skip completely nsIContentPolicy for FF35+ 11 years ago
gorhill 51d18b4c47 shouldLoad needed only for FF34 and less (no need for sync messaging with e10s) 11 years ago
gorhill 77b0dd8233 translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 9cd5e959aa code review 11 years ago
gorhill 6c24fe8e2a this fixes scope button height in matrix popup + matrix popup from logger 11 years ago
gorhill bf7762ba0f forgot to import this as well 11 years ago
gorhill 1f4ba9dda9 this extends compatibility to FF-24-34
imported code from uBlock, including legacy toolbar support in 34485a04658ae7d8357dabe5e42b18e3e066a4b9,
which is itself directly based on work from @AlexVallat:
- 620a7d78d1
- d9b23d4f10
- 5ac4ec21e9
11 years ago
gorhill c8765697e1 bring in uBlock's changes to uDom 11 years ago
gorhill fac3e5d055 default about better than custom about 11 years ago
gorhill ee95ccca36 works fine on 42 11 years ago
gorhill fb5cac0455 developers who also contributed to the code base 11 years ago
gorhill e088e9cf70 this should fix #284 11 years ago
gorhill d333eb96ea Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill e543517500 this fixes #291 11 years ago
Raymond Hill 3c41bfcb12 Merge pull request #285 from johnkeeping/export-text-file
Add trailing newline to exported rules file
11 years ago
John Keeping 20e294884a Add trailing newline to exported rules file
According to POSIX a text file is "a file that contains characters
organized into zero or more lines" [1] and a line is "a sequence of zero
or more non- <newline> characters plus a terminating <newline>
character" [2].  Since we are claiming to produce a text file, it should
have a trailing newline.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_397
[2] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
11 years ago
Raymond Hill 2b230b85e1 Update CONTRIBUTING.md 11 years ago
gorhill 3591ca42f6 translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill f7a9ba851d code review: importing uBlock's fixes 11 years ago
gorhill 3d3673f163 this fixes #283 11 years ago
gorhill 07ba0a0a4b this fixes #270 11 years ago
gorhill 22d5f9b052 Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill a7329ef71d support importing uBlock ruleset syntax 11 years ago
Raymond Hill 5e8de220e4 Merge pull request #255 from Alpengreis/Alpengreis-branch
Update README.md
11 years ago
Alpengreis 0cb267a081 Update README.md
Corrected the link ...
11 years ago
gorhill a1f8e9599e translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill c8a461a815 interim version for dev build 11 years ago
gorhill cd760f33cb Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill d6a48df601 this fixes #246 -- FF tab management re-factored 11 years ago
gorhill fd4a7579f1 re-worked popup UI to access dashboard from title bar (like uBlock) 11 years ago
Raymond Hill 49ac2574b8 Update README.md 11 years ago
gorhill ef68842b80 this fixes #232 + AMO feedback re. using innerHTML 11 years ago
gorhill 5997dec5d1 this brings logger's filter exp. parser improvements from uBlock 11 years ago
gorhill a2e5fd671e support external stock hosts files 11 years ago
gorhill 6f842724be SQlite: importing changes from uBlock 11 years ago
gorhill 32333a440a translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill a1ff628a57 this addresses AMO feedback from uBlock 11 years ago
gorhill bbfef4f6cf this fixes #234 + other fixes imported from uBlock 11 years ago
Raymond Hill 9f51e49725 Merge pull request #241 from mikhaelkh/master
Minor fixes
11 years ago
mikhaelkh f24e9a907f Minor fixes
µMatrix -> uMatrix in tools folder.
Small fix in hosts-files.json.
11 years ago
gorhill cef90f0b20 fixed bad wrapper around seTimeout 11 years ago
gorhill 9b45f27792 interim version for dev build 11 years ago
gorhill b20d44e36c this should fix #225 11 years ago
gorhill dd657f31ae new revision 11 years ago
gorhill f81933fb59 this fixes 23aa1e79cb (commitcomment-11318549) 11 years ago
gorhill caeb0973d4 updated opera package script 11 years ago
gorhill bba94c0787 screenshots for AMO 11 years ago
gorhill 0d6c28642c translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 685bec0647 new revision 11 years ago
gorhill 23aa1e79cb remove overhead of tab selector update when no change 11 years ago
gorhill 8063ea1e67 translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill e927581336 translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 33708938da this fixes #212 11 years ago
gorhill 855833c978 code review 11 years ago
gorhill 36cb60fe30 Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill 779c9a6c36 this fixes #211 11 years ago
Raymond Hill 98ad80de31 Merge pull request #193 from tailHey/patch-2
Updated French description
11 years ago
gorhill 303291fe09 less glitchy autoresize of the popup while in use 11 years ago
gorhill cbc0337110 code review re. new tab selector 11 years ago
gorhill 04354e3e90 Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill d7b6be4567 logger: filter entries by tab 11 years ago
gorhill 2129490a92 not needed anymore 11 years ago
Raymond Hill 1f9c4adc37 Merge pull request #208 from offhub/patch-2
Update description.tr_TR.txt
11 years ago
offhub f138b90e04 Update description.tr_TR.txt 11 years ago
gorhill 262661347b translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 05d8c51580 this fixes #205 11 years ago
gorhill 9aebda7913 revised descriptions 11 years ago
gorhill 0d92dd7e5b default to block if no rule at all 11 years ago
gorhill 714c02232a script injection can throw when not a real HTML document 11 years ago
gorhill 1aa8b4fc1e this addressed #200: uMatrix compatible for FF35+ 11 years ago
gorhill d03434cc43 more bools 11 years ago
gorhill 6369d37567 must return bool, not undefined 11 years ago
gorhill 446b5a0a81 minor css 11 years ago
gorhill 02760abbf0 translation work from Crowdin 11 years ago
gorhill 20bd54c56b allow some local settings to be modified by users 11 years ago
gorhill a58dba5c27 removing unused translations 11 years ago
gorhill f3c5815848 interim version number for dev build 11 years ago
gorhill cc6eae5555 works on Nightly 41 11 years ago
gorhill aea695bf8b code review 11 years ago
gorhill 0528676c7a Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill 4ab8f52b44 this fixes #189: reverted changes from 6123335c51 11 years ago
Raymond Hill 40e1ed6e3b Merge pull request #197 from alejandrolemus/spanish_descr-patch-1
Update spanish description text
11 years ago
Alm b5e71ace47 Update description.es_ES.txt 11 years ago
gorhill 276d48a00c new revision 11 years ago
gorhill 568ad296a3 this should fix #194 11 years ago
gorhill ae701d9aff this fixes #191: loggin every ua-str rotation is overkill 11 years ago
gorhill 6f4257bb2a this fixes #189 11 years ago
tailHey 0c1293b573 Up to date French description
µMatrix -> uMatrix + minor changes
11 years ago
Raymond Hill 18720c8939 Update README.md 11 years ago
Raymond Hill ea2a949ae0 Update README.md 11 years ago
Raymond Hill 3b5fd4fe12 Update README.md 11 years ago
gorhill 32d8b7093e Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill bd462a40f9 revised doc: browser-neutral, naming, etc. 11 years ago
tlu1024 a88171bff7 µMatrix -> uMatrix 11 years ago
Raymond Hill 9de479ddbc Update README.md 11 years ago
Raymond Hill 6c6e27d83c Update README.md 11 years ago
gorhill 8adcdb3d2e renaming 11 years ago
Raymond Hill 637237a1d5 Update INSTALL.md 11 years ago
Raymond Hill 6911b0c581 Update README.md 11 years ago
gorhill 73ed896a85 this fixes browser history quirk on Chromium 11 years ago
gorhill 535a46db37 this fixes warning/error entries in browser console 11 years ago
Raymond Hill b41cc1ff28 Update README.md 11 years ago
gorhill 2f075c71e2 translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 438a7dca0a minor code review 11 years ago
gorhill 83cc6053eb more minor details fixed 11 years ago
gorhill 4ba4d55e6b fixing small details 11 years ago
gorhill 4d4837924c translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill b65fd71012 minor css edit 11 years ago
gorhill 9d245c0510 logger: "bts" keyword to filter behind-the-scene events 11 years ago
gorhill 7dcfdf9e08 improved cookie emphasis in logger 11 years ago
gorhill c8f162d0bb punycode scope selector 11 years ago
gorhill 8aaadb8fc0 toward a release: general code review, polishing, removing obsolete stuff 11 years ago
gorhill 257334b4c2 importing rp rules 11 years ago
gorhill 3d3160efdf minor code review 11 years ago
gorhill 9afbbae8cf minor css tweaks 11 years ago
gorhill c4699d06a1 Firefox e10s compatibility 11 years ago
gorhill 84399071f5 update of 3rd-party assets 11 years ago
gorhill 9a40eb17a0 fixed i18n mistake 11 years ago
gorhill 3384a7614a do not count own inline script 11 years ago
gorhill 6bc728f8b8 refactoring of inline script blocking + improving AMO validation 11 years ago
gorhill 57de4fdf14 code review 11 years ago
gorhill ea1b442e13 update 11 years ago
gorhill 29f769fe19 contributing 11 years ago
gorhill 1cc471bd39 reset minimized state 11 years ago
gorhill 5155b87ca9 translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 486183cbe6 this fixes popup matrix position/resize issues 11 years ago
gorhill 8c506d4d73 code review 11 years ago
gorhill 04f160efba this addresses #171 11 years ago
gorhill 8fcecdbde8 this fixes #174 11 years ago
gorhill 4f2ecc710d this fixes #172 11 years ago
gorhill 186c649984 thsi fixes #170 11 years ago
Raymond Hill eec9c79467 Update README.md 11 years ago
Raymond Hill 0abc5ff08b Update README.md 11 years ago
Raymond Hill 551febbb26 Update README.md 11 years ago
gorhill 654821f101 translation work from https://crowdin.com/project/umatrix 11 years ago
gorhill 52540c1a9a various fixes 11 years ago
gorhill 3849a3d4d9 code review 11 years ago
gorhill 1e1ec2e92c Firefox: this fixes ocasional bad cookie handling 11 years ago
gorhill 05089dc370 preparing for i18n + better defaults 11 years ago
gorhill 1d2954c39c cleaning up last committed code 11 years ago
gorhill 2cd6961ed4 firefox: draft work for fixing #165 11 years ago
gorhill 7d3ff66560 firefox build 11 years ago
gorhill a313e4653d use textContent, not innerText 11 years ago
gorhill 8f2b473928 filtering in logger + various small fixes 11 years ago
gorhill 4142551c13 fixed controls broken by incremental rendering 11 years ago
gorhill f8c38177e2 this fixes sticky dirty state 11 years ago
gorhill 0211bcec64 regression: fixed broken polling 11 years ago
gorhill e025afe8ea allow cleaning up voided rows 11 years ago
gorhill 7c8a8cdf64 better incremental rendering of the matrix 11 years ago
gorhill af57d6d9e7 one pulling if needed is better than always pushing to many + polishing logger 11 years ago
gorhill 1d8243583c more work on matrix popup integration within logger 11 years ago
gorhill 1901b9c6e8 allow access to toolbar controls 11 years ago
gorhill 6f786635f4 extremely early draft of matrix integration within the logger 11 years ago
gorhill b518ab5573 minor fixes 11 years ago
gorhill 89a2610ab1 various fixes 11 years ago
gorhill 13c03d802d oops 11 years ago
gorhill 4a86eb0525 https://xkcd.com/1296/ 11 years ago
gorhill c18db8cc7f a few css fixes 11 years ago
gorhill a49340b57a firefox: cookie and browser cache management 11 years ago
gorhill 4ad7c65362 various fixes 11 years ago
gorhill 33b5ac1a57 minor css changes 11 years ago
gorhill 5b513a005f committing missing files 11 years ago
gorhill b4254db51c refactoring: many changes throughout -- not close to be done 11 years ago
Raymond Hill 31b785bcf7 Update README.md 11 years ago
Raymond Hill 2207c16a15 Update README.md 11 years ago
gorhill b7e5a7bd44 fixed content script's clean shutdown 11 years ago
gorhill 818a3db9e4 code review: easier to maintain 11 years ago
gorhill fb639870df code review 11 years ago
gorhill d32137ced0 code review 11 years ago
gorhill 622d0a7e9d provide iframe URL in placeholders 11 years ago
gorhill 3fe5d48c05 this addresses 44f1a61c42 (commitcomment-11015041) 11 years ago
gorhill dac3bab44f 1st step of refactoring request logger 11 years ago
gorhill b4fb58891d oops 11 years ago
gorhill 4e76965155 remove useless code 11 years ago
gorhill be3e86e055 user is responsible to reload + fixed cleanup of stale tabs 11 years ago
gorhill d47d8bf0bf this fixes #158 11 years ago
gorhill 44f1a61c42 placeholder styling gone: it's bloat-ish 11 years ago
gorhill cd13d2870b this fixes sticky popup on FF 11 years ago
gorhill ddaa948cf4 new way of handling blocked documents 11 years ago
gorhill e751a5403b code review 11 years ago
gorhill 0e77cbd15d this fixes #45 + revised color-blind mode + support shutdown of content script 11 years ago
gorhill 1583a3edc6 no longer needed 11 years ago
gorhill dbe14694c8 code review 11 years ago
gorhill eb42375215 code review 11 years ago
gorhill c472e23c7d assets updater, hosts files pane, etc. 11 years ago
gorhill f4807b6b29 code review 11 years ago
gorhill 37331b1ef2 various fixes re. behind-the-scene scope 11 years ago
gorhill b01964db9b more fixes for rule edit mode 11 years ago
gorhill 171fef784e this fixes rule rendering in edit mode in FF 11 years ago
gorhill f815223f27 https://github.com/gorhill/uBlock/issues/150 needs to be fixed here too 11 years ago
gorhill 1c05281183 comments 11 years ago
gorhill 1f4ff9c809 more refactoring, code review 11 years ago
gorhill 8ae33e9c12 FF: this fixes availability of response headers for when item pulled from cache 11 years ago
gorhill 7cd060a15f refactoring, fixing script/frame blocking on FF, etc., more to do 11 years ago
gorhill cb29f10173 fixed matrix css 11 years ago
gorhill c0bfb00be8 code review 11 years ago
gorhill c1314e496b support ping request type explicitly 11 years ago
gorhill 595de33e83 sanitizing outgoing headers (drafty) 11 years ago
gorhill 5106c4bc44 this fixes rendering of toolbar icon 11 years ago
gorhill 764b1a0b7a jshint 11 years ago
gorhill 0b1ddfa17b code review 11 years ago
gorhill 5f177a2e30 this fixes reload button 11 years ago
gorhill 2d4431fe0c punycode: use non-minified version 11 years ago
gorhill 9340975606 a whole lot more left to do, at least popup shows 11 years ago
gorhill 322a5d3207 this fixes https://github.com/chrisaljoudi/uBlock/issues/1219 for Firefox 11 years ago
gorhill 99be819a0d move platform-specific images to their respective platform 11 years ago
AlexVallat 64e468b7d5 Tidying .xul location, update linux script to match windows one 11 years ago
gorhill d3161bd5d9 Revert "µBlock logo refinement and browser icon organization"
This reverts commit e43931f075847f75414c17ce13735c76119efafc.
11 years ago
Chris cb5cbda062 µBlock logo refinement and browser icon organization
This includes a new, refined µBlock logo, rendered more coherently
and consistently for different sizes and display pixel densities.
The Safari build script has been modified to bundle appropriate
resolutions. The Firefox build script was slightly changed to
adhere to the naming convention. The Chrome manifest was
modified/ammended slightly to take advantage of new renderings.
README's beginning has been modified to be nicer and more
minimal.
Other than the logo's slightly refined look and having better
resolution on different browsers and setups, this should have
no effect on the user experience or further development.
11 years ago
Chris 68f55f6a3e Fix cleanup in build script so rm won't complain during first build 11 years ago
Deathamns a15d4df48e Remove comment 11 years ago
Florian Walch fb994c6831 Set up Travis releases. 11 years ago
gorhill b66cd2ca0f build package only if "all" arg specified 11 years ago
gorhill 14f71e35d8 fix script 11 years ago
gorhill dfb1de3c91 create package 11 years ago
gorhill adfd5a3fe7 chmod u+x 11 years ago
Deathamns 4708427c0f Include LICENSE.txt into extension packages 11 years ago
Deathamns be33b5c3f0 Firefox: implement vAPI.tabs.injectScript 11 years ago
Deathamns 1a2adf08a7 Firefox: update manifest files when building 11 years ago
Deathamns 288402dc3a Firefox: blocking and content scripts for e10s 11 years ago
Deathamns 9b46b2c6c1 Firefox: partial vAPI.tabs implementation 11 years ago
Deathamns 121d4d5022 Initial Firefox port (base, messaging, locales) 11 years ago
gorhill f3f461e94c this fixes https://github.com/chrisaljoudi/uBlock/issues/1219 for Firefox 11 years ago
Deathamns d7418c9c45 Firefox: Title Case Context Menu Entry 11 years ago
Deathamns e90ea2c3ef Firefox: add localized descriptions to install.rdf 11 years ago
Deathamns b2c9dda8be Miscellaneous changes 11 years ago
Deathamns b95f974586 Fix build scipts' shebang, let -> const 11 years ago
Deathamns b6cee9dc3d Python2 compatibility for build scripts 11 years ago
Deathamns 6e40b641a2 Slight update for Python scripts 11 years ago
Deathamns 3de061b92b Firefox: set "en" as default locale 11 years ago
Deathamns 5bef16d88d Firefox: update manifest files when building 11 years ago
gorhill dd90ff1c57 code review re. last commit 11 years ago
gorhill 4fffc97954 untangling fennec code 11 years ago
gorhill 4d8f908022 #10: manually imported fixes from e762a29d30 11 years ago
gorhill 7c5cf28c33 this fixes https://github.com/chrisaljoudi/uBlock/issues/1219 for Firefox 11 years ago
gorhill 301e707e6b refactored tabs/context code 11 years ago
gorhill c6d89dab64 removed spurious lines of code 11 years ago
YFdyh000 8102f3467e Correct issue links 11 years ago
gorhill a14f487488 new switch: toggle cosmetic filtering on/off for a site 11 years ago
AlexVallat 3607286a3e Changes following review 11 years ago
AlexVallat 4f825399f6 No need for special treatment for about:blank and about:newtab 11 years ago
AlexVallat 0a736dc270 Fix for #1122 11 years ago
AlexVallat a0b86f7d25 Remove onNavigation from onTabSelect, as mentioned in #1125 11 years ago
gorhill 882d1d9425 translation work from https://crowdin.com/project/ublock 11 years ago
gorhill d8bbe9a501 this fixes #1013, #1062 (draft) 11 years ago
AlexVallat 3ec2c29ef0 Use a nsIWebProgressListener instead of a tabsProgressListener for location change monitoring 11 years ago
AlexVallat ca8330d4f0 Cleanup for DOMTitleChanged listener 11 years ago
gorhill dbbd13a8d5 #1013: Firefox support 11 years ago
AlexVallat ed43097de8 Fix for #1072: Listen to DOMTitleChanged as additional navigation event for Fennec 11 years ago
gorhill a179821f3d #1057: cleanup code 11 years ago
gorhill eb70156b90 this fixes #1057 11 years ago
Deathamns b93759e2f9 Firefox: handle nsIContentPolicy.TYPE_IMAGESET
https://bugzil.la/1055750
11 years ago
Deathamns 687e9d84a9 Firefox: register unload event sooner 11 years ago
Deathamns e38cd3c7f1 Firefox: check for non-existent button 11 years ago
AlexVallat 28923771dc Robustness changes from watching logs in Fennec 11 years ago
Deathamns 1629accdb8 Firefox: determine tabIds via <browser> 11 years ago
Deathamns 8f9be95a08 abp:subscribe fixes
Test a[href^="abp:"], since the protocol probably not used for anything
else, also "a", because ABP checks only anchors, and these links are made
only for ABP.

Also, the event target is not always the link, so at least some parents
should be tested as well.
11 years ago
Deathamns 0124096789 Firefox: update buttons when addon is enabled 11 years ago
AlexVallat 2643125f66 Fixing #1017, only apply switch to about:blank or about:newtab if not loading 11 years ago
AlexVallat aa80edc171 Testing alternative tab ID for Fennec (issue #1001) 11 years ago
Deathamns 8474fce1bc No hasAttribute on tab objects in Fennec 11 years ago
gorhill 365593a389 move platform-specific images to their respective platform 11 years ago
gorhill 1bfe037de6 fixed ff icons 11 years ago
Deathamns cba6d2346e Firefox: badge color fix 11 years ago
Deathamns b5c47c898e Code organizing 11 years ago
Deathamns fffec145b9 Firefox: load content-scripts on extension start 11 years ago
Deathamns 539826310b Firefox: bypass cache when reloading a tab 11 years ago
Deathamns f3d62969ee Remove unnecessary fallback code for downloading 11 years ago
gorhill 0b81faebee this helps #993 11 years ago
AlexVallat 16ff5db8f4 Trying to fix merge 11 years ago
AlexVallat c9a8c8d6df Changes following review at https://github.com/gorhill/uBlock/pull/956#issuecomment-78047032 11 years ago
gorhill 651fa9c16a this fixes #967 11 years ago
Deathamns 96454afb20 Firefox: change badge color in onWidgetUnderflow 11 years ago
Deathamns f5c675e8b8 Firefox: different way for reloading a tab 11 years ago
AlexVallat 64e3310a36 Initial UI support for Fennec 11 years ago
Deathamns ef9301276c Firefox: block popups earlier 11 years ago
Deathamns 6c4428ff73 Firefox: workaround for #886 11 years ago
Deathamns 6952156891 Firefox: handle behind-the-scene redirects 11 years ago
Deathamns 42e84760dc Fennec: fix tab title 11 years ago
AlexVallat 21c8bfa537 https://github.com/gorhill/uBlock/issues/524#issuecomment-76620479 11 years ago
Deathamns e965b1eef7 Firefox/Fennec fixes 11 years ago
AlexVallat dc5761164b Fixing up basic functionality for Fennec 11 years ago
Deathamns 29aa1d393d Firefox/Fennec code cleanup 11 years ago
Cheng Sun dee9c4706f Fennec WIP #2 11 years ago
Cheng Sun b843ddfd70 Use named "same document" constant instead of hardcoding 11 years ago
Deathamns 33af8467b8 Firefox: toolbar icon fixes for Firefox 36+ 11 years ago
Deathamns 223240bba0 Firefox: behind-the-scene request types 11 years ago
Deathamns bace1708f9 Remove unused code 11 years ago
gorhill 178bded97f this fixes #730 11 years ago
gorhill 8f7d7d233b link to relevant jsperf 11 years ago
gorhill e0eaf97eb4 use static function instead of closure 11 years ago
Deathamns 8db990daa3 Firefox: get the version number from the fragment 11 years ago
Deathamns 1ee1bd052a Firefox: use correct data for parentFrameId 11 years ago
Deathamns f4a7378ff2 Firefox: each frame should have a unique ID 11 years ago
Deathamns 97ae38c584 Firefox: remove evalInSandbox
Probably we won't eval plain text code, which makes it unnecessary, also
this way the validator on AMO won't complain about it.
11 years ago
Deathamns a61e73d212 Firefox: vAPI.tabs.onNavigation() for about: pages 11 years ago
Deathamns 6d8554da76 Firefox: behind-the-scene requests / non-http tabs 11 years ago
gorhill 24f1ef515f more fixes for #105 11 years ago
gorhill 56d4cf6a6a code review: jshint'ed 11 years ago
gorhill 26e80a8c5c this fixes #536 11 years ago
gorhill cfa4b7ebe5 new version 11 years ago
gorhill 05b835dd73 started work on #105, #475, and possibly #510 11 years ago
gorhill a3c4df4e00 new revision 11 years ago
Chris c64e26deea Fix `set` for Firefox & Safari (don't set non-own properties in for..in loop) 11 years ago
gorhill 3e71ee90c6 new revision + fixed frame parent id 11 years ago
gorhill db6ed71060 fixed bad test 11 years ago
gorhill f9ca8d5040 new revision 11 years ago
Deathamns 0241870671 Firefox: minimal effort to support older versions 11 years ago
Deathamns 86e852a722 Firefox: suppress some "unsafe CPOW usage" message 11 years ago
Deathamns 859482fff2 Firefox: fix tab closing issue (pop-up blocking) 11 years ago
Deathamns ab556945f3 URL handling changes 11 years ago
gorhill 8a1b6d806e code review re #498 11 years ago
gorhill 3bd9eee897 this fixes one part of #498 11 years ago
Deathamns d1a5a1856f Firefox: lower popup resize delay 11 years ago
Deathamns 1c64aa4af4 Firefox: fix tooltip animation 11 years ago
gorhill e90bc19420 this fixes #490 11 years ago
Deathamns 5a422a681d Fix popup tooltips and sizing for Firefox 11 years ago
Deathamns 09d605fa04 Implement vAPI.insertHTML
The purpose of this API is basically to satisfy AMO reviewers in the
future, since the use of innerHTML with variables (i.e., not plain text) will
be rejected without any questions.

Since this is not a problem for browsers other than Firefox, they will
use simple innerHTML assignment, however safe-parsing could be implemented
for them too.
11 years ago
Deathamns 6151b10bd8 Firefox: remove unloading from vAPI 11 years ago
Deathamns 00e081f3fe Miscellaneous changes 11 years ago
Deathamns 89fe48ae66 Firefox: fixed content scripts? 11 years ago
Deathamns 7a5d174aa4 Firefox,Safari: implement vAPI.tabs.reload 11 years ago
Deathamns 648e5e2d67 Firefox: simplify vAPI.app.restart 11 years ago
Deathamns bc9c9ca2d9 Firefox: blocking improvements / other fixes
- Implement pop-up blocking
- Support blocking redirected requests
- Fix Local mirroring and inline-script blocking
- Block content on data: and about:blank pages
11 years ago
Deathamns f1e9bc363e Firefox: popup size for menu-panel 11 years ago
Deathamns 71b0c22c9d Firefox: fix copy-paste memory leak 11 years ago
Deathamns ec337b61af Firefox: implement vAPI.app.restart 11 years ago
Deathamns 2a2fa8da75 Code styling 11 years ago
Deathamns a3b2edf65e Firefox: ownsWeak=true for observers, +minor mods 11 years ago
Deathamns 4f8c0e65e6 Make vAPI.setIcon less Chromium specific 11 years ago
Deathamns 488be6ef3e Popup related changes 11 years ago
Deathamns 749c723d57 Firefox: new method for request handling
Now both nsIContentPolicy and on-http-* observers are used for net request
monitoring.

Reasons:
 - In many cases, nsIContentPolicy.shouldLoad is invoked twice for the same
   resource, because of the speculative parsing.
 - nsIContentPolicy.shouldLoad don't have information about the channel,
   so it can't redirect the request, nor change its headers, however
   on-http-opening-request can.

Also, local mirroring and inline-script blocking has been implemented.
11 years ago
Deathamns 84a0bbf18e Firefox: proper cleanup for context-menu item 11 years ago
Deathamns 0769160b34 Firefox: move callback to last call 11 years ago
Deathamns c2af79c996 Firefox: saved prefs were overwritten by defaults 11 years ago
Deathamns 6b4a9a1962 Firefox: add missing vAPI.onLoadAllCompleted 11 years ago
Deathamns 4833012ae3 Firefox: improve vAPI.tabs.getTabId 11 years ago
Deathamns 85eded970b Firefox: implement vAPI.contextMenu 11 years ago
Deathamns dd25e64134 Firefox: revert previous change
Initializing the extension with AddonManager takes too long (at least for
this extension).
When starting the browser, tabs loaded before the extension could, and
because of that, blocking didn't work.
It works better, if it's initialized when the window's DOM is ready.
11 years ago
Deathamns 3ce0d0aded Firefox,Safari: fill vAPI.app in a different way
Pass the extension data (name and version) as the fragment of the URL
for the background script, so vAPI.app can be filled without using XHR
to read the manifest files.
11 years ago
Deathamns feea508a8e Firefox: location.host isntead of app.cleanName 11 years ago
Deathamns fb2cb5c41c Add license headers, plus some code styling 11 years ago
Deathamns 6eaa7e02b8 Firefox: minor changes 11 years ago
Deathamns f17ad2f1a5 Firefox: implement vAPI.tabs.injectScript 11 years ago
Deathamns 4e1b938f25 Firefox: 'load' -> 'DOMContentLoaded' 11 years ago
Deathamns e0d742b040 Firefox: initialize buttons when DOM is ready 11 years ago
Deathamns f432dfa856 Firefox: observe main_frame requests too 11 years ago
Deathamns 7348d11871 Firefox: fix styling for toolbar button 11 years ago
Deathamns e2105c395e Firefox: implement toolbar button and popup 11 years ago
Deathamns 055c398916 Firefox: blocking and content scripts for e10s 11 years ago
Deathamns e724d1a9e2 Firefox: add basic blocking + some fixes 11 years ago
Deathamns a6b4e3dee0 Firefox: partial vAPI.tabs implementation 11 years ago
Deathamns cba32c8eb4 Firefox: implement vAPI.storage via SQLite 11 years ago
Deathamns 54868d149a Initial Firefox port (base, messaging, locales) 11 years ago
Deathamns 08403a44f8 Implement vAPI.insertHTML
The purpose of this API is basically to satisfy AMO reviewers in the
future, since the use of innerHTML with variables (i.e., not plain text) will
be rejected without any questions.

Since this is not a problem for browsers other than Firefox, they will
use simple innerHTML assignment, however safe-parsing could be implemented
for them too.
11 years ago
Deathamns bbfcb4eea9 abp:subscribe fixes
Test a[href^="abp:"], since the protocol probably not used for anything
else, also "a", because ABP checks only anchors, and these links are made
only for ABP.

Also, the event target is not always the link, so at least some parents
should be tested as well.
11 years ago
Deathamns aff7501596 Firefox: different kind of vAPI.localStorage 11 years ago
Deathamns 10f364c153 Firefox,Safari: vAPI.localStorage 11 years ago
gorhill c80280bd2d this fixes #792 11 years ago
Deathamns c9b1298344 Remove unnecessary fallback code for downloading 11 years ago
gorhill c6e3b5a81b Firefox: oops 11 years ago
gorhill 3e43478e13 changes re #993 for firefox platform 11 years ago
Deathamns 829f80e1da Fix prorblems caused by vAPI.insertHTML 11 years ago
Deathamns 618502354f Implement vAPI.insertHTML
The purpose of this API is basically to satisfy AMO reviewers in the
future, since the use of innerHTML with variables (i.e., not plain text) will
be rejected without any questions.

Since this is not a problem for browsers other than Firefox, they will
use simple innerHTML assignment, however safe-parsing could be implemented
for them too.
11 years ago
Deathamns e2c0beb663 Miscellaneous changes 11 years ago
Deathamns 3dc8e88c75 Popup related changes 11 years ago
Deathamns 9cb78c2575 Add license headers, plus some code styling 11 years ago
Deathamns 7c69a427c2 Firefox: implement toolbar button and popup 11 years ago
Deathamns 799aafbcd4 Firefox: implement vAPI.storage via SQLite 11 years ago
Deathamns e98b514a51 Initial Firefox port (base, messaging, locales) 11 years ago
gorhill db49291fa6 this fixes https://github.com/chrisaljoudi/uBlock/issues/1219 for Firefox 11 years ago
gorhill 2fbca2cc09 forgot to add shutdown to other platforms (re. https://github.com/gorhill/uMatrix/issues/144) 11 years ago
Deathamns afaf6aff9b vAPI.sessionId, element-picker dialog as iframe
vAPI.sessionId - random ID generated every time when a page loads.

Having the dialog in an iframe lowers the chance of interference with the
styling of the page, also avoids using innerHTML (AMO complaint).
11 years ago
Chris 0fbaf41d09 Remove previous Safari overhead; cleanup workarounds from rest of code 11 years ago
Deathamns 4b3d6716ff Firefox: remove evalInSandbox
Probably we won't eval plain text code, which makes it unnecessary, also
this way the validator on AMO won't complain about it.
11 years ago
Deathamns f196d31a2f Firefox: behind-the-scene requests / non-http tabs 11 years ago
gorhill 995236c6a9 not needed 11 years ago
Deathamns a7f15f0b71 URL handling changes 11 years ago
Deathamns a6acb50892 Firefox: fixed content scripts? 11 years ago
Deathamns 5f92ce4599 Firefox: improvements for content scripts 11 years ago
Deathamns 1a1d1b1c4b Code styling 11 years ago
Deathamns 3e39e1bd9f Firefox: new method for request handling
Now both nsIContentPolicy and on-http-* observers are used for net request
monitoring.

Reasons:
 - In many cases, nsIContentPolicy.shouldLoad is invoked twice for the same
   resource, because of the speculative parsing.
 - nsIContentPolicy.shouldLoad don't have information about the channel,
   so it can't redirect the request, nor change its headers, however
   on-http-opening-request can.

Also, local mirroring and inline-script blocking has been implemented.
11 years ago
Deathamns e70bf61206 Add license headers, plus some code styling 11 years ago
Deathamns 1ae15f1a61 Firefox: implement vAPI.tabs.injectScript 11 years ago
Deathamns 747f6f9955 Firefox: implement toolbar button and popup 11 years ago
Deathamns e96e535f3d Firefox: add basic blocking + some fixes 11 years ago
Deathamns dd6f3cc4b3 Firefox: partial vAPI.tabs implementation 11 years ago
Deathamns 8f0cf1d340 Initial Firefox port (base, messaging, locales) 11 years ago
AlexVallat cc85464eb5 Tidying .xul location, update linux script to match windows one 11 years ago
gorhill e4688ecf22 this fixes https://github.com/chrisaljoudi/uBlock/issues/1219 for Firefox 11 years ago
Deathamns 2b365ec4c1 Firefox: update application versions 11 years ago
AlexVallat 15df6b8e4f Initial UI support for Fennec 11 years ago
Deathamns 6812ed591a Firefox/Fennec code cleanup 11 years ago
Cheng Sun cce2e85eeb Fennec WIP #2 11 years ago
Deathamns 0397ea0eac Remove unused code 11 years ago
Deathamns ab0b1936b4 Firefox: get the version number from the fragment 11 years ago
Deathamns ad19bae5e1 Firefox: add localized descriptions to install.rdf 11 years ago
Deathamns 2f7be81668 Firefox: minimal effort to support older versions 11 years ago
Deathamns 839c6300b8 Miscellaneous changes 11 years ago
Deathamns 8b01ed93ed Firefox: update manifest files when building 11 years ago
Deathamns 2750dac88c Firefox: implement toolbar button and popup 11 years ago
Deathamns 691c261118 Firefox: partial vAPI.tabs implementation 11 years ago
Deathamns ee210ad15c Firefox: implement vAPI.storage via SQLite 11 years ago
Deathamns 91ad0d65a8 Initial Firefox port (base, messaging, locales) 11 years ago
AlexVallat 8af9d7f361 Use a nsIWebProgressListener instead of a tabsProgressListener for location change monitoring 11 years ago
Deathamns 8c9382d4db Firefox: load content-scripts on extension start 11 years ago
Deathamns 9aaee014d4 Miscellaneous changes 11 years ago
Deathamns 9317615bc7 Firefox: improvements for content scripts 11 years ago
Deathamns 3646ecbeb2 Code styling 11 years ago
Deathamns e9b3b5bcd2 Firefox: new method for request handling
Now both nsIContentPolicy and on-http-* observers are used for net request
monitoring.

Reasons:
 - In many cases, nsIContentPolicy.shouldLoad is invoked twice for the same
   resource, because of the speculative parsing.
 - nsIContentPolicy.shouldLoad don't have information about the channel,
   so it can't redirect the request, nor change its headers, however
   on-http-opening-request can.

Also, local mirroring and inline-script blocking has been implemented.
11 years ago
Deathamns 24bc4c9f47 Remove duplicate 'use strict'; 11 years ago
Deathamns dced33ca44 Add license headers, plus some code styling 11 years ago
Deathamns bc199316be Firefox: implement toolbar button and popup 11 years ago
Deathamns 41f3579461 Firefox: blocking and content scripts for e10s 11 years ago
Deathamns 05f174ab97 Firefox: add basic blocking + some fixes 11 years ago
Deathamns ac201e2f8e Firefox: partial vAPI.tabs implementation 11 years ago
Deathamns 3b5826fe75 Firefox: implement vAPI.storage via SQLite 11 years ago
Deathamns 24163694f4 Firefox: implement content scripts 11 years ago
Deathamns efb4b98986 Initial Firefox port (base, messaging, locales) 11 years ago
gorhill beb70b8343 code review 11 years ago
gorhill a26c893339 this fixes #43 11 years ago
gorhill 73dc3ba2b0 removed spurious lines of code 11 years ago
gorhill 231afb565a translation work from https://crowdin.com/project/ublock 11 years ago
AlexVallat 75ac4b979e Changes following review 11 years ago
gorhill 22bad6201e translation work from https://crowdin.com/project/ublock 11 years ago
AlexVallat 822d78be1b More restrictive monitoring.
Probably doesn't make a difference, but at least theoretically more efficient.
11 years ago
AlexVallat c5546e322f Use a nsIWebProgressListener instead of a tabsProgressListener for location change monitoring 11 years ago
Deathamns fd3e24713f Firefox: load content-scripts on extension start 11 years ago
Deathamns d3223766c8 Firefox: abp:subscribe 11 years ago
gorhill 7243aedf17 this fixes #224 for Chromium 11 years ago
Deathamns b1acfb08e6 Firefox/Fennec fixes 11 years ago
Deathamns 7b5ea26f28 Firefox/Fennec code cleanup 11 years ago
Deathamns df2ffce8aa Firefox: match Chrome's behavior with frame ids 11 years ago
gorhill 1b66ce8b40 #795: code review as per @Deathamns feedback 11 years ago
gorhill 0f629c9df8 this fixes #795 11 years ago
Deathamns a6dfe3f416 Firefox: remove unused arguments 11 years ago
Deathamns 1e6f29e64e Firefox: don't close popups after user interaction 11 years ago
Deathamns 052f296181 Doesn't work 11 years ago
Deathamns eecc860be7 Firefox: use correct data for parentFrameId 11 years ago
Deathamns 65cecfe263 Firefox: each frame should have a unique ID 11 years ago
Deathamns 45cd3305d1 Firefox: remove evalInSandbox
Probably we won't eval plain text code, which makes it unnecessary, also
this way the validator on AMO won't complain about it.
11 years ago
Deathamns cd52352995 Update frameModule.js 11 years ago
Deathamns 92838e16d3 Firefox: behind-the-scene requests / non-http tabs 11 years ago
Deathamns ae66f96570 Firefox: minimal effort to support older versions 11 years ago
Deathamns 6250109a78 Firefox: fix tab closing issue (pop-up blocking) 11 years ago
gorhill f482164601 removed unused code for the time being 11 years ago
Deathamns c46d25874d URL handling changes 11 years ago
Deathamns 46883756e5 Miscellaneous changes 11 years ago
Deathamns f51bb42fa4 Firefox: fixed content scripts? 11 years ago
Deathamns de1f643510 Firefox: improvements for content scripts 11 years ago
Deathamns f570bc7f48 Firefox: simplify vAPI.app.restart 11 years ago
Deathamns 6571a0700f Firefox: workaround for the e10s crash 11 years ago
Deathamns 9f4e9d48da Firefox: blocking improvements / other fixes
- Implement pop-up blocking
- Support blocking redirected requests
- Fix Local mirroring and inline-script blocking
- Block content on data: and about:blank pages
11 years ago
Deathamns 40b191e9f4 Code styling 11 years ago
Deathamns de2f0bb292 Firefox: ownsWeak=true for observers, +minor mods 11 years ago
Deathamns 1b71f8bba3 Firefox: new method for request handling
Now both nsIContentPolicy and on-http-* observers are used for net request
monitoring.

Reasons:
 - In many cases, nsIContentPolicy.shouldLoad is invoked twice for the same
   resource, because of the speculative parsing.
 - nsIContentPolicy.shouldLoad don't have information about the channel,
   so it can't redirect the request, nor change its headers, however
   on-http-opening-request can.

Also, local mirroring and inline-script blocking has been implemented.
11 years ago
Deathamns 08f87c72bb Fix build scipts' shebang, let -> const 11 years ago
Deathamns 54d264646a Firefox: better way to get the messageManager 11 years ago
Deathamns 6faa9e85c2 Add license headers, plus some code styling 11 years ago
Deathamns afe6a29c36 Firefox: minor changes 11 years ago
Deathamns 0579c1bcaa Firefox: fix script injection 11 years ago
Deathamns d66b8aa329 Firefox: implement vAPI.tabs.injectScript 11 years ago
Deathamns 12ca303901 Firefox: fix 'main_frame' for e10s 11 years ago
Deathamns 0fd304947c Firefox: initialize buttons when DOM is ready 11 years ago
Deathamns 500213f479 Firefox: observe main_frame requests too 11 years ago
Deathamns 33c052e397 Firefox: fix styling for toolbar button 11 years ago
Deathamns 4f7070cf5d Firefox: implement toolbar button and popup 11 years ago
Deathamns 7f422ae479 Firefox: blocking and content scripts for e10s 11 years ago
gorhill 38a1cce634 this fixes https://github.com/chrisaljoudi/uBlock/issues/1219 for Firefox 11 years ago
Deathamns 5ab3550697 Firefox: minor changes 11 years ago
Deathamns 7310e1eaa0 Firefox: update manifest files when building 11 years ago
Deathamns c5517fa6b4 Firefox: add basic blocking + some fixes 11 years ago
Deathamns c1cfdc61da Initial Firefox port (base, messaging, locales) 11 years ago
gorhill 13eb2edb59 as per comment in e762a29d30 11 years ago
gorhill 031f6a90ee #10: manually imported fixes from e762a29d30 11 years ago
gorhill 1ab6e08f71 this fixes https://github.com/chrisaljoudi/uBlock/issues/1219 for Firefox 11 years ago
Deathamns 0369bf4b6a Firefox: fix extension restarting 11 years ago
Deathamns 5cac2aea84 Firefox: get the version number from the fragment 11 years ago
Deathamns 73945064ed Firefox: initialize when hiddenDOMWindow is ready
Probably not the best way to detect its readiness, but it works for now.
This fix should solve the incompatibility with the StartupMaster add-on.
11 years ago
Deathamns 56bac7a565 URL handling changes 11 years ago
Deathamns 6123cc8e15 Firefox: simplify vAPI.app.restart 11 years ago
Deathamns 6c06436452 Firefox: popup size for menu-panel 11 years ago
Deathamns 4090805223 Firefox: implement vAPI.app.restart 11 years ago
Deathamns ff7c9e96ae Code styling 11 years ago
Deathamns 37a9f4d762 Firefox: revert previous change
Initializing the extension with AddonManager takes too long (at least for
this extension).
When starting the browser, tabs loaded before the extension could, and
because of that, blocking didn't work.
It works better, if it's initialized when the window's DOM is ready.
11 years ago
Deathamns 81c710c360 Firefox,Safari: fill vAPI.app in a different way
Pass the extension data (name and version) as the fragment of the URL
for the background script, so vAPI.app can be filled without using XHR
to read the manifest files.
11 years ago
Deathamns a9b91ee0b6 Add license headers, plus some code styling 11 years ago
Deathamns 29d2cdc015 Firefox: initialize buttons when DOM is ready 11 years ago
Deathamns 8e5850423c Firefox: implement toolbar button and popup 11 years ago
Deathamns 94a47e7d4d Firefox: partial vAPI.tabs implementation 11 years ago
Deathamns ae36081605 Initial Firefox port (base, messaging, locales) 11 years ago
gorhill 19ddf588fb i18n work 11 years ago
gorhill ed67045360 first pass 11 years ago
gorhill a5d051de3f this fixes #792 11 years ago
Deathamns 7ef116e85b Remove unnecessary fallback code for downloading 11 years ago
Chris 33ffb83f23 Fix vAPI.download across all platforms 11 years ago
gorhill daede90cc7 this helps #993 11 years ago
gorhill 72a3819c08 #685: code review 11 years ago
Deathamns 32ad9420de Chrome: bypass options_ui 11 years ago
Deathamns 86cae37cb6 Implement vAPI.insertHTML
The purpose of this API is basically to satisfy AMO reviewers in the
future, since the use of innerHTML with variables (i.e., not plain text) will
be rejected without any questions.

Since this is not a problem for browsers other than Firefox, they will
use simple innerHTML assignment, however safe-parsing could be implemented
for them too.
11 years ago
Deathamns d789ffa442 Popup related changes 11 years ago
Deathamns 1807c74580 Add license headers, plus some code styling 11 years ago
Raymond Hill 4c12408b1e jshint 11 years ago
Raymond Hill 09123d6971 use "platform" as suggested in #360 11 years ago
Raymond Hill d6d7f9347a use "platform" as suggested in #360 11 years ago
Raymond Hill 5bc14936d5 jshint 11 years ago
Raymond Hill e260b19702 restore original semantic 11 years ago
Raymond Hill 5cd1285ee5 further separate platform-specific code 11 years ago
Deathamns e54c09da8a Ports cleanup
- Remove duplicate platform specific (from src/) and other unnecessary
  files
- Fix and update vapi-*.js files for Safari
- Add tools/make-safari.sh
- Move js/vapi-appinfo.js to meta/ (so, every vendor specific file will be
  at the same location)
11 years ago
Deathamns e6e3868080 Building extension files
Adds possibility to build extension files (Chrome and Safari) from
command line.

To run from the project directory:
python tools/build.py [meta]

If the optional `meta` argument is set, then only the manifest and
language files are uptated.
Without that everything is being built (extension files too) into the
`dist/build/version_number` folder.

For Chrome there will be two files, a crx, and a .zip file which
includes the key.pem private key (so this must not be shared,
it's just a bit help for publishing it to the Chrome Web Store).

Beside the extension files, update-files are generated too (for self
hosting - Safari needs it).
11 years ago
Deathamns 9f23b45651 Site-patching possibility for Safari
Safari's extension API doesn't provide a way to intercept requests
initiated by plugins, so those cases need special care (or at least the
popular sites).

This commit adds a new JS file (sitepatch-safari.js), which will store the
patches (if it's possible to create one) for specific sites.

As an example, this commit includes a technique for removing in-video ads
from YouTube videos.
11 years ago
Deathamns 686403af38 Avoid using Chrome's @@bidi_* type i18n messages
... for the sake of portability.

When including vapi-common.js in an HTML file, then the body element there
will have a "dir" attribute filled with the current locale's direction
(ltr or rtl).

The following languages are considered right-to-left: ar, he, fa, ps, ur.
Everything else is left-to-right.

After the "dir" attribute is set, we can decide in CSS which elements
should have different styling for rtl languages (e.g., body[dir=rtl] #id).
11 years ago
Deathamns 358ec2c644 Fix download URL for the fallback method 11 years ago
Deathamns da0e62dff6 Use HTML5 download instead of extension API
Benefits:
- Cross browser solution (however only for relatively new browsers)
- Doesn't need extra permission in Chrome

If the browser doesn't suppor the download attribute, then a new tab will
be opened with the exported data.

Other changes:
- Start the download only if the data is not empty (previously the
  download started anyway)
- Reorder code in vapi-client.js for Safari, so unnecessary code doesn't
  run on extension pages
11 years ago
Deathamns 25caa9241c Set default dimensions for Safari's popup 11 years ago
Deathamns 2216b7f32e Implement popup autoresizing for Safari
By default, Safari doesn't resize the popup to its content, but it's
possible to set the size pragmatically.
The popup will be resized every time when a change happens in the DOM tree.
11 years ago
Deathamns db83931fb7 Add .jshintrc, and use the "use strict" directive
.jshintrc's otion-set is a personal choice, merely a suggestion.
Beside that, it includes some common globals for specific browsers, so
there's no need to set the globals in every .js file.

In order to force strict coding, "use strict" directive was added into
every .js file.
11 years ago
Deathamns cd08ad9782 Work on vendor API abstraction, and near complete Safari support 11 years ago
gorhill 9bb22b65ec forgot to add shutdown to other platforms (re. https://github.com/gorhill/uMatrix/issues/144) 11 years ago
gorhill dd60a74e3f code review 11 years ago
gorhill 987acfef65 this fixes https://github.com/gorhill/uMatrix/issues/144 11 years ago
YFdyh000 5ff7909497 Correct issue links 11 years ago
gorhill 170f164288 had a doubt, had to check it worked as intended 11 years ago
Deathamns 4599486290 vAPI.sessionId, element-picker dialog as iframe
vAPI.sessionId - random ID generated every time when a page loads.

Having the dialog in an iframe lowers the chance of interference with the
styling of the page, also avoids using innerHTML (AMO complaint).
11 years ago
Chris db772dea22 Remove previous Safari overhead; cleanup workarounds from rest of code 11 years ago
gorhill 894921e23f not needed 11 years ago
Deathamns bd0b1638db URL handling changes 11 years ago
gorhill 9172fcd049 this fixes one part of #498 11 years ago
Deathamns 3d40e0b2aa Code styling 11 years ago
Deathamns 5ec2e067df Add license headers, plus some code styling 11 years ago
Deathamns ba47f39c47 Firefox: implement vAPI.tabs.injectScript 11 years ago
Deathamns 9c00fbfb3b Firefox: implement toolbar button and popup 11 years ago
gorhill 06398e8065 code review for #456 11 years ago
gorhill a036152cc7 this fixes #456: another unrelated bug unveil from previous fix 11 years ago
Raymond Hill 3d61e80d1c jshint 11 years ago
Raymond Hill 61fb46a87f use "platform" as suggested in #360 11 years ago
Raymond Hill b626b71b90 use "platform" as suggested in #360 11 years ago
Raymond Hill 247f85c9e2 jshint 11 years ago
Raymond Hill 0feefd6659 further separate platform-specific code 11 years ago
Deathamns 33e6728468 Ports cleanup
- Remove duplicate platform specific (from src/) and other unnecessary
  files
- Fix and update vapi-*.js files for Safari
- Add tools/make-safari.sh
- Move js/vapi-appinfo.js to meta/ (so, every vendor specific file will be
  at the same location)
11 years ago
Deathamns 03af075a64 Move MutationObserver shim
Since it will be used only for older Safari versions, move it to Safari
related code, so it doesn't pollute the content scripts.
11 years ago
Deathamns ef30ab4c2d Respect `defer` attribute when mirroring 11 years ago
Deathamns abb13424b4 Call XHR.open even if the request will be blocked
Without calling it an error may be thrown if other XHR parameters are set.
11 years ago
Deathamns d9c9627758 Only top window should have type `main_frame` 11 years ago
Deathamns 8f0172467a Remove unnecessary messaging workaround
A better fix was introduced in e36c702 for this issue.

The actual problem was that Safari when sends a message from the
background to content, then it passes to all the frames in the target tab,
but it doesn't make copies, it passes only references to the same object,
so if one frame modifies the message, then other frames would have
received the modified message.
11 years ago
Deathamns aebfb15aa2 Building extension files
Adds possibility to build extension files (Chrome and Safari) from
command line.

To run from the project directory:
python tools/build.py [meta]

If the optional `meta` argument is set, then only the manifest and
language files are uptated.
Without that everything is being built (extension files too) into the
`dist/build/version_number` folder.

For Chrome there will be two files, a crx, and a .zip file which
includes the key.pem private key (so this must not be shared,
it's just a bit help for publishing it to the Chrome Web Store).

Beside the extension files, update-files are generated too (for self
hosting - Safari needs it).
11 years ago
Deathamns a39572448d Fix messaging for Safari 11 years ago
Deathamns 08247fb5dd Preferences button for Safari
Brings back the possibility to click a checkbox which opens the extension
settings from Safari's Preferences/Extensions.
11 years ago
Deathamns 1a38523875 Messaging fixes
Checking the message name (and connectorId) is mandatory for Safari,
because when the background page sends a response back to a document,
then all the frames in its owner tab will receive the exact same
message, which could confuse the script in some cases.
11 years ago
Deathamns 0bc67a8819 Drop js-loader, updates from gorhill/uBlock/master 11 years ago
Deathamns d150eb6d1c Use different page navigation detection for Safari
The beforeNavigate event wasn't reliable (sometimes didn't fire, sometimes
fired unnecessary when opening a link with the middle click - which had a
workaround previously, but that's also removed by this commit).

When the event didn't fire, the bindTabToPageStats method didn't run,
and the requests related to the tab weren't blocked.
11 years ago
Deathamns ed1e23cfb1 Site-patching possibility for Safari
Safari's extension API doesn't provide a way to intercept requests
initiated by plugins, so those cases need special care (or at least the
popular sites).

This commit adds a new JS file (sitepatch-safari.js), which will store the
patches (if it's possible to create one) for specific sites.

As an example, this commit includes a technique for removing in-video ads
from YouTube videos.
11 years ago
Deathamns 192053ae99 document.head isn't always available in Safari 11 years ago
Deathamns 4df265b15f Badge number sometimes disappeared in Safari 11 years ago
Deathamns bc980a3522 Implement pop-up blocking for Safari
It works similarly to the xhr intercepting, except here the window.open
global function is being overridden.
Note that it could only work if the site's Content Security Policy allows
inline scripts, and the script on the webpage doesn't have a copy of the
original window.open function (it can happen only if the page has an
inline script in its head element, where the reference to the original
function can be obtained - likely this cannot be prevented in Safari).
11 years ago
Deathamns 9313a7f16b Element picker tweaks
- Indentation whitespace fixes.
- Use built-in getBoundingClientRect() function instead of self-made.
- Use built-in DOM API for manipulating the class attributes instead of
  altering the className property.
- Add pointer-events: none to the svgRoot when using
  document.elementFromPoint(), but if the browser (older Safari for
  example) doesn't take the pointer-events into account, then fall back to
  display: none.
- Initiate every part of the picker at the same time; when the message is
  received from the background. This way the selected element will have
  the red overlay immediately, instead of showing first the black overlay,
  then a few milliseconds later the red.
11 years ago
Deathamns c56d3ca717 Avoid using Chrome's @@bidi_* type i18n messages
... for the sake of portability.

When including vapi-common.js in an HTML file, then the body element there
will have a "dir" attribute filled with the current locale's direction
(ltr or rtl).

The following languages are considered right-to-left: ar, he, fa, ps, ur.
Everything else is left-to-right.

After the "dir" attribute is set, we can decide in CSS which elements
should have different styling for rtl languages (e.g., body[dir=rtl] #id).
11 years ago
Deathamns f514bf0835 Workaround for a messaging bug in Safari 11 years ago
Deathamns 5d08b448b0 Use HTML5 download instead of extension API
Benefits:
- Cross browser solution (however only for relatively new browsers)
- Doesn't need extra permission in Chrome

If the browser doesn't suppor the download attribute, then a new tab will
be opened with the exported data.

Other changes:
- Start the download only if the data is not empty (previously the
  download started anyway)
- Reorder code in vapi-client.js for Safari, so unnecessary code doesn't
  run on extension pages
11 years ago
Deathamns 34e1df3218 Script injection, element picker, messaging
- Add script injection to vAPI, plus a raw implementation for Safari
  (element-picker.js requires it)
- Tweak element picker to work with Safari
- Revert a change from previous commit: element-picker.js' background
  message handler (since actually it can have its own messaging channel)
- Don't send "undefined" reponses from background to content
11 years ago
Deathamns 4072264fa8 Add .jshintrc, and use the "use strict" directive
.jshintrc's otion-set is a personal choice, merely a suggestion.
Beside that, it includes some common globals for specific browsers, so
there's no need to set the globals in every .js file.

In order to force strict coding, "use strict" directive was added into
every .js file.
11 years ago
Deathamns a04a788eea Work on vendor API abstraction, and near complete Safari support 11 years ago
gorhill ef67930454 refactored tabs/context code 11 years ago
YFdyh000 01df7aa50a Correct issue links 11 years ago
gorhill 88feb450cc new switch: toggle cosmetic filtering on/off for a site 11 years ago
gorhill 12fcc2d4f3 this fixes #1128 11 years ago
gorhill ce549b283a this fixes #1013, #1062 (draft) 11 years ago
gorhill 607c977da2 to catch slow popups 11 years ago
gorhill 49f6504f58 code review 11 years ago
gorhill 415857c55b code review: floating net requests recategorized as behind-the-scene 11 years ago
gorhill 58c546ae08 #1051: test only root frames 11 years ago
gorhill 6ef4821b73 this fixes #510 11 years ago
Deathamns d1f5a78ca2 Chrome: fix tab/window focusing issues
- Opening a tab from incognito window didn't focus the target window
- Previously active tab was visible for a brief moment when an already
  opened tab was selected from another window
11 years ago
gorhill df27e666a7 code review re #118 11 years ago
Deathamns 390733affe Chrome: don't open an Options tab for each window 11 years ago
Deathamns 04a2486ca9 Remove unnecessary fallback code for downloading 11 years ago
gorhill 58793e4d7c this helps #993 11 years ago
gorhill 806d89e443 this fixes #967 11 years ago
Deathamns 193b469ffe Trailing whitespace 11 years ago
gorhill b5e7c9cd03 code review 11 years ago
gorhill ca8d24fb08 this fixes #862 11 years ago
gorhill 754aa6cd8b move profiling code to platform-specific 11 years ago
gorhill 6123bff635 link to relevant jsperf 11 years ago
gorhill b66683a581 avoid closures when processing messages 11 years ago
gorhill 184aec1409 code review 11 years ago
gorhill a0de897608 code review: jshint'ed 11 years ago
gorhill d50594e7eb this fixes #536 11 years ago
gorhill 529258de44 started work on #105, #475, and possibly #510 11 years ago
gorhill f4a853c611 this fixes one part of #498 11 years ago
Deathamns 14950c0c5f Code styling 11 years ago
Deathamns 847f86f947 Make vAPI.setIcon less Chromium specific 11 years ago
Deathamns c04c4ad4ab Chrome,Safari: fix typo and quotes 11 years ago
Deathamns 42d69aba2d Add license headers, plus some code styling 11 years ago
Deathamns 706a51c211 Firefox: blocking and content scripts for e10s 11 years ago
gorhill c752853031 lot of work related to dynamic filtering + new net requests logger 11 years ago
gorhill ed30222601 this fixes #455 11 years ago
gorhill 2a108917b5 another round of work re dynamic filtering 11 years ago
gorhill ce9acac0ae this fixes #418; also remove last chrome API reference from portable code 11 years ago
Raymond Hill 9515769fb5 extension restart is platform-dependent 11 years ago
Raymond Hill dccbbb3879 remove depending on vapi-appinfo.js 11 years ago
Raymond Hill c168d050f0 code review, fixes #383 11 years ago
Raymond Hill 6d5361cebc this fixes #380 11 years ago
Raymond Hill 97ca80d8bc use "platform" as suggested in #360 11 years ago
Raymond Hill ec6ad5ab80 use "platform" as suggested in #360 11 years ago
Raymond Hill e9accabf13 jshint 11 years ago
Deathamns 0f7ce05de2 Ports cleanup
- Remove duplicate platform specific (from src/) and other unnecessary
  files
- Fix and update vapi-*.js files for Safari
- Add tools/make-safari.sh
- Move js/vapi-appinfo.js to meta/ (so, every vendor specific file will be
  at the same location)
11 years ago
Raymond Hill ff6c553fb2 more spurious warnings in console foiled 11 years ago
Raymond Hill b9a1cab269 oops 11 years ago
Raymond Hill 2730d5954b fix spurious warning in console 11 years ago
Raymond Hill eb22ee51b3 avoid memory leaks in case no request handler found 11 years ago
Raymond Hill 2310d01835 requests must be deemed unhandled by default 11 years ago
Raymond Hill a2e45a024f now it's fixed... 11 years ago
Raymond Hill 2c209ab8d3 fix bug introduced in 338bf595078d0a7e52c70edd93f7b866dd00d314 11 years ago
Raymond Hill 8436f11e5a code review 11 years ago
Raymond Hill 789bfe09f6 eliminate overhead of creating two funcs/closure for each port connection 11 years ago
Raymond Hill 0a0c011960 give specific message handlers priority over default one 11 years ago
Raymond Hill aa1f793963 continued: corralling platform-specific stuff into their meta folder 11 years ago
Raymond Hill d09bbb3e1e further separate platform-specific code 11 years ago
Deathamns fccb781950 Ports cleanup
- Remove duplicate platform specific (from src/) and other unnecessary
  files
- Fix and update vapi-*.js files for Safari
- Add tools/make-safari.sh
- Move js/vapi-appinfo.js to meta/ (so, every vendor specific file will be
  at the same location)
11 years ago
Raymond Hill bd5492654f give specific message handlers priority over default one 11 years ago
Deathamns c3178cd442 Only top window should have type `main_frame` 11 years ago
Deathamns 8eb76e880c Building extension files
Adds possibility to build extension files (Chrome and Safari) from
command line.

To run from the project directory:
python tools/build.py [meta]

If the optional `meta` argument is set, then only the manifest and
language files are uptated.
Without that everything is being built (extension files too) into the
`dist/build/version_number` folder.

For Chrome there will be two files, a crx, and a .zip file which
includes the key.pem private key (so this must not be shared,
it's just a bit help for publishing it to the Chrome Web Store).

Beside the extension files, update-files are generated too (for self
hosting - Safari needs it).
11 years ago
Deathamns 29eabd44fd Fix messaging for Safari 11 years ago
Deathamns 872a478f91 Preferences button for Safari
Brings back the possibility to click a checkbox which opens the extension
settings from Safari's Preferences/Extensions.
11 years ago
Deathamns 3d535c6c69 Messaging fixes
Checking the message name (and connectorId) is mandatory for Safari,
because when the background page sends a response back to a document,
then all the frames in its owner tab will receive the exact same
message, which could confuse the script in some cases.
11 years ago
Deathamns bda4dba902 Use different page navigation detection for Safari
The beforeNavigate event wasn't reliable (sometimes didn't fire, sometimes
fired unnecessary when opening a link with the middle click - which had a
workaround previously, but that's also removed by this commit).

When the event didn't fire, the bindTabToPageStats method didn't run,
and the requests related to the tab weren't blocked.
11 years ago
Deathamns ceb18d4629 Site-patching possibility for Safari
Safari's extension API doesn't provide a way to intercept requests
initiated by plugins, so those cases need special care (or at least the
popular sites).

This commit adds a new JS file (sitepatch-safari.js), which will store the
patches (if it's possible to create one) for specific sites.

As an example, this commit includes a technique for removing in-video ads
from YouTube videos.
11 years ago
Deathamns c0b1565131 Badge number sometimes disappeared in Safari 11 years ago
Deathamns 31f9683d9f Implement pop-up blocking for Safari
It works similarly to the xhr intercepting, except here the window.open
global function is being overridden.
Note that it could only work if the site's Content Security Policy allows
inline scripts, and the script on the webpage doesn't have a copy of the
original window.open function (it can happen only if the page has an
inline script in its head element, where the reference to the original
function can be obtained - likely this cannot be prevented in Safari).
11 years ago
Deathamns 1be99cf58e Remove unnecessary comments 11 years ago
Deathamns 816dca2f33 Script injection, element picker, messaging
- Add script injection to vAPI, plus a raw implementation for Safari
  (element-picker.js requires it)
- Tweak element picker to work with Safari
- Revert a change from previous commit: element-picker.js' background
  message handler (since actually it can have its own messaging channel)
- Don't send "undefined" reponses from background to content
11 years ago
Deathamns 9981c25286 Remove storage change-event listener from Safari
Earlier, a technique was used to open the extension's Options page when
the user clicked a checkbox input at Safari's extension settings. The method was removed because:
- the Options page can be opened via the extension's toolbar button (which
  cannot be disabled in Safari, so it will be there all the time);
- involved more clicks than opening from the toolbar button;
- the string beside the checkbox couldn't be localized.
11 years ago
Deathamns be7668767f Minor changes
- Update assets from gorhill/uBlock/master
- Remove whitespace from element-picker.js
- Simplify code in profiler.js (btw, Date is still needed as fallback
  for older browsers)
- Clarification for Safari's storage where the QUOTA_BYTES came from
11 years ago
Deathamns 35ed9cd853 Work on vendor API abstraction, and near complete Safari support 11 years ago
gorhill 63aa4be9f7 reorganizing, preparing move to vAPI 11 years ago
gorhill 5d311f144b Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill 056e68da66 this fixes #42 11 years ago
Raymond Hill 9fa4e2b106 Update README.md 11 years ago
gorhill 86441e399a oops 11 years ago
Raymond Hill e7542cda41 Update README.md 11 years ago
gorhill 615ac8608c automated build 11 years ago
gorhill b63c5fd9b2 this fixes #138 11 years ago
gorhill d2ed6778c5 updated 3rd-party assets 11 years ago
gorhill 9f5a327ec8 update of 3rd-party assets 11 years ago
gorhill e8b8ca5861 translation work from crowdin 11 years ago
gorhill 01f7cea94f re #89: fixed using non-compliant color 11 years ago
gorhill 146a796240 this fixes #103 11 years ago
gorhill 991c237404 description too long for the store.. 11 years ago
gorhill 30a2bff2ba translation work from Crowdin 11 years ago
gorhill 7b90a9ab6a updated 3rd-party assets 11 years ago
gorhill c75ac0cf57 new revision 11 years ago
Raymond Hill 3bf0624dc5 Merge pull request #102 from emanueLczirai/semicolon1
missing semicolon
11 years ago
emanueLczirai 7085beb66a missing semicolon 11 years ago
gorhill 09bec60d43 translation work from crowdin 11 years ago
gorhill b1bc91f070 minor edits 11 years ago
gorhill 0770930c6c new revision 11 years ago
gorhill 531a6cda3e screenshot for stores 11 years ago
gorhill 0174955287 comment re potential redundant eval 11 years ago
gorhill fb5d93d207 translation work from Crowdin 11 years ago
gorhill b68ba6d728 this fixes #82 11 years ago
Raymond Hill dec25f57be fixed too long descrption 11 years ago
Raymond Hill 5fe8c04539 translation work from Crowdin 11 years ago
Raymond Hill eab0827e9f new revision 11 years ago
Raymond Hill f0063372c5 this fixes #77 11 years ago
Raymond Hill 5777dc0b15 code review: actually no `file:` should occurs within `https:` doc 11 years ago
Raymond Hill baa8e86fd4 this addresses issue raised in #71 11 years ago
Raymond Hill b62fb94a00 code review 11 years ago
Raymond Hill 44533d77eb this fixes #72 11 years ago
Raymond Hill e39b36beda code review; make strict https break less stuff on new tab page 11 years ago
Raymond Hill 36233c7325 vertical ellispsis instead 11 years ago
Raymond Hill 0a8c37f46a for wiki 11 years ago
Raymond Hill 2b346a3f46 Update README.md 11 years ago
Raymond Hill 10a684faa6 privacy-friendly settings 11 years ago
Raymond Hill ee361ae37f comments 11 years ago
Raymond Hill a31351c6f9 doc is hardcoded now 11 years ago
Raymond Hill bf5b6c4517 code review 11 years ago
Raymond Hill 9a93c2375c move "Strict HTTPS" last since now it is built-in the browser 11 years ago
Raymond Hill 6375aaaccc translation work from Crowdin 11 years ago
Raymond Hill cf02253cdd this should help futur occurrences of #65 11 years ago
Raymond Hill dbac4f742c Update README.md 11 years ago
Raymond Hill 11a0b89574 Update README.md 11 years ago
Raymond Hill dc3de2a3ca make ua-spoofing code easier to read from dev tools 11 years ago
Raymond Hill 782d066fd9 translation work from Crowdin 11 years ago
Raymond Hill df915bbf6c update of 3rd-party assets 11 years ago
Raymond Hill 40bc8087e5 this fixes #61 11 years ago
Raymond Hill 50dca35543 screenshots for per-scope switches 11 years ago
Raymond Hill 67d6782b73 revised referrer spoofing help box as per new behavior 11 years ago
Raymond Hill 238e6c3536 re #61 11 years ago
Raymond Hill 0832eaef6d revised referrer help text to match new behavior 11 years ago
Raymond Hill f2ca052aca translation work from Crowdin 11 years ago
Raymond Hill 10b708aee9 clean before build 11 years ago
Raymond Hill 5d8bae3da2 this fixes #59 11 years ago
Raymond Hill 82642f1fad new version 11 years ago
Raymond Hill fe478610bd translation work from Crowdin 11 years ago
Raymond Hill 977f94a50a fine-tuning for RTL languages 11 years ago
Raymond Hill d01ab961b8 this fixes #7, #36 11 years ago
Raymond Hill ce6305210c UI work toward fixing #7, #36 11 years ago
Raymond Hill 5f3dc76b32 code review 11 years ago
Raymond Hill 5e19edaab7 ability to foil mixed content 11 years ago
Raymond Hill 5ba8f58094 ensure switches are listed first: more convenient 11 years ago
Raymond Hill 7429a491d7 transation work from Crowdin 11 years ago
Raymond Hill 2962bd19e2 cide review 11 years ago
Raymond Hill 4aab150af3 infrastructure work toward addressing #7, #36 11 years ago
Raymond Hill 0e23caeec4 Update README.md 11 years ago
gorhill 3524c12924 fixed double definition as per 4bf6664d6b 11 years ago
gorhill f0a58ad06f bring back color hint for site-level scope 11 years ago
gorhill bde5c82a3d translation work from Crowdin 11 years ago
gorhill e2e4eb56fb typo 11 years ago
gorhill cc316dcda7 Merge branch 'master' of https://github.com/gorhill/uMatrix 11 years ago
gorhill 3edd9eabc6 export must be on left side since permanent rules are exported 11 years ago
Raymond Hill 6f8f0295a8 Update README.md 11 years ago
Raymond Hill 40d8c4ecef Update README.md 11 years ago
gorhill 4502124975 screenshots for Opera 11 years ago
gorhill 4988dd7927 new revision 11 years ago
gorhill 8875bd57b2 Opera version 11 years ago
gorhill 4211613055 fix rendering of mu character 11 years ago
gorhill 6b3c290663 updated screenshots to show larger area 11 years ago
gorhill 970e1253da code review 11 years ago
gorhill 5d90401f54 this fixes #49 11 years ago
Raymond Hill 65918c5c26 Update README.md 11 years ago
gorhill 473fce9bef screenshots for Chrome store 11 years ago

@ -0,0 +1,29 @@
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Browser (please complete the following information):**
- OS: [e.g. MacOS, Linux]
- Browser [e.g. Firefox]
- Version [e.g. 80.0.1]
**Additional context**
Add any other context about the problem here.

@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

2
.gitignore vendored

@ -1 +1 @@
dist/
dist/build/

@ -0,0 +1,20 @@
{
"browser": true,
"devel": true,
"eqeqeq": true,
"esversion": 8,
"globals": {
"browser": false,
"self": false,
"chrome": false,
"log": false,
"webext": false,
"vAPI": false,
"µMatrix": false
},
"laxbreak": true,
"strict": "global",
"undef": true,
"unused": true,
"validthis": true
}

@ -0,0 +1,17 @@
sudo: false
env:
matrix:
- BROWSER=chromium EXT=zip
- BROWSER=firefox EXT=xpi
script: "./tools/make-${BROWSER}.sh ${TRAVIS_TAG}"
deploy:
provider: releases
prerelease: true
api_key:
secure: eQgPAHH6PKu2dLK+NafxwLl66t0cyW5x5NZFquOwsNMal5nsfof7lyXj2F0Q0vUpGeI21MOipBI8UGv5oXPoiXnr0fhEbEBz65C9vypK61WkDCQVGVeZVNGQwSXUm6gD2EzpPgTCIs52+7dKCDJ3stXzdimOiOTYs4WMNKKarFM=
file: dist/build/uMatrix_${TRAVIS_TAG}.${BROWSER}.${EXT}
skip_cleanup: true
on:
repo: gorhill/uMatrix
tags: true
all_branches: true

@ -0,0 +1,4 @@
### Submitting issues
Submit on <https://github.com/geekprojects/nuTensor/issues>.

@ -1,27 +1,23 @@
# µMatrix for Chromium
## nuTensor
Forked and refactored from [HTTP Switchboard](https://github.com/gorhill/httpswitchboard).
Definitely for advanced users.
Under development: [usable](https://github.com/gorhill/uMatrix/releases)
This is a fork of the now-discontinued [uMatrix](https://github.com/gorhill/uMatrix).
My focus will be on keeping it working on Firefox for now. I'll do my best to keep it working, but sadly no guarantees. Help will always be welcome!
You may contribute with translation work on Crowdin: [µMatrix on Crowdin](https://crowdin.com/project/umatrix).
***
[HTTP Switchboard's documentation](https://github.com/gorhill/httpswitchboard/wiki) is still relevant, except for [µMatrix's differences with HTTP Switchboard](https://github.com/gorhill/uMatrix/wiki/Changes-from-HTTP-Switchboard).
You may contribute with documentation: [µMatrix's wiki](https://github.com/gorhill/uMatrix/wiki).
Forked and refactored from [uMatrix](https://github.com/gorhill/uMatrix).
## Warnings
#### Regarding broken sites
µMatrix does not guarantee that sites will work fine: it is for advanced users who can figure how to un-break sites, because essentially µMatrix is a firewall which works in block-all/allow-exceptionally mode out of the box: it is not unexpected that sites will break.
**So this means do not file issues to report broken sites when the sites are broken because µMatrix does its job as expected.** I will close any such issue without further comment.
I expect there will be community driven efforts for users to help each others. If µMatrix had a home, I would probably set up a forum, but I do not plan for such thing, I really just want to code, not manage web sites. If you need help to un-break a site when using µMatrix, you can try [Wilders Security](http://www.wilderssecurity.com/threads/umatrix-the-http-switchboard-successor.369601/), where you are likely to receive help if needed, whether by me or other users.
nuTensor does not guarantee that sites will work fine: it is for advanced users who can figure how to un-break sites, because essentially nuTensor is a firewall which works in relaxed block-all/allow-exceptionally mode out of the box: it is not unexpected that sites will break.
µMatrix can be set to work in [allow-all/block-exceptionally](https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views#the-allow-allblock-exceptionally-approach) mode with a single click on the `all` cell in the global scope `*`, if you prefer to work this way. This will of course break less sites, but you would then lose all the benefits which comes with block-all/allow-exceptionally mode.
**So this means do not file issues to report broken sites when the sites are broken because nuTensor does its job as expected.** I will close any such issue without further comment.
**Using nuTensor logger is key to un-break sites:** the logger will show you all that nuTensor does internally.
## License

@ -0,0 +1,88 @@
{
"assets.json": {
"content": "internal",
"updateAfter": 13,
"contentURL": [
"https://raw.githubusercontent.com/geekprojects/nuTensor/master/assets/assets.json",
"assets/assets.json"
]
},
"public_suffix_list.dat": {
"content": "internal",
"updateAfter": 19,
"contentURL": [
"https://publicsuffix.org/list/public_suffix_list.dat",
"assets/thirdparties/publicsuffix.org/list/public_suffix_list.dat",
"assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat"
]
},
"malware-0": {
"content": "filters",
"title": "Malware Domain List",
"contentURL": [
"https://www.malwaredomainlist.com/hostslist/hosts.txt",
"assets/thirdparties/www.malwaredomainlist.com/hostslist/hosts.txt"
]
},
"malware-1": {
"content": "filters",
"title": "Malware domains",
"contentURL": [
"https://mirror.cedia.org.ec/malwaredomains/justdomains",
"https://mirror1.malwaredomains.com/files/justdomains",
"assets/thirdparties/mirror1.malwaredomains.com/files/justdomains",
"assets/thirdparties/mirror1.malwaredomains.com/files/justdomains.txt"
],
"supportURL": "http://www.malwaredomains.com/"
},
"dpollock-0": {
"content": "filters",
"updateAfter": 11,
"title": "Dan Pollocks hosts file",
"contentURL": [
"https://someonewhocares.org/hosts/hosts",
"assets/thirdparties/someonewhocares.org/hosts/hosts.txt"
],
"supportURL": "https://someonewhocares.org/hosts/"
},
"hphosts": {
"content": "filters",
"updateAfter": 11,
"title": "hpHosts Ad and tracking servers",
"contentURL": [
"https://hosts-file.net/.%5Cad_servers.txt",
"assets/thirdparties/hosts-file.net/ad_servers.txt"
],
"supportURL": "https://hosts-file.net/"
},
"mvps-0": {
"content": "filters",
"updateAfter": 11,
"title": "MVPS HOSTS",
"contentURL": [
"https://winhelp2002.mvps.org/hosts.txt",
"assets/thirdparties/winhelp2002.mvps.org/hosts.txt"
],
"supportURL": "https://winhelp2002.mvps.org/"
},
"plowe-0": {
"content": "filters",
"updateAfter": 13,
"title": "Peter Lowes Ad and tracking server list",
"contentURL": [
"https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext",
"assets/thirdparties/pgl.yoyo.org/as/serverlist",
"assets/thirdparties/pgl.yoyo.org/as/serverlist.txt"
],
"supportURL": "https://pgl.yoyo.org/adservers/"
},
"recipes_en-0": {
"content": "recipes",
"title": "Ruleset recipes for English websites",
"contentURL": [
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/recipes/recipes_en.txt",
"assets/umatrix/recipes_en.txt"
],
"lang": "en"
}
}

@ -1,13 +0,0 @@
7cfcd2a79bd510bd9944fb2601fcd701 assets/umatrix/hosts-files.json
188ce926323d816ae9d7d5ebbb567862 assets/umatrix/blacklist.txt
672d5a95be662327692ff16bde2b8452 assets/thirdparties/mirror1.malwaredomains.com/files/immortal_domains.txt
7f0443f3dcc9abfd47cfbc95ce824ddb assets/thirdparties/mirror1.malwaredomains.com/files/README.md
d6ceced54f3f997a5b1839ceaaa98cef assets/thirdparties/mirror1.malwaredomains.com/files/justdomains
067470524601341099c78a847f3726aa assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat
1da7664601ca18f3806ca0af3d9cf123 assets/thirdparties/someonewhocares.org/hosts/hosts
70b2d63b4c632d5bc4c8ce910fc05d79 assets/thirdparties/winhelp2002.mvps.org/hosts.txt
042419405031f0fcfac3735bf4f05e21 assets/thirdparties/www.malwaredomainlist.com/hostslist/README.md
883ed5daa447f23a1132c8a099382054 assets/thirdparties/www.malwaredomainlist.com/hostslist/hosts.txt
95687a05b77dea3be8bdb975fbb0f61f assets/thirdparties/hosts-file.net/ad-servers
10dca881b4d883df0755cb06896650f2 assets/thirdparties/pgl.yoyo.org/as/serverlist
5b8e13b618c68293430913029118781a assets/thirdparties/pgl.yoyo.org/as/README.md

File diff suppressed because it is too large Load Diff

@ -1,3 +0,0 @@
<http://www.malwaredomains.com/?page_id=1508>:
"This malware block lists provided here are for free for noncommercial use as part of the fight against malware."

@ -1,4 +0,0 @@
<http://pgl.yoyo.org/as/index.php>:
Site does encourage use of the list, and nowhere could I find terms and
conditions to use the list. Assuming it can be used freely.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,3 +0,0 @@
<http://www.malwaredomainlist.com/>:
"Our list can be used for free by anyone. Feel free to use it."

@ -1,61 +0,0 @@
# Blacklist maintained by HTTP Switchboard
# For those domain names which are not found in other blacklists
2mdn.net # "2mdn.net is a domain used by Doubleclick which is an advertising company..."
aad73c550c.se # Related to adrotator.se which is itself blacklisted
acxiom-online.com # Wikipedia: "Acxiom Corporation is a marketing technology and services company".
adextent.com # "We are an advertising technology company - we build technologies that improve ads performance"
adgear.com # "AdGear is an online advertising technologies company based in Montreal, Canada"
adnxs.com # "Adnxs.com is run by AppNexus, a company that provides technology, data and analytics to help companies buy and sell online display advertising" (Ref.: http://www.theguardian.com/technology/2012/apr/23/adnxs-tracking-trackers-cookies-web-monitoring)
adobetag.com # "Adobe Announces Adobe Tag Manager for the Online Marketing Suite"
aimatch.com # "Ad Server, SAS® Intelligent Advertising for Publishers"
analytics.edgesuite.net
atedra.com # "Atedra est un réseau de publicité Internet francophone au Canada"
axf8.net # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
betrad.com # "Evidon: Home | Online Marketing Intelligence, Web Analytics, Privacy" (which also publishes "Ghostery" add-on..)
bizographics.com # "Business Audience Marketing"
bkrtx.com
# "Imagine Having The Power To Turn Abandoning Visitors Into Customers"
# "The BounceX software is tracking all the cursor movements of every visitor in real-time" (yikes!)
bounceexchange.com
clicktale.com # "See absolutely everything your visitors do on your webpage ... See their every mouse move, click and keystroke"
clicktale.net # Redirect to `clicktale.com`
crosspixel.net # (cookies, localStorage) "leading provider of high performance audience data and information for the real-time advertising industry"
crsspxl.com # Related to crosspixel.net
datarating.com # see https://github.com/gorhill/httpswitchboard/issues/343
displaymarketplace.com
erovinmo.com # No info whatsoever from site itself can be found = naughty corner. Ironically spotted at "http://www.technologyreview.com/news/519336/bruce-schneier-nsa-spying-is-making-us-less-safe/" (also: http://www.mywot.com/en/scorecard/erovinmo.com)
exelator.com # "domain used by eXelate Media which is an advertising company that is part of a network of sites, cookies, and other technologies used to track you" (Ref.: http://www.donottrackplus.com/trackers/exelator.com.php)
everestjs.net # related to `everesttech.net`
everesttech.net # "search engine marketing (SEM) solutions", pixel image on the page, looks like tracking to me. Spotted @ `http://www.homedepot.ca/` (search worked fine when blocking this hostname)
eyereturn.com # "eyeReturn Marketing is the only end-to-end digital advertising platform in the market"
gigya.com # "The tools you need to connect with consumers, harness rich data, and make marketing relevant"
inmuiads.info #
janrainbackplane.com # "Easily visualize, segment and update customer profiles to enable true personalized marketing"
krxd.net # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
lijit.com # "We provide online advertising services, audience analytics"
llnwd.net # http://en.wikipedia.org/wiki/Limelight_Networks
lduhtrp.net
mathtag.com # "domain used by MediaMath to place cookies, on behalf of its customers, on the computers of visitors to our selected customer's websites and who may view our customer's display advertisements"
mxpnl.com #
moatads.com # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
mookie1.com # "Specializing in online digital advertising, search marketing"
msads.net # Sounds like ads, and no home web page...
omtrdc.net # Redirect to Omniture
outbrain.com # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
panoramtech.net # As seen in a screenshot at http://arstechnica.com/security/2014/01/malware-vendors-buy-chrome-extensions-to-send-adware-filled-updates/
parsely.com # http://en.wikipedia.org/wiki/Parse.ly
peer39.net # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
pub2srv.com # "This url is used by ad network Propeller Ads Media for ad serving"
servebom.com # no home page, seen as 'tracking.servebom.com': good enough for this list
# These have "tracking" in domain name...
tracking.tomsguide.com
tracking.tomshardware.com
tracking.tomshardware.co.uk
wunderloop.net # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
yceml.net

@ -1,30 +0,0 @@
{
"mirror1.malwaredomains.com/files/immortal_domains.txt": {
"title": "Long-lived malware domains",
"homeURL": "http://mirror1.malwaredomains.com/files/immortal_domains.txt"
},
"mirror1.malwaredomains.com/files/justdomains": {
"title": "Malware domains",
"homeURL": "http://mirror1.malwaredomains.com/files/justdomains"
},
"pgl.yoyo.org/as/serverlist": {
"title": "Peter Lowes Ad server list",
"homeURL": "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext"
},
"www.malwaredomainlist.com/hostslist/hosts.txt": {
"title": "Malware Domain List",
"homeURL": "http://www.malwaredomainlist.com/hostslist/hosts.txt"
},
"hosts-file.net/ad-servers": {
"title": "hpHostss Ad and tracking servers",
"homeURL": "http://hosts-file.net/.%5Cad_servers.txt"
},
"someonewhocares.org/hosts/hosts": {
"title": "Dan Pollocks hosts file",
"homeURL": "http://someonewhocares.org/hosts/hosts"
},
"winhelp2002.mvps.org/hosts.txt": {
"title": "MVPS HOSTS",
"homeURL": "http://winhelp2002.mvps.org/hosts.txt"
}
}

@ -0,0 +1,192 @@
#!/usr/bin/env python3
import datetime
import json
import jwt
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from distutils.version import StrictVersion
from string import Template
# - Download target (raw) uMatrix.chromium.zip from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Upload uMatrix.chromium.zip to Chrome store
# - Publish uMatrix.chromium.zip to Chrome store
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
version = sys.argv[1]
else:
version = input('Github release version: ')
version.strip()
if not re.search('^\d+\.\d+\.\d+(b|rc)\d+$', version):
print('Error: Invalid version string.')
exit(1)
cs_extension_id = 'eckgcipdkhcfghnmincccnhpdmnbefki'
tmpdir = tempfile.TemporaryDirectory()
raw_zip_filename = 'uMatrix_'+ version + '.chromium.zip'
raw_zip_filepath = os.path.join(tmpdir.name, raw_zip_filename)
github_owner = 'gorhill'
github_repo = 'uMatrix'
# Load/save auth secrets
# The build directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'dist', 'build', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, version)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for uMatrix.chromium.zip
raw_zip_url = ''
for asset in release_info['assets']:
if asset['name'] == raw_zip_filename:
raw_zip_url = asset['url']
if len(raw_zip_url) == 0:
print('Error: Release asset URL not found')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw zip package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_zip_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_zip_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_zip_filepath))
#
# Upload to Chrome store
#
# Auth tokens
cs_id = input_secret('Chrome store id', 'cs_id')
cs_secret = input_secret('Chrome store secret', 'cs_secret')
cs_refresh = input_secret('Chrome store refresh token', 'cs_refresh')
print('Uploading to Chrome store...')
with open(raw_zip_filepath, 'rb') as f:
print('Generating access token...')
auth_url = 'https://accounts.google.com/o/oauth2/token'
auth_payload = {
'client_id': cs_id,
'client_secret': cs_secret,
'grant_type': 'refresh_token',
'refresh_token': cs_refresh,
}
auth_response = requests.post(auth_url, data=auth_payload)
if auth_response.status_code != 200:
print('Error: Auth failed -- server error {0}'.format(auth_response.status_code))
print(auth_response.text)
exit(1)
response_dict = auth_response.json()
if 'access_token' not in response_dict:
print('Error: Auth failed -- no access token')
exit(1)
# Prepare access token
cs_auth = 'Bearer ' + response_dict['access_token']
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
}
# Upload
print('Uploading package...')
upload_url = 'https://www.googleapis.com/upload/chromewebstore/v1.1/items/{0}'.format(cs_extension_id)
upload_response = requests.put(upload_url, headers=headers, data=f)
f.close()
if upload_response.status_code != 200:
print('Upload failed -- server error {0}'.format(upload_response.status_code))
print(upload_response.text)
exit(1)
response_dict = upload_response.json();
if 'uploadState' not in response_dict or response_dict['uploadState'] != 'SUCCESS':
print('Upload failed -- server error {0}'.format(response_dict['uploadState']))
exit(1)
print('Upload succeeded.')
# Publish
print('Publishing package...')
publish_url = 'https://www.googleapis.com/chromewebstore/v1.1/items/{0}/publish'.format(cs_extension_id)
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
'Content-Length': '0',
}
publish_response = requests.post(publish_url, headers=headers)
if publish_response.status_code != 200:
print('Error: Chrome store publishing failed -- server error {0}'.format(publish_response.status_code))
exit(1)
response_dict = publish_response.json();
if 'status' not in response_dict or response_dict['status'][0] != 'OK':
print('Publishing failed -- server error {0}'.format(response_dict['status']))
exit(1)
print('Publishing succeeded.')
print('All done.')

@ -0,0 +1,321 @@
#!/usr/bin/env python3
import datetime
import json
import jwt
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from distutils.version import LooseVersion
from string import Template
# - Download target (raw) nuTensor.firefox.xpi from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Modify raw package to make it self-hosted
# - This is referred to as "unsigned" package
# - Ask AMO to sign nuTensor.firefox.xpi
# - Generate JWT to be used for communication with server
# - Upload unsigned package to AMO
# - Wait for a valid download URL for signed package
# - Download signed package as nuTensor.firefox.signed.xpi
# - This is referred to as "signed" package
# - Upload nuTensor.firefox.signed.xpi to GitHub
# - Remove nuTensor.firefox.xpi from GitHub
# - Modify updates.json to point to new version
# - Commit changes to repo
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# Check that found project root is valid
version_filepath = os.path.join(projdir, 'dist', 'version')
if not os.path.isfile(version_filepath):
print('Version file not found.')
exit(1)
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
tag_version = sys.argv[1]
else:
tag_version = input('Github release version: ')
tag_version.strip()
match = re.search('^(\d+\.\d+\.\d+)(?:(b|rc)(\d+))?$', tag_version)
if not match:
print('Error: Invalid version string.')
exit(1)
ext_version = match.group(1);
if match.group(2):
revision = int(match.group(3))
if match.group(2) == 'rc':
revision += 100;
ext_version += '.' + str(revision)
extension_id = 'nuTensor@geekprojects.com'
tmpdir = tempfile.TemporaryDirectory()
raw_xpi_filename = 'nuTensor_' + tag_version + '.firefox.xpi'
raw_xpi_filepath = os.path.join(tmpdir.name, raw_xpi_filename)
unsigned_xpi_filepath = os.path.join(tmpdir.name, 'nuTensor.firefox.unsigned.xpi')
signed_xpi_filename = 'nuTensor_' + tag_version + '.firefox.signed.xpi'
signed_xpi_filepath = os.path.join(tmpdir.name, signed_xpi_filename)
github_owner = 'geekprojects'
github_repo = 'nuTensor'
# Load/save auth secrets
# The build directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'dist', 'build', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, tag_version)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for nuTensor.firefox.xpi
raw_xpi_url = ''
for asset in release_info['assets']:
if asset['name'] == signed_xpi_filename:
print('Error: Found existing signed self-hosted package.')
exit(1)
if asset['name'] == raw_xpi_filename:
raw_xpi_url = asset['url']
if len(raw_xpi_url) == 0:
print('Error: Release asset URL not found')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw xpi package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_xpi_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_xpi_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_xpi_filepath))
#
# Convert the package to a self-hosted one: add `update_url` to the manifest
#
print('Converting raw xpi package into self-hosted xpi package...')
with zipfile.ZipFile(raw_xpi_filepath, 'r') as zipin:
with zipfile.ZipFile(unsigned_xpi_filepath, 'w') as zipout:
for item in zipin.infolist():
data = zipin.read(item.filename)
if item.filename == 'manifest.json':
manifest = json.loads(bytes.decode(data))
manifest['browser_specific_settings']['gecko']['update_url'] = 'https://raw.githubusercontent.com/{0}/{1}/master/dist/firefox/updates.json'.format(github_owner, github_repo)
data = json.dumps(manifest, indent=2, separators=(',', ': '), sort_keys=True).encode()
zipout.writestr(item, data)
#
# Ask AMO to sign the self-hosted package
# - https://developer.mozilla.org/en-US/Add-ons/Distribution#Distributing_your_add-on
# - https://pyjwt.readthedocs.io/en/latest/usage.html
# - https://addons-server.readthedocs.io/en/latest/topics/api/auth.html
# - https://addons-server.readthedocs.io/en/latest/topics/api/signing.html
#
amo_api_key = ''
amo_secret = ''
def get_jwt_auth():
global amo_api_key
if amo_api_key == '':
amo_api_key = input_secret('AMO API key', 'amo_api_key')
global amo_secret
if amo_secret == '':
amo_secret = input_secret('AMO API secret', 'amo_secret')
amo_nonce = os.urandom(8).hex()
jwt_payload = {
'iss': amo_api_key,
'jti': amo_nonce,
'iat': datetime.datetime.utcnow(),
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=15),
}
return 'JWT ' + jwt.encode(jwt_payload, amo_secret).decode()
print('Ask AMO to sign self-hosted xpi package...')
with open(unsigned_xpi_filepath, 'rb') as f:
# https://blog.mozilla.org/addons/2019/11/11/security-improvements-in-amo-upload-tools/
# "We recommend allowing up to 15 minutes."
interval = 60 # check every 60 seconds
countdown = 15 * 60 / interval # for at most 15 minutes
headers = { 'Authorization': get_jwt_auth(), }
data = { 'channel': 'unlisted' }
files = { 'upload': f, }
signing_url = 'https://addons.mozilla.org/api/v3/addons/{0}/versions/{1}/'.format(extension_id, ext_version)
print('Submitting package to be signed...')
response = requests.put(signing_url, headers=headers, data=data, files=files)
if response.status_code != 202:
print('Error: Creating new version failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
print('Request for signing self-hosted xpi package succeeded.')
signing_request_response = response.json();
f.close()
print('Waiting for AMO to process the request to sign the self-hosted xpi package...')
# Wait for signed package to be ready
signing_check_url = signing_request_response['url']
while True:
sys.stdout.write('.')
sys.stdout.flush()
time.sleep(interval)
countdown -= 1
if countdown <= 0:
print('Error: AMO signing timed out')
exit(1)
headers = { 'Authorization': get_jwt_auth(), }
response = requests.get(signing_check_url, headers=headers)
if response.status_code != 200:
print('Error: AMO signing failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
signing_check_response = response.json()
if not signing_check_response['processed']:
continue
if not signing_check_response['valid']:
print('Error: AMO validation failed')
print(response.text)
exit(1)
if not signing_check_response['files'] or len(signing_check_response['files']) == 0:
continue
if not signing_check_response['files'][0]['signed']:
continue
if not signing_check_response['files'][0]['download_url']:
print('Error: AMO signing failed')
print(response.text)
exit(1)
print('\r')
print('Self-hosted xpi package successfully signed.')
download_url = signing_check_response['files'][0]['download_url']
print('Downloading signed self-hosted xpi package from {0}...'.format(download_url))
response = requests.get(download_url, headers=headers)
if response.status_code != 200:
print('Error: Download signed package failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
with open(signed_xpi_filepath, 'wb') as f:
f.write(response.content)
f.close()
print('Signed self-hosted xpi package downloaded.')
break
#
# Upload signed package to GitHub
#
# https://developer.github.com/v3/repos/releases/#upload-a-release-asset
print('Uploading signed self-hosted xpi package to GitHub...')
with open(signed_xpi_filepath, 'rb') as f:
url = release_info['upload_url'].replace('{?name,label}', '?name=' + signed_xpi_filename)
headers = {
'Authorization': github_auth,
'Content-Type': 'application/zip',
}
response = requests.post(url, headers=headers, data=f.read())
if response.status_code != 201:
print('Error: Upload signed package failed -- server error: {0}'.format(response.status_code))
exit(1)
#
# Remove raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#delete-a-release-asset
print('Remove raw xpi package from GitHub...')
headers = { 'Authorization': github_auth, }
response = requests.delete(raw_xpi_url, headers=headers)
if response.status_code != 204:
print('Error: Deletion of raw package failed -- server error: {0}'.format(response.status_code))
#
# Update updates.json to point to new package -- but only if just-signed
# package is higher version than current one.
#
print('Update GitHub to point to newly signed self-hosted xpi package...')
updates_json_filepath = os.path.join(projdir, 'dist', 'firefox', 'updates.json')
with open(updates_json_filepath) as f:
updates_json = json.load(f)
f.close()
previous_version = updates_json['addons'][extension_id]['updates'][0]['version']
if LooseVersion(ext_version) > LooseVersion(previous_version):
with open(os.path.join(projdir, 'dist', 'firefox', 'updates.template.json')) as f:
template_json = Template(f.read())
f.close()
updates_json = template_json.substitute(ext_version=ext_version, tag_version=tag_version)
with open(updates_json_filepath, 'w') as f:
f.write(updates_json)
f.close()
# Automatically git add/commit if needed.
# - Stage the changed file
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
if len(rout) >= 2 and rout[1] == 'M':
subprocess.run(['git', 'add', updates_json_filepath])
# - Commit the staged file
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
if len(rout) >= 2 and rout[0] == 'M':
subprocess.run(['git', 'commit', '-m', 'Make Firefox dev build auto-update', updates_json_filepath])
subprocess.run(['git', 'push', 'origin', 'HEAD'])
print('All done.')

@ -0,0 +1,14 @@
{
"addons": {
"nuTensor@geekprojects.com": {
"updates": [
{
"version": "1.4.1.6",
"browser_specific_settings": { "gecko": { "strict_min_version": "56" } },
"update_info_url": "https://github.com/geekprojects/nuTensor/releases/tag/1.4.1b6",
"update_link": "https://github.com/geekprojects/nuTensor/releases/download/1.4.1b6/nuTensor_1.4.1b6.firefox.signed.xpi"
}
]
}
}
}

@ -0,0 +1,14 @@
{
"addons": {
"nuTensor@geekprojects.com": {
"updates": [
{
"version": "$ext_version",
"browser_specific_settings": { "gecko": { "strict_min_version": "56" } },
"update_info_url": "https://github.com/geekprojects/nuTensor/releases/tag/$tag_version",
"update_link": "https://github.com/geekprojects/nuTensor/releases/download/$tag_version/nuTensor_$tag_version.firefox.signed.xpi"
}
]
}
}
}

1
dist/version vendored

@ -0,0 +1 @@
1.5.0.0

@ -0,0 +1,39 @@
## Building nuTensor
### Requirements
Tools:
* bash
* python 3
You will need both this nuTensor and the nuAssets repositories. These should both be placed in the same directory:
```
git clone https://github.com/geekprojects/nuAssets.git
git clone https://github.com/geekprojects/nuTensor.git
cd nuTensor
```
### Packaging
You can now run the scripts that package everything up.
These are bash scripts. They have only been tested on Linux and MacOS.
#### For Firefox
```
tools/make-firefox.sh all
```
#### For Chrome/Chromium (Not yet tested)
```
tools/make-chromium.sh all
```
#### For Opera (Not yet tested)
```
tools/make-opera.sh
```
The installation package should now be found in dist/build/
### Installing
Follow the instructions in [README.md](README.md) to install it.

@ -1,26 +0,0 @@
## INSTALL
### Manual installation
- Download and unzip `uMatrix.chromium-{version}.zip` ([latest release desirable](https://github.com/gorhill/uMatrix/releases)).
- Rename the unzipped directory to `uMatrix` (if it is different)
- When you later update manually, replace the **content** of the `uMatrix` folder with the **content** of the latest zipped version.
- This will ensure that all the extension settings will be preserved
- As long as the extension loads **from same folder path from which it was originally installed**, all your settings will be preserved.
- Go to chromium/chrome *Extensions*.
- Click to check *Developer mode*.
- Click *Load unpacked extension...*.
- In the file selector dialog:
- Select the directory `uMatrix` which was created above.
- Click *Open*.
The extension will now be available in your chromium/chromium-based browser.
Remember that you have to update manually also. For some users, updating manually is actually an advantage because:
- You can update when **you** want
- If ever a new version sucks, you can easily just re-installed the previous one
### Vendor stores
- Opera store (coming)
- Chrome store (coming)

@ -1,8 +1,8 @@
### This is µMatrix's manifesto
### This is uMatrix's manifesto
1. The **user decides** what web content is acceptable or not in their browser.
That is all.
The purpose of _µMatrix_ is to give the user the means for informed
The purpose of _uMatrix_ is to give the user the means for informed
consent and informed dissent.

@ -0,0 +1,37 @@
## INSTALL
#### Chromium
- Download and unzip `nuTensor.chromium.zip` ([latest release desirable](https://github.com/geekprojects/nuTensor/releases)).
- Rename the unzipped directory to `nuTensor`
- When you later update manually, replace the **content** of the `nuTensor` folder with the **content** of the latest zipped version.
- This will ensure that all the extension settings will be preserved
- As long as the extension loads **from same folder path from which it was originally installed**, all your settings will be preserved.
- Go to chromium/chrome *Extensions*.
- Click to check *Developer mode*.
- Click *Load unpacked extension...*.
- In the file selector dialog:
- Select the directory `nuTensor` which was created above.
- Click *Open*.
The extension will now be available in your chromium/chromium-based browser.
Remember that you have to update manually also. For some users, updating manually is actually an advantage because:
- You can update when **you** want
- If ever a new version sucks, you can easily just re-install the previous one
#### Firefox
Although nuTensor is a restartless addon, I found that **installing** a newer version over an older one often will glitch the installation. These steps always worked fine:
- Download `nuTensor.firefox.xpi` ([latest release desirable](https://github.com/geekprojects/nuTensor/releases)).
- Uninstall current nuTensor if already installed
- Quit Firefox completely
- Launch Firefox
- Drag and drop the previously downloaded `nuTensor.firefox.xpi` into Firefox
nuTensor settings are kept intact even after you uninstall the addon.
On Linux, the settings are saved in a SQlite file located at `~/.mozilla/firefox/[profile name]/extension-data/nuTensor.sqlite`.
On Windows, the settings are saved in a SQlite file located at `%APPDATA%\Mozilla\Firefox\Profiles\[profile name]\extension-data\nuTensor.sqlite`.

@ -1,12 +1,10 @@
µMatrix: Eine Matrix-basierte Firewall, einfach per Mausklick zu bedienen - und mit vielen Extras, um deine Privatsphäre zu schützen. Für fortgeschrittene Benutzer.
uMatrix: Eine Matrix-basierte Firewall, einfach per Mausklick zu bedienen - und mit vielen Extras, um deine Privatsphäre zu schützen. Für fortgeschrittene Benutzer.
µMatrix gibt dir volle Kontrolle darüber, womit sich dein Browser verbindet, welche Art von Daten erlaubt sind und was ausgeführt werden darf. Du lässt niemand anderen für dich entscheiden: Du entscheidest. Du hast die volle Kontrolle über deine Privatsphäre.
uMatrix gibt dir volle Kontrolle darüber, womit sich dein Browser verbindet, welche Art von Daten erlaubt sind und was ausgeführt werden darf. Du lässt niemand anderen für dich entscheiden: Du entscheidest. Du hast die volle Kontrolle über deine Privatsphäre.
Voreingestellt arbeitet µMatrix in einem gelockerten "blockiere alles/erlaube ausnahmsweise"-Modus, was dazu führt, dass viele Webseiten, die Skripte von Drittseiten benötigen, "kaputt" sein werden. Mit zwei Klicks kannst du aber dafür sorgen, dass µMatrix in einem "erlaube alles/blockiere ausnahmsweise"-Modus arbeitet, der normalerweise Webseiten nicht kaputt macht. Details dazu auf https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Voreingestellt arbeitet uMatrix in einem gelockerten "blockiere alles/erlaube ausnahmsweise"-Modus, was dazu führt, dass viele Webseiten, die Skripte von Drittseiten benötigen, "kaputt" sein werden. Mit zwei Klicks kannst du aber dafür sorgen, dass uMatrix in einem "erlaube alles/blockiere ausnahmsweise"-Modus arbeitet, der normalerweise Webseiten nicht kaputt macht. Details dazu auf https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Die Behauptung: "Chromium-basierte Browser können nicht zuverlässig Javascript blockieren" ist ein reiner Mythos, siehe dazu: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Kurz: Doch, Javascript kann sehr wohl zuverlässig in Chromium blockiert werden.
* Sehe ALLE Verbindungen, ob fehlgeschlagen oder erfolgreich, je nachdem ob du sie blockiert oder erlaubt hast (deine Entscheidung).
* Sieh ALLE Verbindungen, ob fehlgeschlagen oder erfolgreich, je nachdem ob du sie blockiert oder erlaubt hast (deine Entscheidung).
* Erlaube/blockiere mit einem Klick eine oder mehrere Arten von Verbindungsanfragen deines Browsers je nach Ziel und Datentyp (eine blockierte Anfrage wird NIE deinen Browser verlassen).
@ -14,7 +12,7 @@ Die Behauptung: "Chromium-basierte Browser können nicht zuverlässig Javascript
* Du musst dich nicht ausschließlich auf irgendeine externe Blacklist (vermutlich mit vielen fehlenden Einträgen) verlassen, die nur unvollständig blockiert: Du selbst hast die volle Kontrolle.
* Bedienungsfreundlich: µMatrix erlaubt es dir auf einfache Art, Netzanfragen einer Webseite in einer klickbaren Matrix zu erlauben (whitelist)/blockieren (blacklist):
* Bedienungsfreundlich: uMatrix erlaubt es dir auf einfache Art, Netzanfragen einer Webseite in einer klickbaren Matrix zu erlauben (whitelist)/blockieren (blacklist):
- Domain-Namen (linke Spalte)
* sehr spezifische
@ -32,7 +30,7 @@ Die Behauptung: "Chromium-basierte Browser können nicht zuverlässig Javascript
Du kannst eine einzelne Zelle erlauben/blockieren, eine ganze Zeile, eine Gruppe von Zeilen, eine ganze Spalte, oder sogar die komplette Matrix mit gerade mal einem Klick.
Das Filtermodul von µMatrix arbeitet nach einer logischen Rangordnung, um zu beurteilen, was blockiert/erlaubt werden soll, je nachdem, welche Zellen blockiert/erlaubt sind. Zum Beispiel erlaubt dir dies, eine komplette Seite zu erlauben, ohne dass du wiederholt neue Daten separat erlauben musst.
Das Filtermodul von uMatrix arbeitet nach einer logischen Rangordnung, um zu beurteilen, was blockiert/erlaubt werden soll, je nachdem, welche Zellen blockiert/erlaubt sind. Zum Beispiel erlaubt dir dies, eine komplette Seite zu erlauben, ohne dass du wiederholt neue Daten separat erlauben musst.
Alle Regeln beziehen sich auf einen bestimmten Geltungsbereich. Zum Beispiel kannst du `facebook.com` und `facebook.net` überall blockieren, außer wenn du eine Seite auf `www.facebook.com` besuchst. Dadurch wird Facebook nicht in der Lage sein, eine Profil deiner Surfgewohnheiten anzulegen.
@ -54,20 +52,6 @@ Noch unvollständige Dokumentation: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
Bei allen Fragen und Problemen bitte auf "Feedback geben" klicken, um mir die Gelegenheit zu einer Antwort zu geben. Ich kann auf Bewertungen nicht direkt antworten, aber ich werde dir sehr gern direkt im Feedback-Bereich Antwort geben.
=====
FEHLER, PROBLEME, VORSCHLÄGE:
https://github.com/gorhill/uMatrix/issues
Du bist sehr willkommen, deine Ansichten zu offenen Problemen, Vorschlägen und Argumenten zu präsentieren, um mir bei der Entscheidung zu helfen, wie ich diese Erweiterung noch besser machen kann.
Leichte Bedienbarkeit ist das vorrangige Ziel. Ich habe Benutzer erlebt, die bei der Firefox-Erweiterung NoScript aufgegeben haben, weil es ihnen zu viele Steine in den Weg legte. Anstatt diese Benutzer wegen ihrer verbesserungswürdigen Sicherheitsgewohnheiten zu kritisieren, kritisiere ich stattdessen die Entwickler. Dieses Projekt ist ein zaghafter Versuch, die Gründe anzugehen, die dazu führen, dass Benutzer bezüglich grundlegender Sicherheitsmaßnahmen aufgeben.
Diese Erweiterung ist auch nützlich, um zu verstehen, was eine Webseite in deinem Browser macht, oft ohne dein Wissen. Du bist voll in der Lage zu sehen und darüber zu entscheiden, mit wem eine Webseite kommuniziert, und diese Kommunikation auf bestimmte Klassen von Objekten zu beschränken.
Die Zahl, die im Symbol der Erweiterung auftaucht, entspricht der Gesamtzahl der einzelnen versuchten Anfragen der Webseite (ob erfolgreich oder nicht, ist abhängig davon, ob du sie erlaubt oder verboten hast).
@ -88,6 +72,8 @@ Diese Erweiterung ist auch nützlich, um das Surfen zu beschleunigen, indem z.B.
=====
FEHLER, PROBLEME: https://github.com/gorhill/uMatrix/issues
QUELLCODE: https://github.com/gorhill/uMatrix (GPLv3)
ÄNDERUNGSPROTOKOLL: https://github.com/gorhill/uMatrix/releases

@ -1,93 +0,0 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domain names (left column)
* from very specific
* to very generic
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Ultimately, you can choose however you browse the net:
* Blacklist all by default, and whitelist as needed (default mode).
* Whitelist all by default, and blacklist as needed.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Your choice.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
=====
BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,93 +0,0 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domain names (left column)
* from very specific
* to very generic
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Ultimately, you can choose however you browse the net:
* Blacklist all by default, and whitelist as needed (default mode).
* Whitelist all by default, and blacklist as needed.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Your choice.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
=====
BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,20 +1,20 @@
µMatrix: Un cortafuegos matricial ajustable mediante clics, con varias herramientas para mejorar su privacidad. Para usuarios avanzados.
uMatrix: Un cortafuegos matricial ajustable mediante clics, con varias herramientas para mejorar su privacidad.
µMatrix le proporciona control total sobre su navegador, permitiendo decidir que conexiones se establecen, que tipo de datos se descargan y que códigos se ejecutan. Nadie más decide por usted: Usted escoge. Usted está en control total de su privacidad.
*Para usuarios avanzados*
Por defecto, µMatrix funciona en modo relajado "bloquear todo/permitir excepcionalmente". Esto significa que los sitios que requieren <i>scripts</i> de terceros, posiblemente se muestren con problemas. Con solo dos clics, puede configurar µMatrix para funcionar en modo "permitir todo/bloquear excepcionalmente", lo que hará que usualmente los sitios web se muestren sin problema. Para más detalles sobre el tema consulte https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views (en inglés).
uMatrix le proporciona control total sobre su navegador, permitiéndole decidir que conexiones se establecen, que tipo de datos se descargan y que códigos se ejecutan. Nadie más decide: usted escoge. Usted está en control total de su privacidad.
En cuanto al mito de que los navegadores basados en Chromium no pueden bloquear JavaScript de manera adecuada, vea: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers (en inglés). En resumen: Si, JavaScript puede ser bloqueado de forma segura en Chromium.
Por defecto, uMatrix funciona en modo relajado "bloquear todo/permitir excepcionalmente". Esto significa que los sitios que requieren scripts de terceros, posiblemente se muestren con problemas. Con solo dos clics, puede configurar uMatrix para funcionar en modo "permitir todo/bloquear excepcionalmente", lo que hará que usualmente los sitios web se muestren sin problema. Para más detalles sobre el tema, consulte https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views (en inglés).
* Examine todas las conexiones remotas, fallidas o intentadas, según fueron bloqueadas o permitidas (usted decide).
* Examine TODAS las conexiones remotas, fallidas o intentadas, según fueron bloqueadas o permitidas (usted decide).
* Con un solo clic añada a su lista de permitidos o a su lista negra, uno o varios tipos de peticiones, según el destino y el tipo de datos (una petición bloqueada NUNCA saldrá del navegador).
* Filtrado eficiente: las <i>cookies</i> no saldrán de su navegador, JavaScript no se ejecutará, las extensiones no funcionarán, no se descargarán píxeles de rastreo, etc.
* Filtrado eficiente: las cookies no saldrán de su navegador, JavaScript no se ejecutará, las extensiones no funcionarán, no se descargarán píxeles de rastreo, etc.
* No tiene que depender de una sola lista de filtros (probablemente con muchas omisiones) fuera de la cual nada pueda ser bloqueado: usted controla todo.
* Facilidad de uso: µMatrix le permite agregar fácilmente las peticiones de red que se originen desde una página web a una lista de permitidos/lista negra, mediante clics en la matriz:
* Facilidad de uso: uMatrix le permite agregar fácilmente las peticiones de red que se originen desde una página web a una lista de permitidos/lista negra, mediante clics en la matriz:
- nombres de dominio (columna izquierda)
* de muy específico
@ -32,13 +32,13 @@ En cuanto al mito de que los navegadores basados en Chromium no pueden bloquear
Puede agregar a la lista negra/lista de permitidos una única celda, una fila completa, un grupo de filas, una columna o toda la matriz, todo con solo un clic.
El motor de filtrado de µMatrix usa lógica de precedencia para evaluar que bloquea o permite, en dependencia de las celdas en lista de permitidos o lista negra. Por ejemplo, puede agregar toda una página a la lista de permitidos con un clic, sin que sea necesario agregar nuevos elementos que puedan aparecer luego en dicha página uno a uno.
El motor de filtrado de uMatrix usa lógica de precedencia para evaluar que bloquea o permite, en dependencia de las celdas en lista de permitidos o lista negra. Por ejemplo, puede agregar toda una página a la lista de permitidos con un clic, sin que sea necesario agregar nuevos elementos que puedan aparecer luego en dicha página uno a uno.
Todas las reglas se definen para un ámbito. Puede, por ejemplo, bloquear elementos de `facebook.com` y `facebook.net` dondequiera, excepto cuando esté navegando en una página en el sitio`www.facebook.com`. De esta forma, Facebook se verá imposibilitado de crear o reunir un perfil sobre sus hábitos de navegación web.
El objetivo de esta extensión es hacer todo el proceso de permitir o bloquear sitios web tan simple como sea posible, de manera tal que los usuarios se sientan alentados a preocuparse por su privacidad.
La extensión hace uso de ficheros <i>hosts</i> mantenidos por terceros, con más de 58 000 nombres de dominios diferentes (las listas pueden ser habilitadas/deshabilitadas según su deseo).
La extensión hace uso de ficheros hosts mantenidos por terceros, con más de 62,000 nombres de dominios diferentes (las listas pueden ser habilitadas/deshabilitadas según su deseo).
Al final, usted decide de que manera navegar por la red:
@ -46,28 +46,14 @@ Al final, usted decide de que manera navegar por la red:
* Poner todo en la lista de permitidos y agregar a la lista negra según sea necesario.
En cualquier modo, siempre se beneficiará de los filtros ya configurados, que le brindarán una protección básica contra rastreadores, sitios de <i>malware</i>, etc. O puede también deshabilitar todos los filtros pre-configurados.
En cualquier modo, siempre se beneficiará de los filtros ya configurados, que le brindarán una protección básica contra rastreadores, sitios de malware, etc. O puede también deshabilitar todos los filtros pre-configurados.
Usted elige.
Documentación miscelánea reunida: https://github.com/gorhill/uMatrix/wiki
Documentación miscelánea reunida: https://github.com/gorhill/uMatrix/wiki (incompleta)
=====
COMENTARIOS:
Para una una pronta respuesta sobre preguntas o problemas que puedan surgir, use el botón "Enviar comentarios" a la derecha. No me es posible responder directamente a los comentarios y revisiones en foros, pero estaré más que feliz de darle una respuesta directa en la sección de Comentarios.
=====
ERRORES, PROBLEMAS, SUGERENCIAS:
https://github.com/gorhill/uMatrix/issues
Es bienvenido a contribuir con sus puntos de vista, sugerencias y argumentos a favor o en contra sobre cualquier tema abierto, que me ayuden a decidir que se necesita para hacer esta extensión mejor.
La facilidad de uso es el objetivo primario. He visto a usuarios desistir en el uso de la extensión NoScript para Firefox porque, según ellos, interfiere demasiado. Así que en vez de culpar a los usuarios acerca de sus pobres hábitos en temas relativos a su privacidad, he preferido culpar a los programadores, intentando resolver mediante este proyecto los problemas que hacen que los usuarios cesen de preocuparse sobre aspectos básicos de su seguridad.
Esta extensión también es útil para entender que hace una página web abierta por el navegador, muchas veces sin su conocimiento. Usted será totalmente capaz de decidir con quien se comunica una página web, y restringir dicha comunicación a determinados tipos de objetos dentro de la página.
El número que aparece en el ícono de la extensión se corresponde con el número total de peticiones diferentes hechas por la página web (ya sea que tuvieron éxito o no, de acuerdo a si fueron bloqueadas o permitidas).
@ -88,6 +74,8 @@ Esta extensión también puede ser útil si desea aumentar la velocidad de naveg
=====
ERRORES, PROBLEMAS: https://github.com/gorhill/uMatrix/issues
CÓDIGO FUENTE: https://github.com/gorhill/uMatrix (GPLv3)
REGISTRO DE CAMBIOS: https://github.com/gorhill/uMatrix/releases

@ -1,12 +1,12 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix: Maatriksil põhinev tulemüür, kus hiirekursoriga sihitakse ja vajutatakse ebameeldiva sisu eemaldamiseks. Sellele kaasneb ka mitmeid turvalisust lisavad võimalused. Mõeldud kogenud kasutajaile.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
µMatrix laseb Teil kontrollida kõiki veebilehitseja ühendusi, sealhulgas allalaaditavaid andmeid ja rakenduste käivitusi. Keegi teine ei otsusta Teie eest: Ainult Teie olete ohjas. Te kontrollite täielikult oma privaatsust.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Üldistades töötab µMatrix segamatus kõike-blokeerivas/erandeid-lubades olekus, mis võib kolmanda osapooli sisaldavaid portaale "katkistena" kuvada. µMatrixit on võimalik kahe klõpsuga tööle panna kõike-lubavasse/erandeid-blokeerivasse olekusse, mis tavaliselt ei tekita portaalide kuvamises probleeme. Rohkem teavet selle teema kohta leiate leheküljelt https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
Müüdi "Chromiumil põhinevad veebilehitsejad ei saa tegelikkuses blokeerida Javaskripte" kohta leidub infot siit: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Kokkuvõte: Jah, Chromiumis saab küll tegelikult blokeerida Javaskripti.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* Kuvab KÕIK väljastpoolt tulevad, ebaõnnestunud või üritatavad ühendused blokeerimis- või lubamisreeglite alusel (see on Teie otsustada).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).

@ -1,20 +1,20 @@
µMatrix : Un parefeu matriciel configurable à la volée, avec de nombreux outils d'amélioration de la vie privée en ligne. Pour utilisateurs avancés.
uMatrix : Un parefeu matriciel configurable à la volée, avec de nombreux outils d'amélioration de la vie privée en ligne. Pour utilisateurs avancés.
µMatrix vous donne les pleins pouvoirs sur votre navigateur. Vous contrôlez où il se connecte, ce qu'il télécharge, et ce qu'il exécute. Personne d'autre que vous ne prendra de décisions. Vous avez toutes les cartes en main pour protéger votre confidentialité.
*Pour utilisateurs avancés*
Après installation, µMatrix fonctionne en mode "Blocage total/Permissions exceptionnelles", ce qui veut dire que les sites Web ayant besoin de contenus tiers sont susceptibles de ne pas fonctionner correctement. En deux clics, µMatrix peut fonctionner en mode "Autorisation totale/Blocage exceptionnel", qui en principe n'empêchera pas les sites Web de fonctionner. Pour plus d'informations sur ce sujet, consultez cette page en Anglais : https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views .
uMatrix vous donne les pleins pouvoirs sur votre navigateur. Vous contrôlez où il se connecte, ce qu'il télécharge, et ce qu'il exécute. Personne d'autre ne décidera pour vous. Vous avez toutes les cartes en main pour protéger votre confidentialité.
En ce qui concerne le mythe disant que "les navigateurs basés sur Chromium ne peuvent bloquer du Javascript en toute fiabilité", consultez cette page en Anglais : https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers . Pour résumer ce qui y est dit : Si, le Javascript peut être bloqué en toute confiance au sein d'un navigateur basé sur Chromium.
Après installation, uMatrix fonctionne en mode "Blocage total/Permissions exceptionnelles", ce qui veut dire que les sites Web ayant besoin de contenus tiers sont susceptibles de ne pas fonctionner correctement. En deux clics, uMatrix peut fonctionner en mode "Autorisation totale/Blocage exceptionnel", ce qui en principe n'empêchera pas les sites Web de fonctionner. Pour plus d'informations sur ce sujet, consultez cette page en Anglais : https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views .
* Consultez TOUTES les tentatives de connexions distantes, échouées ou réussies, selon qu'elles soient bloquées ou autorisées (c'est vous qui le décidez).
* Consultez TOUTES les tentatives de connexions distantes, échouées ou réussies, selon qu'elles soient bloquées ou autorisées (c'est vous qui décidez).
* En un clic, vous pouvez mettre en liste blanche/noire une ou plusieurs sorte(s) de requête(s) d'après la destination et le type des données (sachant qu'une requête bloquée ne "s'en ira" JAMAIS de votre navigateur).
* En un clic, vous pouvez mettre en liste blanche/noire une ou plusieurs sorte(s) de requête(s) d'après la destination et le type des données (sachant qu'une requête bloquée ne "partira" JAMAIS de votre navigateur).
* Blocage efficace : Les cookies ne partiront pas de votre navigateur, le code JavaScript ne sera pas exécuté, les plugins ne démarreront pas, les pixels de pistage ne seront pas téléchargés, etc.
* Vous n'avez pas à vous reposer que sur une seule liste prédéfinie de blocage (dans laquelle il manquerait beaucoup d'éléments), en ayant la possibilité de cumuler l'emploi de plusieurs listes de ce genre, vous avez entièrement le contrôle.
* Vous n'avez pas à vous reposer sur une unique liste prédéfinie de blocage (dans laquelle il manquerait beaucoup d'éléments), avec la possibilité de cumuler l'emploi de plusieurs listes de ce genre, vous avez entièrement le contrôle.
* Facilité d'utilisation : µMatrix vous laisse aisément mettre en liste blanche/noire des requêtes réseau provenant d'une page Web, d'après une matrice qui vous permet de manipuler en quelques clics de souris :
* Facilité d'utilisation : uMatrix vous laisse aisément mettre en liste blanche/noire des requêtes réseau provenant d'une page Web, d'après une matrice qui vous permet de manipuler en quelques clics de souris :
- Les noms de domaine (colonne de gauche)
* de très spécifique
@ -32,42 +32,28 @@ En ce qui concerne le mythe disant que "les navigateurs basés sur Chromium ne p
En un clic, vous pouvez mettre en liste noire/blanche une simple cellule, une ligne entière, un ensemble de lignes, une colonne entière, ou toute la matrice.
Le moteur de filtrage de µMatrix utilise une logique de priorité pour évaluer ce qui doit être bloqué/autorisé d'après l'état des cellules (liste noire/blanche). Par exemple, cela vous permet de mettre en liste blanche toute une page Web en un clic, sans avoir à mettre en liste blanche de manière répétitive toute nouvelle donnée apparaissant sur la page.
Le moteur de filtrage de uMatrix utilise une logique de priorité pour évaluer ce qui doit être bloqué/autorisé d'après l'état des cellules (liste noire/blanche). Par exemple, cela vous permet de mettre en liste blanche toute une page Web en un clic, sans avoir à mettre en liste blanche de manière répétitive toute nouvelle donnée apparaissant sur la page.
Toutes les règles sont contextualisées. Par exemple, vous pouvez bloquer "facebook.com" et "facebook.net" partout sauf lorsque vous visitez une page sur "www.facebook.com". Ainsi Facebook ne pourrait pas définir un profil de vous en se basant sur vos habitudes de navigation.
Le but de cette extension est de rendre l'autorisation/le refus de sites Web, en totalité ou partiellement, aussi direct(e) que possible, pour encourager les utilisateurs à se préoccuper de leur confidentialité.
L'extension fournit des listes prédéfinies de blocage totalisant plus de 58 000 noms de domaine différents, sachant que chacune de ces listes peut être désactivée/activé selon votre choix.
L'extension fournit des listes prédéfinies de blocage totalisant plus de 62 000 noms de domaine différents, sachant que chacune de ces listes peut être désactivée/activé selon votre choix.
Enfin, vous pouvez choisir comment surfer sur le Net :
* Tout mettre en liste noire, et accorder des permissions exceptionnelles si besoin est (il s'agit du mode par défaut).
* Tout mettre en liste blanche, et bloquer exceptionnellement si nécessaire.
* Tout mettre en liste blanche, et bloquer si nécessaire.
De toute manière, vous bénéficierez toujours des listes de règles prédéfinis pour avoir une protection décente contre les pisteurs, les sites Web malveillants, etc. Ou vous pouvez désactiver tout cela.
Encore une fois, c'est votre choix.
Retrouvez ici en langue anglaise de la documentation rassemblée aléatoirement sur l'extension : https://github.com/gorhill/uMatrix/wiki .
Retrouvez ici en langue anglaise de la documentation rassemblée aléatoirement sur l'extension : https://github.com/gorhill/uMatrix/wiki (page en construction).
=====
RETOURS :
Quelque soit le doute/problème rencontré, n'hésitez pas à me contacter. Je ne peux pas répondre directement aux avis des utilisateurs sur Chrome/Opera Web Store, mais je serais ravi de vous répondre directement dans la section adéquate.
=====
PROBLÈMES & SUGGESTIONS :
https://github.com/gorhill/uMatrix/issues .
Vous êtes plus que bienvenus pour rapporter des soucis et des suggestions, divers arguments de type pour ou contre m'aideront à décider ce qu'il faut améliorer dans l'extension.
Le but premier c'est la facilité d'utilisation. J'ai déjà vu des utilisateurs jeter l'éponge au sujet de l'extension NoScript parce qu'elle leur a paru trop contraignante, alors plutôt que de les blâmer pour de piètres habitudes de sécurité, je préfère en vouloir aux développeurs et ce projet est une tentative de rectifier ces erreurs qui ont entrainé l'abandon des bonnes habitudes de sécurité chez certaines personnes.
Cette extension est également utile pour comprendre ce qu'effectue en coulisses une page Web dans votre navigateur. Vous pouvez parfaitement voir et décider avec quoi une page Web communique, et restreindre ces différentes communications.
Le nombre qui apparait sur l'icône de l'extension correspond au nombre total de requêtes distinctes tentées (et réussies ou non selon qu'elles ont été autorisées/refusées) par la page Web.
@ -88,6 +74,8 @@ Cette extension est aussi utile si vous souhaitez accélérer votre navigation,
=====
PROBLÈMES (Page en Anglais) : https://github.com/gorhill/uMatrix/issues
CODE SOURCE (Licence GPLv3, page en Anglais) : https://github.com/gorhill/uMatrix .
JOURNAL DES CHANGEMENTS (Page en Anglais) : https://github.com/gorhill/umatrix/releases .

@ -28,7 +28,7 @@
* סקריפטים
* XHR (בקשות הנעשות על ידי סקריפטים)
* מסגרות
* אחרים
* אחרות
אתה יכול להכניס לרשימה השחורה/הלבנה תא בודד, שורה שלמה, אוסף של שורות, עמודה שלמה, או את כל המטריצה בלחיצה אחת בלבד.
@ -36,17 +36,17 @@
כח החוקים מטווחים (מתוחמים). לדוגמה, אתה יכולה לחסום את `facebook.com` ואת `facebook.net` בכל מקום חוץ מכאשר אתה מבקר בדף ב `www.facebook.com`. בדרך זו פייסבוק לא יוכל לבנות פרופיל של הרגלי הגלישה שלך.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
המטרה של תוסף זה היא להפוך את האיפשור או החסימה של אתרי אינטרנט, במלואם או בחלקם, פשוט ככל האפשר, על מנת לעודד את המשתמשים לדאוג לפרטיות שלהם.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
התוסך מגיע עם קבצי Hosts צד שלישי שמהווים יותר מ 58,000 דומיינים שונים (רשימות יכולות להיות מבוטלות/מאופשרות באופן סלקטיבי בהתאם לבחירה שלך).
Ultimately, you can choose however you browse the net:
בסופו של דבר, אתה יכול לבחור בכל צורה שתרצה איך אתה גולש ברשת:
* Blacklist all by default, and whitelist as needed (default mode).
* חסום הכל בברירת מחדל, ואפשר לפי הצורך (מצב ברירת מחדל).
* Whitelist all by default, and blacklist as needed.
* אפשר הכל בברירת מחדל, וחסום לפי הצורך.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
כך או כך, אתה עדיין מרוויח מהרשימות השחורות הקיימות מראש, כך שלפחות אתה מקבל הגנה בסיסית מאלה שמנסים לעקוב אחרייך, אתרים זדוניים, וכו'. או שאתה יכול לכבות את כל הרשימות הקיימות מראש.
בחירה שלך.
@ -56,7 +56,7 @@ Either way, you still benefit from the preset blacklists so that at least you ge
פידבק:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
לכל שאלה/בעיה שיש לך, השתמש בכפתור "שלח משוב" בצד שמאל, על מנת שאהיה מסוגל לענות בקלות. אני לא יכול לענות ישירות לביקורות, אבל אני יותר מאשמח לענות לך ישירות במשוב.
=====
@ -66,25 +66,25 @@ https://github.com/gorhill/uMatrix/issues
בחירה שלך.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
קלות השימוש היא המטרה העיקרית. ראיתי משתמשים שמוותרים על התוסף NoScript ל FireFox משום שהוא מפריע להם יותר מדי בזמן השימוש, אז במקום להאשים את המשתמשים האלה בהרגלי אבטחה דלים, אני מעדיף להאשים את המפתחים והפרויקט הזה בא לנסות לטפל בבעיות שגורמות לחלק מהמשתמשים לוותר על אבטחה בסיסית.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
תוסף זה גם שימושי כדי להבין מה דף האינטרנט בדפדפן שלך עושה, לעתים קרובות ללא ידיעתך. יש לך יכולת מלאה לראות ולהחליט עם מי דף אינטרנט מתקשר, ולהגביל את התקשורות הללו לסוגים ספציפיים של אובייקטים בתוך דף האינטרנט.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
המספר שמופיע לאייקון של התוסף מתייחס למספר הכולל של בקשות שונות שנוסו (בהצלחה או לא, תלוי אם אלה הורשו או היו חסומות) על ידי דף האינטרנט.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
פשוט לחץ על המקום המתאים במטריצה על מנת להלבין-, להשחיר- או להאפיר מרכיב. האפרה משמעותה שסטאטוס החסימה או האיפשור יעבור בירושה מתא אחר עם עדיפות גבוהה יותר במטריצה.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
ריבוע אדום = חסומים ביעילות, לדוגמא. בקשות מנועות מלהגיע אל היעד שלהן:
* ריבוע אדום כהה: הדומיין ו/או סוג הבקשה חסומה מפורשות.
ריבוע אדום דהוי: מצב החסימה עובר בירושה, כי התא מאופר.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
ריבוע ירוק = מאופשרים ביעילות, לדוגמא. בקשות מאופשרות להגיע אל היעד שלהן:
* ריבוע ירוק כהה: הדומיין ו/או סוג הבקשה מאופשרת מפורשות.
ריבוע ירוק דהוי: מצב האיפשור עובר בירושה, כי התא מאופר.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
התא הימני העליון במטריצה, תא ה-"הכל", מייצג את הטווח הגלובלי הדיפולטיבי, אשר נותן לך לבחור האם אפשור או חסימה של הכל יהיה ברירת המחדל. חלק מעדיפים לאפשר הכל תןך חסימה של יוצאים מן הכלל. ההעדפה האישית שלי כמובן הפוכה, חסימה של הכל ואפשור יוצאים מן הכלל.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
תוסף זה גם שימושי אם אתה רוצה להאיץ את הגלישה שלך, על ידי חסימה גלובלית של כל הבקשות לתמונות כדוגמא.
=====

@ -1,93 +1,93 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix: Firewall tunjuk-dan-klik berbasis matriks, dengan banyak perkakas privasi yang ditingkatkan. Untuk pengguna tingkat lanjut.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
µMatrix memberi anda kontrol penuh ke mana peramban anda diizinkan terhubung, tipe data apa yang diizinkan untuk diunduh, dan apa yang diizinkan untuk dieksekusi. Tidak seorangpun memutuskan untuk anda: Anda yang memilih. Anda mengontrol penuh privasi anda sendiri.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Secara bawaan, µMatrix bekerja dalam mode blokir-semua/izinkan-sebagian yang agak ketat, artinya situs web yang membutuhkan skrip pihak ketiga besar kemungkinan menjadi "rusak". Dengan dua klik, µMatrix dapat diatur untuk bekerja dalam mode izinkan-semua/blokir-sebagian, yang pada umumnya tidak akan membuat rusak situs web. Lihat https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views untuk penjelasan lebih rinci perihal topik ini.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
Mengenai mitos "Peramban barbasis Chromium tidak dapat dengan handal memblokir JavaScript", lihat: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Ringkasnya: Ya, JavaScript dapat diblokir dengan handal di Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* Lihat SEMUA koneksi asing, yang gagal atau mencoba, tergantung dari apakah mereka diblokir atau diizinkan (anda putuskan).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Sekali klik untuk mendaftar-putih/hitamkan satu atau banyak kelas permintaan menurut destinasi dan jenis data (permintaan yang diblokir TIDAK AKAN PERNAH meninggalkan peramban anda).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* Pendaftar-hitaman yang efisien: kuki tidak akan meninggalkan peramban anda, JavaScript tidak akan dieksekusi, plugin tidak akan berjalan, piksel pelacakan tidak akan diunduh, dll.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Anda tidak harus bergantung hanya pada daftar-hitam tertentu saja (dengan alasan banyak entri yang hilang) selain tidak ada lagi yang dapat diblokir: Anda dalam kontrol penuh.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
* Mudah dalam penggunaan: µMatrix memungkinkan anda dengan mudah mendaftar-putih/hitamkan permintaan jaringan yang berasal dari halaman web menurut matriks tunjuk-dan-klik:
- domain names (left column)
* from very specific
* to very generic
- nama ranah (kolom kiri)
* dari sangat spesifik
* ke sangat umum
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
- jenis permintaan (baris atas)
* kuki
* sumber daya terkait CSS (stylesheet dan fon web)
* gambar
* plugin
* skrip
* XHR (permintaan yang dibuat oleh skrip)
* frame
* lainnya
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
Anda dapat mendaftar-hitam/putihkan satu sel, seluruh baris, satu grup dari baris, seluruh kolom, atau seluruh matriks hanya dengan satu klik.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
Mesin penyaringan µMatrix menggunakan logika tinggi untuk mengevaluasi apa yang diblokir/diizinkan sesuai dengan sel mana yang di daftar-hitam/putih. Sebagai contoh, hal ini memungkinkan anda mendaftar-putihkan seluruh halaman dengan satu klik, tanpa perlu berulang-ulang mendaftar-putihkan setiap data baru yang muncul di halaman.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
Mencakup semua aturan. Sebagai contoh, anda dapat memblokir `facebook.com` dan `facebook.net` di manapun kecuali ketika mengunjungi sebuah halaman di `www.facebook.com`. Dengan cara ini Facebook tidak akan bisa membangun profil mengenai kebiasaan penjelajahan anda.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
Tujuan dari ekstensi ini adalah untuk mengizinkan atau memblokir situs web, sepenuhnya atau sebagian, sesederhana mungkin, sehingga mendorong para pengguna untuk lebih peduli tentang privasi mereka.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Ekstensi ini hadir bersama berkas hos pihak ketiga dengan total lebih dari 58,000 nama hos yang berbeda (daftar dapat secara selektif dinonaktif/aktifkan sesuai dengan pilihan anda).
Ultimately, you can choose however you browse the net:
Pada akhirnya, Anda dapat memilih bagaimana anda ingin menjelajah internet:
* Blacklist all by default, and whitelist as needed (default mode).
* Daftar-hitamkan semua secara baku, dan daftar-putihkan sesuai kebutuhan (mode bawaan).
* Whitelist all by default, and blacklist as needed.
* Daftar-putihkan semua secara baku, dan daftar-hitamkan sesuai kebutuhan.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Dengan cara manapun, anda masih diuntungkan dari aturan bawaan daftar-hitam sehingga paling tidak anda tetap mendapatkan perlindungan mendasar dari pelacak, situs malware, dll. Atau anda dapat menonaktifkan semua aturan bawaan daftar-hitam ini.
Your choice.
Terserah anda.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
Himpunan acak dokumentasi: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
UMPAN BALIK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
Jika ada pertanyaan/masalah yang mungkin ingin anda sampaikan, gunakan tombol "Kirim Umpan Balik" di sebelah kanan, agar saya dapat menjawab dengan mudah. Saya tidak dapat menjawab secara langsung untuk ulasan, tapi saya akan lebih dari senang untuk menjawab anda secara langsung di bagian umpan balik.
=====
BUGS, ISSUES, SUGEGSTIONS:
KUTU, MASALAH, SARAN:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Anda sangat diharapkan untuk berkontribusi mengenai pandangan anda mengenai masalah yang ada dan saran/masukan, argumen apapun baik membangun/kontra membantu saya memutuskan apa yang diperlukan untuk memperbaiki ekstensi ini.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
Mudah dalam penggunaan adalah tujuan utama. Saya melihat banyak pengguna menyerah menggunakan NoScript pada Firefox karena menurut mereka semakin banyak gangguan yang terjadi, jadi dari pada menyalahkan para pengguna atas kebiasaan keamanan yang buruk, saya memilih menyalahkan pengembang dan proyek ini adalah eksperimen untuk mengatasi masalah yang menyebabkan beberapa pengguna menyerah pada keamanan dasar.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
Ekstensi ini juga bermanfaat untuk memahami apa yang halaman web lakukan di dalam peramban anda, yang seringkali tanpa sepengetahuan anda. Anda memiliki kewenangan penuh untuk melihat dan memutuskan dengan siapa sebuah halaman web berkomunikasi, dan membatasi komunikasi tersebut hanya untuk kelas obyek spesifik di dalam halaman web.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Angka yang muncul pada ikon ekstensi berhubungan dengan jumlah total percobaan permintaan yang berbeda (sukses atau tidak tergantung pada apakah permintaan tersebut diizinkan atau diblokir) oleh halaman web.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Cukup klik pada entri yang sesuai dalam matriks untuk memutihkan, menghitamkan, mengabu-abukan sebuah komponen. Mendaftar-abukan berarti status diblokir atau diizinkan akan diturunkan dari sel lainnya dengan urutan prioritas yang lebih tinggi dalam matriks.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Persegi merah = didaftar-hitamkan secara efektif, contoh. permintaan dicegah untuk mencapai destinasi yang dinginkan:
* Persegi merah gelap: nama ranah dan/atau jenis permintaan secara spesifik didaftar-hitamkan.
* Persegi merah pudar: status daftar-hitam adalah turunan karena entri berada di daftar abu-abu.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
Persegi hijau = didaftar-putihkan secara efektif, contoh. permintaan diizinkan untuk mencapai destinasi yang diinginkan:
* Persegi hijau gelap: nama ranah dan/atau jenis permintaan secara spesifik didaftar-putihkan.
* Persegi hijau pudar: status daftar-putih adalah turunan karena entri berada di daftar abu-abu.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
Sel kiri atas dalam matriks, sel "semua", mewakili pengaturan baku secara global, yang memungkinkan anda memilih apakah mengizinkan atau memblokir semuanya sebagai perilaku/tindakan baku. Beberapa memilih mengizinkan semuanya sambil memblokir sebagian. Preferensi personal saya adalah tentu saja kebalikannya, memblokir semuanya dan mengizinkan sebagian.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
Ekstensi ini juga berguna jika anda ingin mempercepat penjelajahan anda, sebagai contoh dengan secara global memblokir semua permintaan untuk gambar.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
KODE SUMBER: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases
CATATAN PERUBAHAN: https://github.com/gorhill/uMatrix/releases

@ -1,93 +1,93 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
uMatrix: un firewall a matrice del tipo punta e clicca, con molte funzionalità a salvaguardia della privacy. Per utenti avanzati.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
uMatrix permette il pieno controllo delle connessioni del browser, del tipo di dati che può scaricare e di cosa può eseguire. Nessun'altro decide per te: Tu scegli. Solo tu hai il controllo completo della tua privacy.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
In configurazione standard, uMatrix funziona in modalità blocca-tutto/permetti-eccezionalmente, vale a dire che i siti che richiedono script di terze parti, facilmente risulteranno incompleti o con errori. Con solo un paio di click, uMatrix può essere configurato in modalità permetti-tutto/blocca-eccezionalmente, che generalmente non causa problemi nel caricamento dei siti. Vedere https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views per ulteriori dettagli.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
Riguardo il mito che i browser basati su Chromium non possano bloccare efficacemente javascript, vedere: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. In sostanza: Si, javascript può essere efficacemente bloccato in Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
*Vedi TUTTE le connessioni remote, se fallite o tentate, dipendendo se siano bloccate o permesse (tu decidi).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Un singolo click per permettere/bloccare una o più categorie di richieste, in funzione della destinazione e del tipo di dati (una richiesta bloccata non lascerà MAI il tuo browser).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* Controllo efficiente: i cookies non lasceranno il tuo browser, javascript non verrà eseguito, i plug-in non verranno attivati, pixel di tracking non saranno scaricati, ecc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Tu non devi unicamente affidarti ad una singola lista nera (presumibilmente con molte voci mancanti) al di fuori della quale niente altro può essere bloccato: Tu hai il pieno controllo.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
* Semplicità d'uso: uMatrix consente di permettere/bloccare le richieste originate da una pagina web secondo uno schema a matrice, punta e clicca:
- domain names (left column)
* from very specific
* to very generic
- nome del dominio (colonna di sinistra)
* dal molto specifico
* al molto generico
- type of requests (top row)
- tipo di richiesta (riga in alto)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* risorse tipo CSS (stili e caratteri)
* immagini
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
* XHR (richieste fatte dagli script)
* riquadri
* altro
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
Tu puoi permettere/bloccare una singola cella, una intera riga, un gruppo di righe, una intera colonna o l'intera matrice, con solo un click.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
Il sistema di filtri di uMatrix utilizza una logica di priorità per valutare cosa viene bloccato/permesso, secondo le celle che sono in black o white list. Per esempio, questo permette di mettere in white list una pagina intera con un click, senza alcun bisogno di consentire qualunque nuovo elemento che appare sulla pagina.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
Tutte le regole hanno un loro specifico campo di applicazione. Per esempio, si può bloccare 'facebook.com' e 'facebook.net' ovunque eccetto quando si visita una pagina su 'www.facebook.com'. in questo modo Facebook non è in grado di costruire un profilo delle abitudini di navigazione.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
Lo scopo di questa estensione è rendere il più immediato possibile il blocco o meno, parziale o totale di siti web, incoraggiando gli utenti a tutelare la propria privacy.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
L'estensione contiene host file di terze parti, per un totale di oltre 58.000 distinti hostname (le liste possono essere disabilitate/abilitate secondo le proprie preferenze).
Ultimately, you can choose however you browse the net:
In conclusione, ognuno può decidere come navigare su Internet:
* Blacklist all by default, and whitelist as needed (default mode).
*Mettere tutto in blacklist e consentire elementi secondo necessità (modalità di default).
* Whitelist all by default, and blacklist as needed.
*Consentire tutto di default e bloccare elementi secondo necessità.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
In entrambe le modalità, rimane il beneficio della protezione delle blacklist standard, che forniscono una difesa di base nei confronti di tracker, siti di malware, ecc. Oppure si possono disabilitare tutte queste blacklist standard.
Your choice.
La scelta è tua.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
Documentazione disponibile: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
Feedback:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
Per qualunque dubbio o domanda, usare il pulsante sulla destra "Invia Feedback". Risponderò prontamente. Non posso rispondere direttamente ai pareri, ma sarò lieto di rispondere direttamente nella sezione dei feedback.
=====
BUGS, ISSUES, SUGEGSTIONS:
Bachi, problemi, consigli:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Chiunque può contribuire al lavoro, con suggerimenti, segnalazione di problemi, argomentazioni pro/contro, per aiutarmi a decidere quali migliorie fare nell'estensione.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
La facilità di utilizzo è il primo obiettivo. Ho visto utilizzatori rinunciare ad usare NoScript per Firefox perché complesso, quindi invece di accusare questi utilizzatori di avere abitudini non sicure, preferisco accusare gli sviluppatori e questo progetto vuole essere un tentativo di risolvere quei problemi che hanno determinato la rinuncia ad impiegare una sicurezza di base.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
Questa estensione è anche utile per capire cosa una pagina web fa effettivamente nel browser, spesso senza la vostra conoscenza. Voi avete la piena abilità di vedere e decidere con chi la pagina web comunica e restringere queste comunicazioni a specifiche classi di oggetti all'interno della pagina.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Il numero che appare nella nell'icona dell'estensione corrisponde al numero complessivo di distinte richieste tentate (con successo o meno, dipendendo se queste siano permesse o bloccate) dalla pagina web.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Semplicente fare click nella appropriata cella della matrice per permettere mettere un elemento in white-, black- o grey list. La lista grigia (Graylisting) significa che lo stato di bloccato o permesso viene ereditato da un'altra cella con più alta priorità nella matrice.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Cella rossa = effettivamente bloccata, cioè alle richieste viene impedito di raggiungere la loro destinazione.
* Cella rosso scuro: il dominio o il tipo di richiesta è specificamente bloccata.
* Cella rossa opaca: lo stato di blocco (blacklist) è ereditato perchè l'elemento è in grey list.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
Cella verde = effettivamente permesso, cioè alle richieste è permesso raggiungere la loro destinazione:
* Cella verde scuro: il dominio e/o il tipo di richiesta è specificamente permessa (whitelist).
* Cella vedre opaca: lo stato di permesso è ereditato perchè l'elemento è in grey list.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
La cella in alto a sinistra nella matrice, la cella "tutto", rappresenta il setting globale di default, che permette di scegliere se permettere o bloccare tutto. Alcuni preferiscono permettere tutto e bloccare in casi specifici. La mia preferenza personale è naturalmente il contrario, bloccare tutto e permettere in casi specifici.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
Questa estensione è inoltre utile se volete accelerare la vostra navigazione, bloccando tutte le richieste delle immagini, per esempio.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CODICE SORGENTE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,93 +1,81 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
uMatrix格子状のマトリクスで管理するファイヤウォール。様々なプライバシー強化ツールを兼ね備えます。
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
* 上級ユーザー向けです *
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
uMatrix を使うと、ブラウザーがどこと通信して良いのか、どの種類のデータをダウンロードするのか、何を実行して良いのかを決定することができます。誰か他の人があなたの代わりに決めてくれることはありません。自分のプライバシーを自分で制御するのです。
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
初期設定では、uMatrix は安心できる「すべてブロック・必要なら許可」の設定になっています。つまり、サードパーティーのスクリプトを必要とするウェブサイトは“壊れる”ことが多いでしょう。2クリックで、「すべて許可・必要ならブロック」の設定に変えることもでき、この場合、ウェブサイトを壊すことはほとんどありません。より詳しくは https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views を見て下さい。
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* あなたが選んだブロック/許可の結果による“すべての”リクエストの失敗/実施の状況を確認できます。
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* ワンクリックで、接続先やデータの種類に応じてリクエストを許可/ブロックすることができます。ブロックされたリクエストがブラウザーから外に出ることは決してありません。
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* 効率的なブラックリストCookie はブラウザーの外には出ず、JavaScript もプラグインも実行されず、追跡ピクセルがダウンロードされることもありません。
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* リストにないとブロックしてくれない(そして多くの漏れがあるであろう)ブラックリストだけに頼る必要はありません。自分で制御できるのです。
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
* 使い勝手の良さuMatrix では、ウェブページが発したリクエストを、マトリクスをクリックすることで簡単に許可/ブロックすることができます。
- domain names (left column)
* from very specific
* to very generic
- ドメイン名(左の列)
* 具体的なドメインから
* 汎用的なドメインまで 選ぶことができます
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
- リクエストの種類(先頭の行)
* Cookie
* CSS 関連のリソース(スタイルシートと Web フォント)
* 画像
* メディア
* スクリプト
* XHR(スクリプトにより生成されるリクエスト)
* フレーム
* その他
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
ワンクリックで、特定のセル、特定のドメイン、グループ化されたドメイン、特定のリクエストの種類、そしてマトリクス全体を許可/ブロックできます。
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
uMatrix のフィルタリングエンジンは、どのセルが許可/ブロックされているかによって、優先順位に基づくロジックでリクエストを処理します。これにより、例えば、あるページ全体をワンクリックで許可しておけば、このページに新しいリクエストが見つかるたびに許可を追加する必要がなくなります。
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
それぞれのルールには有効範囲があります。例えば、www.facebook.com にアクセスしていない時だけ facebook.com と facebook.net をブロックすることができます。これにより、Facebook が、あなたのブラウジング習慣からあなたの人物像を作成することを防ぎます。
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
この拡張機能の最終目標は、ユーザーが自身のプライバシーに気を配れるよう、可能な限り簡潔に、ウェブサイトを包括的あるいは部分的に許可/ブロックできるようにすることです。
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
この拡張機能には、合計 62,000 件以上のホスト名からなるサードパーティーのホストファイルが含まれます。これらのファイルは好みに応じてオンオフすることができます。
Ultimately, you can choose however you browse the net:
まとめると、あなたはネットをブラウジングする方法を次のように選ぶことができます。
* Blacklist all by default, and whitelist as needed (default mode).
* はじめはすべてブロック、必要に応じて許可していく(初期設定)
* Whitelist all by default, and blacklist as needed.
* はじめはすべて許可、必要に応じてブロックしていく
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
どちらの方法でも、組み込みのホストファイルのおかげで、トラッカーやマルウェアサイトなどに対する基礎的な保護を得ることができます。もしくはこれらをすべて無効にすることもできます。
Your choice.
決めるのはあなたです。
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
ドキュメント: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
この拡張機能のもう一つの使い道は、知識なしでも、ブラウザーの中でウェブページが何をしているか理解することです。あなたはウェブページがどこと通信するのかをすべて見た上で決断し、ウェブページ中の特定の種類の通信を制限できます。
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
拡張機能アイコンに表示される数値は、ウェブページによっていくつのリクエストが試みられたかの総数(許可/ブロック合わせて)を示します。
=====
BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
マトリクスの適切なセルをクリックして、許可/ブロック/グレーのいずれにするかを決めます。“グレー”では、マトリクス内のより優先度の高いセルからブロック/許可の状態を引き継ぎます。
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
赤いセル は事実上ブロックされている状態であり、リクエストは接続先に届きません。
* 濃い赤:そのドメイン名とリクエスト種類の組み合わせは、明示的にブロックされています。
* 淡い赤:セルが“グレー”状態のため、ブロック状態が引き継がれました。
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
緑のセル は事実上許可されている状態であり、リクエストは接続先に届きます。
* 濃い緑:そのドメイン名とリクエスト種類の組み合わせは、明示的に許可されています。
* 淡い緑:セルが“グレー”状態のため、許可が引き継がれました。
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
マトリクスの一番左上にある「すべて」のセルはデフォルトのグローバル設定を示し、「すべてを許可」と「すべてをブロック」のどちらをデフォルトにするかを選ぶことができます。人によっては、すべてを許可した上で必要に応じてブロックすることを好むでしょう。私の個人的な設定はもちろんその逆、すべてをブロックした上で必要なものを許可します。
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
この拡張機能は、例えば画像の読み込みをすべてブロックすることで、ブラウジングスピードを上げるのにも役立ちます。
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
バグ・問題報告: https://github.com/gorhill/uMatrix/issues
ソースコード: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases
更新履歴: https://github.com/gorhill/uMatrix/releases

@ -88,6 +88,6 @@ This extension is also useful if you wish to speed up your browsing, by globally
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
소스 코드: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases
변경사항: https://github.com/gorhill/uMatrix/releases

@ -10,27 +10,27 @@ Regarding the myth that "Chromium-based browsers can't reliably block javascript
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* Efektīgs melnais saraksts: "cepumiņi" nepametīs jūsu pārlūku, javascripts netiks izpildīts, spraudņi netiks palaisti, sekošanas pikseļi netiks novilkti, u.t.t.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domain names (left column)
* from very specific
* to very generic
- domēnu vārdi (kreisajā kolonnā)
* sākot ar ļoti specifiskiem
* beidzot ar ļoti vispārējiem
- type of requests (top row)
* cookies
- Pieprasījumu veidi (augšējā rinda)
* "cepumiņi"
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
* attēli
* spraudņi
* "skriptus"
* XHR ("skriptu" pieprasījumus)
* rāmji
* citi
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
Jūs variet iekļaut atsevišķas šūnas, veselu vai vairākas rindas, veselu kolonnu vai visu matriksu melnajā/baltajā sarakstā tikai are vienu peles klikšķi.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
@ -48,19 +48,19 @@ Ultimately, you can choose however you browse the net:
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Your choice.
Jūsu izvēle.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
Nejauši apkopota dokumentācija: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
ATSAUKSMES:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
Jebkuriem jautājumiem/problēmām izmantojot "Nosūtīt Atsauksmes" pogu labajā malā, lai man būtu vieglāk jums atbildēt. Es nevaru tieši atbildēt uz jūsu recenzijām, taču būšu vairāk kā priecīgs atbildēt jums tieši atsauksmju sadaļā.
=====
BUGS, ISSUES, SUGEGSTIONS:
KĻŪDAS, PROBLĒMAS, IETEIKUMI:
https://github.com/gorhill/uMatrix/issues
@ -84,10 +84,10 @@ Green square = effectively whitelisted, i.e. requests are allowed to reach their
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
Šis paplašinājums ir arī noderīgs, ja vēlaties paātrināt savu "sērfošanas" ātrumu, piemēram, bloķējot globāli visus pieprasījumus pēc attēliem.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
Pirmkods: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases
Izmaiņu žurnāls: https://github.com/gorhill/uMatrix/releases

@ -1,93 +1,81 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
uMatrix: een contextafhankelijke en matrix-gebaseerde firewall, met vele functies ter verbetering van uw privacy.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
*Voor gevorderde gebruikers.*
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
uMatrix geeft volledige controle over welke verbindingen uw browser mag maken, welk type gegevens de browser mag downloaden, en wat erin mag worden uitgevoerd. Niemand anders beslist het: het is uw keuze. U hebt de volledige controle over uw privacy.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
Direct na installatie werkt uMatrix in de modus alles-blokkeren/bij-uitzondering-blokkeren, wat inhoudt dat websites die scripts van derden nodig hebben waarschijnlijk niet goed worden weergegeven. Met twee muisklikken kan uMatrix worden ingesteld om in de modus alles-toestaan/bij-uitzondering-blokkeren te werken, waarmee websites doorgaans wel goed worden weergegeven. Zie https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views voor meer details over dit onderwerp.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* Bekijk ALLE externe verbindingen, mislukte of gepoogde, afhankelijk van of deze werden geblokkeerd of toegestaan (u beslist).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Eén muisklik voor het whitelisten/blacklisten van een of meer aanvraagklassen volgens de bestemming en het type gegevens (een geblokkeerde aanvraag zal uw browser NOOIT verlaten).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* Efficiënt blacklisten: cookies verlaten uw browser niet, JavaScript wordt niet uitgevoerd, plug-ins worden niet afgespeeld, trackingpixels worden niet gedownload, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* U hoeft niet slechts op één bepaalde beheerde blacklist (betwistbaar met veel ontbrekende vermeldingen) te vertrouwen waarbuiten niets anders kan worden geblokkeerd: u hebt de volledige controle.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
* Gebruikersgemak: met uMatrix kunt u eenvoudig netwerkaanvragen die van een webpagina afkomstig zijn whitelisten/blacklisten, volgens een matrix via aanwijzen en klikken:
- domain names (left column)
* from very specific
* to very generic
- domeinnamen (linkerkolom)
* van zeer specifieke
* tot zeer algemene
- type of requests (top row)
- type aanvragen (bovenste rij)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* CSS-gerelateerde bronnen (stijlbladen en weblettertypen)
* afbeeldingen
* plug-ins
* scripts
* XHR (requests made by scripts)
* XHR (aanvragen door scripts)
* frames
* others
* overig
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
Met slechts één klik kunt u een enkele cel, een hele rij, een groep rijen, een hele kolom, of de hele matrix blacklisten/whitelisten.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
De filterengine van uMatrix gebruikt voorrangslogica voor het evalueren van wat er volgens de cellen die zijn geblacklist/gewhitelist is geblokkeerd/toegestaan. Hierdoor kunt u bijvoorbeeld met één klik een hele pagina whitelisten, zonder dat u dat herhaaldelijk moet doen bij nieuwe gegevens die op de pagina verschijnen.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
Alle regels worden aan een bereik gerelateerd. U kunt bijvoorbeeld facebook.com en facebook.net overal blokkeren, behalve wanneer u een pagina op www.facebook.com bezoekt. Op deze manier zal Facebook geen profiel van uw surfgedrag kunnen opbouwen.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
Het doel van deze extensie is om het toestaan of blokkeren van websites, geheel of gedeeltelijk, zo overzichtelijk mogelijk te maken en daarmee gebruikers aan te moedigen om op hun privacy te letten.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Standaard bevat de extensie hosts-bestanden van derden met meer dan 62.000 afzonderlijke hostnamen (lijsten kunnen naar keuze selectief worden in- en uitgeschakeld).
Ultimately, you can choose however you browse the net:
Uiteindelijk kunt u kiezen hoe u op het internet wilt surfen:
* Blacklist all by default, and whitelist as needed (default mode).
* Alles standaard blacklisten, en whitelisten wanneer nodig (standaardmodus).
* Whitelist all by default, and blacklist as needed.
* Alles standaard whitelisten, en blacklisten wanneer nodig.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
In beide gevallen heb u voordeel van de vooraf geleverde blacklists, zodat u op zijn minst basisbescherming krijgt tegen trackers, malwaresites, etc. U kunt al deze vooraf geleverde blacklists ook uitschakelen.
Your choice.
Uw keuze.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
Willekeurig samengestelde documentatie: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
Deze extensie is ook bruikbaar om te begrijpen wat de webpagina in uw browser doet, vaak zonder uw medeweten. U hebt de volledige mogelijkheid om te zien en te beslissen waarmee een webpagina communiceert, en deze communicatie tot bepaalde objectklassen binnen dezelfde pagina te beperken.
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
Het getal dat in het pictogram van de extensie verschijnt, komt overeen met het totale aantal afzonderlijke geprobeerde aanvragen (geslaagd of niet, afhankelijk van of deze werden toegestaan of geblokkeerd) door de webpagina.
=====
BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
Klik eenvoudig op de juiste vermelding in de matrix om een onderdeel te white-, black- of graylisten. Graylisten houdt in dat de status geblokkeerd of toegestaan van een andere cel met hogere voorrang in de matrix wordt overgenomen.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
Rood vierkant = effectief geblacklist, m.a.w. aanvragen richting hun bedoelde eindbestemming worden voorkomen:
* Donkerrood vierkant: de domeinnaam en/of het type aanvraag is specifiek geblacklist.
* Vaalrood vierkant: de blacklist-status is overgenomen, omdat de vermelding is gegraylist.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Groen vierkant = effectief gewhitelist, m.a.w. aanvragen mogen hun bedoelde eindbestemming bereiken:
* Donkergroen vierkant: de domeinnaam en/of het type aanvraag is specifiek gewhitelist.
* Vaalgroen vierkant: de whitelist-status is overgenomen, omdat de vermelding is gegraylist.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
De cel in de linkerbovenhoek van de matrix, de cel alle, vertegenwoordigt de algemene standaardinstelling waarmee u kunt kiezen of alles toestaan of blokkeren het standaardgedrag is. Sommige gebruikers geven de voorkeur aan alles toestaan en bij uitzondering blokkeren. Mijn persoonlijke voorkeur is natuurlijk het omgekeerde, alles blokkeren en bij uitzondering toestaan.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
Deze extensie is ook nuttig als u het browsen wilt versnellen, bijvoorbeeld door alle aanvragen voor afbeeldingen overal te blokkeren.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
BUGS, PROBLEMEN: https://github.com/gorhill/uMatrix/issues
BRONCODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases
CHANGELOG: https://github.com/gorhill/uMatrix/releases

@ -1,6 +1,6 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix er et pek-og-klikk matrise basert brannmur, med mange fler personverns verktøy. For avanserte brukere.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
µMatrix gir deg full kontroll over din nettlesers tilkoblinger og hvilke typer data den får lov til å laste ned eller kjøre. Ingen bestemmer for deg. Og du vil være i full kontroll over ditt eget privatliv.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.

@ -74,13 +74,13 @@ O número que aparece no ícone da extensão corresponde ao número total de ped
Simples clique para apropriar uma entrada na matrix nas cores branca-,preta- ou cinza de um componente. Cinza significa que o status de permitido ou bloqueado irá ser herdado de uma outra célula de maior precedência na matrix.
Quadrado vermelho = efetivamente na lista negra, i.e. pedidos são prevenidos de alcançar o destino pretendido:
Quadrado vermelho = efetivamente na lista negra, exemplo: pedidos são prevenidos de alcançar o destino pretendido:
* Quadrado vermelho escuro: o nome do domínio e/ou tipo de pedido está especificamente na lista negra.
* Quadrado vermelho claro: o status de lista negra é herdada porque a entrada é cinza.
Quadrado verde = efetivamente na lista branca, i.e. os pedidos são permitidos de alcançar o destino pretendido:
* Quadrado verde escuro: o nome do domínio e/ou tipos de pedido são especificamente da lista branca.
* Quadrado verde claro: o status da lista branca é herdade por causa de uma entrada cinza.
* Quadrado verde claro: o status da lista branca é herdada por causa de uma entrada cinza.
A célula superior esquerda na matrix, a célula "tudo/todos", representa a configuração padrão global, que permite que você escolha entre permitir ou bloquear tudo como comportamento padrão. Alguns preferem permitir tudo e bloquear excepcionalmente. Minha preferência pessoa é claro que é o oposto, bloquear tudo e permitir excepcionalmente.

@ -1,93 +1,93 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
Uma firewall point & click baseada numa matriz, com funcionalidade para reforçar a privacidade de cada um. Para utilizadores avançados.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
uMatrix coloca-o no controlo de onde o seu browser se pode conectar, que tipo de dados podem ser transferidos, e o que pode ser executado. Ninguém decide por si: Você escolhe. Você tem controlo total sob a sua privacidade.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Fora da caixa, uMatrix funciona numa configuração relaxada "bloqueia-tudo/permite-excepcionalmente", o que quer dizer que web sites que necessitem scripts de terceiros poderão não estar funcionais. Com dois clicks, o uMatrix pode ser configurado para funcionar em modo "permite-tudo/bloqueia-excepcionalmente", o que geralmente não cria problemas em nenhuma página web. Ver https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views para mais detalhes sobre este tópico.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
Sobre do mito que "browser baseados em Chromium não conseguem bloquear JavaScript fielmente", ver: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Sumário: Sim, JavaScript pode ser bloqueado com seguração no Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* Ver TODAS as conexões remotas, falhadas ou tentadas, dependendo se foram bloqueadas ou permitidas (você decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Um único-clique para meter múltiplas classes de pedidos na lista branca/negra, de acordo com o destino e tipo dos dados (um pedido bloqueado NUNCA vai sair do seu browser).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* Lista negra eficiente: cookies não iram sair do seu browser, JavaScript não será executado, plugins não irão correr, pixels de monitorização não serão transferidos, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Você não tem de depender unicamente numa lista negra em particular (possivelmente a faltar entradas) fora do qual mais nada pode ser bloqueado: Você está em controlo total.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
* Facilidade de utilização: uMatrix deixa-o adicionar pedidos net que originam de uma página web a uma lista negra/branca, recorrendo a uma matriz point & click:
- domain names (left column)
* from very specific
* to very generic
- nomes de domínio (coluna esquerda)
* de muito específico
* a muito genérico
- type of requests (top row)
- tipo de pedidos (linha de topo)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* Recursos relacionados com CSS (stylesheets e web fonts)
* imagens
* plug-ins
* scripts
* XHR (requests made by scripts)
* XHR (pedidos efectuados pelos scripts)
* frames
* others
* outros
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
Pode adicionar uma única célula à lista negra/branca, um grupo de linhas, uma coluna inteira, ou toda a matriz, com apenas um clique.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
O mecanismo de filtragem do uMatrix usa lógica de precedência para avaliar o que é permitido/está bloqueado, de acordo com as células que estão na lista negra/branca. Por exemplo, isto permite que adicione uma página inteira à lista branca com um só clique, sem ter que adicionar elementos à mesma, à medida que vão aparecendo.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
Todas as regras têm escopos. Por exemplo, pode bloquear 'facebook.com' e 'facebook.net' em todo o lado, excepto quando visita a página em 'www.facebook.com'. Desta maneira, o Facebook não será capaz de criar um perfil com os seus hábitos de navegação pessoais.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
O objectivo desta extensão é tornar o acto de permitir ou proibir web sites, total ou parcialmente, o mais directo possível, para encorajar os utilizadores a se preocuparem com a sua privacidade.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Esta extensão vem com ficheiros hosts de terceiros, totalizando mais de 58,000 hostnames (as listas podem ser activadas e desactivadas selectivamente, de acordo com a sua escolha).
Ultimately, you can choose however you browse the net:
Fundamentalmente, pode escolher como navegar na internet:
* Blacklist all by default, and whitelist as needed (default mode).
* Adicionar tudo à lista negra, e ir adicionando o que precisa à branca (modo normal).
* Whitelist all by default, and blacklist as needed.
* Adicionar tudo à lista branca, e ir adicionando o que não precisa à negra.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
De qualquer modo, vai sempre beneficiar das listas negras presentes, para que tenha sempre protecção básica contra trackers, sites de malware, etc. Ou pode desactivar todas as listas negras.
Your choice.
A escolha é sua.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
Documentação aleatória: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
Qualquer questão ou problema que possa ter, use o botão "Send Feedback" à direita, para que possa responder rapidamente. Não posso responder directamente a comentários, mas não poderia estar mais contente por lhe responder directamente na secção de feedback.
=====
BUGS, ISSUES, SUGEGSTIONS:
ERROS, PROBLEMAS, SUGESTÕES:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
É muito bem vindo a contribuir com a sua opinião em questões em aberto, e a dar sugestões, argumentos para me ajudar a decidir o que é preciso para melhorar a extensão.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
Facilidade de uso é o objectivo principal. Já vi utilizadores desistir de usar o NoScript do Firefox porque requer configuração excessiva, portanto, em vez de os culpar por hábitos de segurança pobres, prefiro culpar os developers, e este projecto é uma tentativa a adereçar problemas que causam alguns a desistir de segurança básica.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
Esta extensão é também útil para entender o que a página web no seu browser está a fazer, por vezes sem o seu conhecimento. Tem o poder de ver e decidir com quem é que a página web comunica, e restringir essas comunicações a uma classe específica de objectos na mesma página.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
O número que aparece no ícone da extensão corresponde ao número total de pedidos distintos tentados (com sucesso ou não, dependendo das lista branca/negra) pela página web.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Simplesmente clique na célula apropriada na matriz para adicionar um componente à lista branca, negra, ou cinzenta. A lista cinzenta representa os objectos cujo estatuto (permitido ou bloqueado) é herdado de uma célula que precede a presente, na matriz.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Quadrado vermelho = completamente na lista negra, i.e. pedidos são impedidos de chegar ao seu destino:
* Quadrado vermelho escuro: o nome do domínio e/ou tipo de pedido está especificamente na lista negra.
* Quadrado vermelho esbranquiçado: o estatuto de lista negra foi herdado, porque a entrada está na lista cinzenta.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
Quadrado verde = completamente na lista branca, i.e. pedidos são permitidos e chegam ao seu destino:
* Quadrado verde escuro: o nome do domínio e/ou tipo de pedido está especificamente na lista branca.
* Quadrado verde esbranquiçado: o estatuto de lista branca foi herdado, porque a entrada está na lista cinzenta.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
A célula de topo à esquerda na matriz, a célula "all", representa a definição global, que permite escolher se quer permitir ou bloquear tudo, como o comportamento normal. Alguns preferem permitir tudo e bloquear excepcionalmente. A minha preferência pessoal é o oposto -- bloquear tudo e permitir excepcionalmente.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
Esta extensão é também útil caso queira acelerar a velocidade do carregamento das páginas, bloqueando todos os pedidos para imagens, por exemplo.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CÓDIGO FONTE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases
REGISTO DE ALTERAÇÕES: https://github.com/gorhill/uMatrix/releases

@ -1,6 +1,6 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix: интерактивный файрвол на основе таблиц со множеством инструментов, повышающих уровень конфиденциальности. Для продвинутых пользователей.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
µMatrix даст вам полный контроль над тем, где вашему браузеру разрешено соединяться, какие типы данных дозволено загружать и что выполнять. Никто другой не выбирает: выбор только за вами. Вы полностью контролируете свою приватность.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
@ -20,17 +20,17 @@ Regarding the myth that "Chromium-based browsers can't reliably block javascript
* from very specific
* to very generic
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
- тип запросов (верхний ряд)
* куки
* ресурсы CSS (таблицы стилей и веб-шрифты)
* изображения
* плагины
* скрипты
* XHR (запросы от скриптов)
* фреймы
* и другое
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
Вы можете добавлять в белый/чёрный список отдельную ячейку, одну или несколько строк, колонку или всю матрицу за один щелчок мыши.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
@ -48,13 +48,13 @@ Ultimately, you can choose however you browse the net:
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Your choice.
Ваш выбор.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
ОБРАТНАЯ СВЯЗЬ:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
@ -88,6 +88,6 @@ This extension is also useful if you wish to speed up your browsing, by globally
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
ИСХОДНИКИ: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases
ЛОГ ИЗМЕНЕНИЙ: https://github.com/gorhill/uMatrix/releases

@ -1,10 +1,10 @@
µMatrix: Matris tabanlı işaret et ve tıkla güvenlik duvarıdır, birçok gizlilik arttırıcı aracıyla birlikte gelir. İleri düzey kullanıcılar için.
uMatrix: Matris tabanlı işaret et ve tıkla güvenlik duvarıdır, birçok gizlilik arttırıcı aracıyla birlikte gelir.
µMatrix tarayıcınızın nereye bağlanabileceği, ne tür veri indirebileceği ve yürütebileceği konusunda tam denetimi size verir. Kimse sizin yerinize karar vermez: Siz seçersiniz. Gizliliğinizin tam denetimi sizdedir.
*İleri düzey kullanıcılar için.*
µMatrix tümünü engelle/istisnalara izin ver modunda çalışır, bunun anlamı 3. taraf betiklere ihtiyaç duyan web sitelerinin muhtemelen "bozuk" olabileceğidir. µMatrix İki tıklama ile genelde siteleri bozmayacak tümüne izin ver/istisnaları engelle moduna ayarlanabilir. Bu konu hakkında daha ayrıntılı bilgi almak için https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views bağlantısına bakın.
uMatrix tarayıcınızın nereye bağlanabileceği, ne tür veri indirebileceği ve yürütebileceği konusunda tam denetimi size verir. Kimse sizin yerinize karar vermez: Siz seçersiniz. Gizliliğinizin tam denetimi sizdedir.
"Chromium-tabanlı tarayıcılarda güvenilir biçimde JavaScript'ler engellenemez" efsanesiyle ilgili olarak, bakınız: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Sonuç: Evet, JavaScript güvenilir biçimde Chromium'da engellenebilir.
uMatrix tümünü engelle/istisnalara izin ver modunda çalışır, bunun anlamı 3. taraf betiklere ihtiyaç duyan web sitelerinin muhtemelen "bozuk" olabileceğidir. İki tıklama ile uMatrix genelde siteleri bozmayacak tümüne izin ver/istisnaları engelle moduna ayarlanabilir. Bu konu hakkında daha ayrıntılı bilgi almak için https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views bağlantısına bakın.
* Engellendiğine veya izin verildiğine (sizin seçiminiz) bağlı olarak başarısız veya denenmiş TÜM uzak bağlantıları görün.
@ -14,7 +14,7 @@
* Belirli kara listelere bağlı (birçok eksiği bulunan) kalmak zorunda değilsiniz: Tüm denetim sizde.
* Kullanımı kolay: µMatrix işaret et ve tıkla matrisiyle bir web sitesinden kaynaklanan istekleri kolaylıkla beyaz/kara listeye almanızı sağlar:
* Kullanımı kolay: uMatrix işaret et ve tıkla matrisiyle bir web sitesinden kaynaklanan istekleri kolaylıkla beyaz/kara listeye almanızı sağlar:
- alan adları (sol sütun)
* özelden
@ -32,13 +32,13 @@
Tek hücreyi, tüm satırı, satır gruplarını, tüm sütunu veya tüm matrisi bir tek tıklama ile kara/beyaz listeye alabilirsiniz.
µMatrix'in süzgeç motoru hangi hücrelerin kara/beyaz listede bulunduğuna göre öncelik mantığını kullanarak nelerin engelleneceğine veya nelere izin verileceğine karar verir. Örneğin, bu şekilde sayfada beliren yeni veri türlerine sürekli izin vermenize gerek kalmadan tüm sayfayı beyaz listeye almanıza izin verir.
uMatrix'in süzgeç motoru hangi hücrelerin kara/beyaz listede bulunduğuna göre öncelik mantığını kullanarak nelerin engelleneceğine veya nelere izin verileceğine karar verir. Örneğin, bu şekilde sayfada beliren yeni veri türlerine sürekli izin vermenize gerek kalmadan tüm sayfayı beyaz listeye almanıza izin verir.
Tüm kurallar kapsamlıdır. Örneğin, `facebook.com` ve `facebook.net` sitelerini `www.facebook.com`dışındaki sitelerde engelleyebilirsiniz. Bu şekilde Facebook gezinti alışkanlıklarınızla ilgili profil oluşturamayacaktır.
Bu eklentinin en basit olarak amacı web sitelerine izin vererek veya engelleyerek, tümden veya kısmi olarak, kullanıcıların kendi gizliliklerine dikkat etmelerini teşvik etmektir.
Bu eklenti 3. taraf alan dosyalarıyla toplamda 58.000'nin üzerinde farklı alan adıyla birlikte gelir (listeler seçiminize bağlı olarak etkinleştirilebilir veya devre dışı bırakılabilir).
Bu eklenti 3. taraf alan dosyalarıyla toplamda 62.000'nin üzerinde farklı alan adıyla birlikte gelir (listeler seçime bağlı olarak etkinleştirilebilir veya devre dışı bırakılabilir).
Sonuçta, internette nasıl gezmek istediğinizi seçebilirsiniz:
@ -50,24 +50,10 @@ Her halükarda, önceden ayarlanmış kara listelerden faydalanarak izleyiciler,
Sizin seçiminiz.
Rastgele toplanmış belgeler: https://github.com/gorhill/uMatrix/wiki
Rastgele toplanmış belgeler: https://github.com/gorhill/uMatrix/wiki (çalışma gerektiriyor)
=====
GERİ BİLDİRİM:
Herhangi bir sorunuz veya sorununuz varsa çabucak cevap verebilmem için sağdaki "Geri Bildirim Gönder" düğmesini kullanın. Yorumlara doğrudan cevap veremiyorum fakat geri bildirim bölümünden seve seve cevap vereceğim.
=====
HATALAR, SORUNLAR, ÖNERİLER:
https://github.com/gorhill/uMatrix/issues
Eklentiyi geliştirmek için açık sorunlara ve önerilere, karar vermem için çeşitli argümanlar üzerine görüşlerinizi bekliyorum.
Kullanım kolaylığı birincil hedeftir. Firefox'un NoScript eklentisi çok uğraş gerektirdiği için bu eklentiyi kullanmaktan vazgeçen kullanıcılar gördüm. Bu kullanıcıları zayıf güvenlik alışkanlıkları olduğu için suçlamak yerine, bu sorunları çözmedikleri için geliştiricileri suçlamayı yeğelerim. Bu proje bazı kullanıcıların temel güvenliklerinden vazgeçmeleri sorununu deneme düzeyinde çözmeyi amaçlar.
Ayrıca bu eklenti bir web sayfasının bilginiz dışında tarayıcınızda ne yapmaya çalıştığını anlamanıza yardımcı olur. Web sayfasının neyle iletişim kurduğunu görmenizi ve web sayfasında kurulan bu iletişimin belirli öğe sınıflarına kısıtlanması üzerine karar vermenizi sağlar.
Eklenti simgesinde görünen sayı web sitesi tarafından girişimde bulunulmuş farklı istek sayısının toplamıdır (izin verilip verilmediğine göre başarılı veya değil).
@ -88,6 +74,8 @@ Bu eklenti ayrıca gezinti hızınızı da arttırmak istiyorsanız kullanışl
=====
HATALAR, SORUNLAR: https://github.com/gorhill/uMatrix/issues
KAYNAK KODU: https://github.com/gorhill/uMatrix (GPLv3)
DEĞİŞİM GÜNLÜĞÜ: https://github.com/gorhill/uMatrix/releases

@ -1,20 +1,20 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
uMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
*For advanced users.*
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
uMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Regarding the myth that "Chromium-based browsers can't reliably block JavaScript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, JavaScript can be blocked reliably in Chromium.
Out of the box, uMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, uMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efficient blacklisting: cookies won't leave your browser, JavaScript won't execute, plugins won't play, tracking pixels won't download, etc.
* Efficient blacklisting: cookies won't leave your browser, JavaScript won't execute, media won't play, tracking pixels won't download, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
* Ease of use: uMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domain names (left column)
* from very specific
@ -22,23 +22,23 @@ Regarding the myth that "Chromium-based browsers can't reliably block JavaScript
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* css (stylesheets and web fonts)
* images
* plugins
* media
* scripts
* XHR (requests made by scripts)
* xhr (requests made by scripts)
* frames
* others
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
uMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
The extension comes with 3rd-party hosts files totaling over 62,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Ultimately, you can choose however you browse the net:
@ -54,23 +54,9 @@ Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
=====
BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
The number which appears in the extension icon correspond to the total number of distinct requests blocked by the extension.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
@ -88,6 +74,8 @@ This extension is also useful if you wish to speed up your browsing, by globally
=====
BUGS, ISSUES: https://github.com/uBlockOrigin/uMatrix-issues/issues
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,12 +1,12 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix: 一个靠点击工作的矩阵防火墙,拥有许多隐私保护工具。 面向高级用户。
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
µMatrix 让你控制你的浏览器可以连接哪里,可以请求哪些数据,以及控制允许如何执行。 没有人替你做决定:一切由你选择。 你将可以完全控制你的隐私权。
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* 看到所有的远程连接,无论已失败还是已尝试,这都取决于它们被阻止还是被允许(都取决于您的选择)。
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
@ -16,19 +16,19 @@ Regarding the myth that "Chromium-based browsers can't reliably block javascript
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domain names (left column)
* from very specific
* to very generic
- 域名 (左列)
* 从非常具体
* 到非常普通
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
-请求种类(顶栏)
* Cookie
* CSS相关资源(样式表和字体)
* 图片
* 插件
* 脚本
* XHR(由脚本发起的请求)
* 框架
* 其他
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
@ -50,17 +50,17 @@ Either way, you still benefit from the preset blacklists so that at least you ge
Your choice.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
相关文档: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
反馈:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
=====
BUGS, ISSUES, SUGEGSTIONS:
缺陷、问题、建议:
https://github.com/gorhill/uMatrix/issues
@ -82,12 +82,12 @@ Green square = effectively whitelisted, i.e. requests are allowed to reach their
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. 我的个人倾向当然与此相反,拦截一切和放行例外。
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
如果需要,这个扩展也可用来加快您的上网速度,例如全局性阻止所有图片请求。
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
源代码: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases
变更日志: https://github.com/gorhill/uMatrix/releases

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

@ -1,88 +0,0 @@
{
"manifest_version": 2,
"name": "__MSG_extName__",
"short_name": "µMatrix",
"version": "0.8.0.0",
"description": "__MSG_extShortDesc__",
"icons": {
"16": "icon_16.png",
"128": "icon_128.png"
},
"browser_action": {
"default_icon": {
"19": "img/browsericons/icon19.png"
},
"default_title": "__MSG_extName__",
"default_popup": "popup.html"
},
"author": "Raymond Hill",
"background": {
"page": "background.html"
},
"commands": {
"revert-all": {
"description": "__MSG_commandRevertAll__",
"suggested_key": {
"default": "Alt+Q",
"mac": "Command+Shift+Q"
}
},
"whitelist-all": {
"description": "__MSG_commandWhitelistAll__",
"suggested_key": {
"default": "Alt+A",
"mac": "Command+Shift+A"
}
},
"whitelist-page-domain": {
"description": "__MSG_commandWhitelistPageDomain__",
"suggested_key": {
"default": "Alt+W",
"mac": "Command+Shift+W"
}
},
"open-dashboard": {
"description": "__MSG_commandOpenDashboard__",
"suggested_key": {
"default": "Alt+S",
"mac": "Command+Shift+S"
}
}
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["js/contentscript-start.js"],
"run_at": "document_start",
"all_frames": true
},
{
"matches": ["http://*/*", "https://*/*"],
"js": ["js/contentscript-end.js"],
"run_at": "document_end",
"all_frames": true
}
],
"default_locale": "en",
"homepage_url": "https://github.com/gorhill/uMatrix/wiki",
"minimum_chrome_version": "22.0",
"options_page": "dashboard.html",
"permissions": [
"browsingData",
"contentSettings",
"cookies",
"downloads",
"storage",
"tabs",
"unlimitedStorage",
"webNavigation",
"webRequest",
"webRequestBlocking",
"http://*/*",
"https://*/*"
],
"web_accessible_resources": [
"css/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf",
"css/noop.css"
]
}

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 817 B

Before

Width:  |  Height:  |  Size: 830 B

After

Width:  |  Height:  |  Size: 830 B

Before

Width:  |  Height:  |  Size: 840 B

After

Width:  |  Height:  |  Size: 840 B

Before

Width:  |  Height:  |  Size: 814 B

After

Width:  |  Height:  |  Size: 814 B

Before

Width:  |  Height:  |  Size: 829 B

After

Width:  |  Height:  |  Size: 829 B

Before

Width:  |  Height:  |  Size: 825 B

After

Width:  |  Height:  |  Size: 825 B

Before

Width:  |  Height:  |  Size: 808 B

After

Width:  |  Height:  |  Size: 808 B

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 822 B

Before

Width:  |  Height:  |  Size: 808 B

After

Width:  |  Height:  |  Size: 808 B

Before

Width:  |  Height:  |  Size: 792 B

After

Width:  |  Height:  |  Size: 792 B

Before

Width:  |  Height:  |  Size: 761 B

After

Width:  |  Height:  |  Size: 761 B

Before

Width:  |  Height:  |  Size: 750 B

After

Width:  |  Height:  |  Size: 750 B

Before

Width:  |  Height:  |  Size: 836 B

After

Width:  |  Height:  |  Size: 836 B

Before

Width:  |  Height:  |  Size: 836 B

After

Width:  |  Height:  |  Size: 836 B

Before

Width:  |  Height:  |  Size: 827 B

After

Width:  |  Height:  |  Size: 827 B

Before

Width:  |  Height:  |  Size: 837 B

After

Width:  |  Height:  |  Size: 837 B

Before

Width:  |  Height:  |  Size: 833 B

After

Width:  |  Height:  |  Size: 833 B

Before

Width:  |  Height:  |  Size: 823 B

After

Width:  |  Height:  |  Size: 823 B

Before

Width:  |  Height:  |  Size: 818 B

After

Width:  |  Height:  |  Size: 818 B

Before

Width:  |  Height:  |  Size: 830 B

After

Width:  |  Height:  |  Size: 830 B

Before

Width:  |  Height:  |  Size: 777 B

After

Width:  |  Height:  |  Size: 777 B

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

@ -0,0 +1,55 @@
{
"manifest_version": 2,
"name": "nuTensor",
"short_name": "nuTensor",
"version": "1.3.3.8",
"description": "__MSG_extShortDesc__",
"icons": {
"16": "img/icon_16.png",
"128": "img/icon_128.png"
},
"browser_action": {
"default_icon": {
"19": "img/browsericons/icon19-19.png"
},
"default_title": "nuTensor",
"default_popup": "popup.html"
},
"author": "Raymond Hill",
"background": {
"page": "background.html"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["/js/vapi.js", "/js/vapi-client.js", "/js/contentscript-start.js"],
"run_at": "document_start",
"all_frames": true
},
{
"matches": ["http://*/*", "https://*/*"],
"js": ["/js/contentscript.js"],
"run_at": "document_end",
"all_frames": true
}
],
"default_locale": "en",
"homepage_url": "https://github.com/geekprojects/nuTensor",
"minimum_chrome_version": "45.0",
"options_ui": {
"page": "dashboard.html",
"open_in_tab": true
},
"permissions": [
"browsingData",
"cookies",
"privacy",
"storage",
"tabs",
"unlimitedStorage",
"webNavigation",
"webRequest",
"webRequestBlocking",
"<all_urls>"
]
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,308 @@
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
Copyright (C) 2019-present Raymond Hill
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uBlock
*/
// For non-background page
'use strict';
/******************************************************************************/
// Direct messaging connection ability
(( ) => {
// >>>>>>>> start of private namespace
if (
typeof vAPI !== 'object' ||
vAPI.messaging instanceof Object === false ||
vAPI.MessagingConnection instanceof Function
) {
return;
}
const listeners = new Set();
const connections = new Map();
vAPI.MessagingConnection = class {
constructor(handler, details) {
this.messaging = vAPI.messaging;
this.handler = handler;
this.id = details.id;
this.to = details.to;
this.toToken = details.toToken;
this.from = details.from;
this.fromToken = details.fromToken;
this.checkTimer = undefined;
// On Firefox it appears ports are not automatically disconnected
// when navigating to another page.
const ctor = vAPI.MessagingConnection;
if ( ctor.pagehide !== undefined ) { return; }
ctor.pagehide = ( ) => {
for ( const connection of connections.values() ) {
connection.disconnect();
connection.handler(
connection.toDetails('connectionBroken')
);
}
};
window.addEventListener('pagehide', ctor.pagehide);
}
toDetails(what, payload) {
return {
what: what,
id: this.id,
from: this.from,
fromToken: this.fromToken,
to: this.to,
toToken: this.toToken,
payload: payload
};
}
disconnect() {
if ( this.checkTimer !== undefined ) {
clearTimeout(this.checkTimer);
this.checkTimer = undefined;
}
connections.delete(this.id);
const port = this.messaging.getPort();
if ( port === null ) { return; }
port.postMessage({
channel: 'vapi',
msg: this.toDetails('connectionBroken'),
});
}
checkAsync() {
if ( this.checkTimer !== undefined ) {
clearTimeout(this.checkTimer);
}
this.checkTimer = vAPI.setTimeout(
( ) => { this.check(); },
499
);
}
check() {
this.checkTimer = undefined;
if ( connections.has(this.id) === false ) { return; }
const port = this.messaging.getPort();
if ( port === null ) { return; }
port.postMessage({
channel: 'vapi',
msg: this.toDetails('connectionCheck'),
});
this.checkAsync();
}
receive(details) {
switch ( details.what ) {
case 'connectionAccepted':
this.toToken = details.toToken;
this.handler(details);
this.checkAsync();
break;
case 'connectionBroken':
connections.delete(this.id);
this.handler(details);
break;
case 'connectionMessage':
this.handler(details);
this.checkAsync();
break;
case 'connectionCheck':
const port = this.messaging.getPort();
if ( port === null ) { return; }
if ( connections.has(this.id) ) {
this.checkAsync();
} else {
details.what = 'connectionBroken';
port.postMessage({ channel: 'vapi', msg: details });
}
break;
case 'connectionRefused':
connections.delete(this.id);
this.handler(details);
break;
}
}
send(payload) {
const port = this.messaging.getPort();
if ( port === null ) { return; }
port.postMessage({
channel: 'vapi',
msg: this.toDetails('connectionMessage', payload),
});
}
static addListener(listener) {
listeners.add(listener);
}
static async connectTo(from, to, handler) {
const port = vAPI.messaging.getPort();
if ( port === null ) { return; }
const connection = new vAPI.MessagingConnection(handler, {
id: `${from}-${to}-${vAPI.sessionId}`,
to: to,
from: from,
fromToken: port.name
});
connections.set(connection.id, connection);
port.postMessage({
channel: 'vapi',
msg: {
what: 'connectionRequested',
id: connection.id,
from: from,
fromToken: port.name,
to: to,
}
});
return connection.id;
}
static disconnectFrom(connectionId) {
const connection = connections.get(connectionId);
if ( connection === undefined ) { return; }
connection.disconnect();
}
static sendTo(connectionId, payload) {
const connection = connections.get(connectionId);
if ( connection === undefined ) { return; }
connection.send(payload);
}
static canDestroyPort() {
return listeners.length === 0 && connections.size === 0;
}
static mustDestroyPort() {
if ( connections.size === 0 ) { return; }
for ( const connection of connections.values() ) {
connection.receive({ what: 'connectionBroken' });
}
connections.clear();
}
static canProcessMessage(details) {
if ( details.channel !== 'vapi' ) { return; }
switch ( details.msg.what ) {
case 'connectionAccepted':
case 'connectionBroken':
case 'connectionCheck':
case 'connectionMessage':
case 'connectionRefused': {
const connection = connections.get(details.msg.id);
if ( connection === undefined ) { break; }
connection.receive(details.msg);
return true;
}
case 'connectionRequested':
if ( listeners.length === 0 ) { return; }
const port = vAPI.messaging.getPort();
if ( port === null ) { break; }
let listener, result;
for ( listener of listeners ) {
result = listener(details.msg);
if ( result !== undefined ) { break; }
}
if ( result === undefined ) { break; }
if ( result === true ) {
details.msg.what = 'connectionAccepted';
details.msg.toToken = port.name;
const connection = new vAPI.MessagingConnection(
listener,
details.msg
);
connections.set(connection.id, connection);
} else {
details.msg.what = 'connectionRefused';
}
port.postMessage(details);
return true;
default:
break;
}
}
};
vAPI.messaging.extensions.push(vAPI.MessagingConnection);
// <<<<<<<< end of private namespace
})();
/******************************************************************************/
// Broadcast listening ability
(( ) => {
// >>>>>>>> start of private namespace
if (
typeof vAPI !== 'object' ||
vAPI.messaging instanceof Object === false ||
vAPI.broadcastListener instanceof Object
) {
return;
}
const listeners = new Set();
vAPI.broadcastListener = {
add: function(listener) {
listeners.add(listener);
vAPI.messaging.getPort();
},
remove: function(listener) {
listeners.delete(listener);
},
canDestroyPort() {
return listeners.size === 0;
},
mustDestroyPort() {
listeners.clear();
},
canProcessMessage(details) {
if ( details.broadcast === false ) { return; }
for ( const listener of listeners ) {
listener(details.msg);
}
},
};
vAPI.messaging.extensions.push(vAPI.broadcastListener);
// <<<<<<<< end of private namespace
})();
/******************************************************************************/
/*******************************************************************************
DO NOT:
- Remove the following code
- Add code beyond the following code
Reason:
- https://github.com/gorhill/uBlock/pull/3721
- uBO never uses the return value from injected content scripts
**/
void 0;

@ -0,0 +1,268 @@
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
Copyright (C) 2014-2015 The uBlock Origin authors
Copyright (C) 2014-present Raymond Hill
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uBlock
*/
// For non-background page
'use strict';
/******************************************************************************/
// https://github.com/chrisaljoudi/uBlock/issues/456
// Skip if already injected.
// >>>>>>>> start of HUGE-IF-BLOCK
if (
typeof vAPI === 'object' &&
vAPI.randomToken instanceof Function === false
) {
/******************************************************************************/
/******************************************************************************/
vAPI.randomToken = function() {
const now = Date.now();
return String.fromCharCode(now % 26 + 97) +
Math.floor((1 + Math.random()) * now).toString(36);
};
vAPI.sessionId = vAPI.randomToken();
vAPI.setTimeout = vAPI.setTimeout || self.setTimeout.bind(self);
/******************************************************************************/
vAPI.shutdown = {
jobs: [],
add: function(job) {
this.jobs.push(job);
},
exec: function() {
// Shutdown asynchronously, to ensure shutdown jobs are called from
// the top context.
self.requestIdleCallback(( ) => {
const jobs = this.jobs.slice();
this.jobs.length = 0;
while ( jobs.length !== 0 ) {
(jobs.pop())();
}
});
},
remove: function(job) {
let pos;
while ( (pos = this.jobs.indexOf(job)) !== -1 ) {
this.jobs.splice(pos, 1);
}
}
};
/******************************************************************************/
vAPI.messaging = {
port: null,
portTimer: null,
portTimerDelay: 10000,
extended: undefined,
extensions: [],
msgIdGenerator: 1,
pending: new Map(),
shuttingDown: false,
shutdown: function() {
this.shuttingDown = true;
this.destroyPort();
},
// https://github.com/uBlockOrigin/uBlock-issues/issues/403
// Spurious disconnection can happen, so do not consider such events
// as world-ending, i.e. stay around. Except for embedded frames.
disconnectListener: function() {
this.port = null;
if ( window !== window.top ) {
vAPI.shutdown.exec();
}
},
disconnectListenerBound: null,
messageListener: function(details) {
if ( details instanceof Object === false ) { return; }
// Response to specific message previously sent
if ( details.msgId !== undefined ) {
const resolver = this.pending.get(details.msgId);
if ( resolver !== undefined ) {
this.pending.delete(details.msgId);
resolver(details.msg);
return;
}
}
// Unhandled messages
this.extensions.every(ext => ext.canProcessMessage(details) !== true);
},
messageListenerBound: null,
canDestroyPort: function() {
return this.pending.size === 0 &&
(
this.extensions.length === 0 ||
this.extensions.every(e => e.canDestroyPort())
);
},
mustDestroyPort: function() {
if ( this.extensions.length === 0 ) { return; }
this.extensions.forEach(e => e.mustDestroyPort());
this.extensions.length = 0;
},
portPoller: function() {
this.portTimer = null;
if ( this.port !== null && this.canDestroyPort() ) {
return this.destroyPort();
}
this.portTimer = vAPI.setTimeout(this.portPollerBound, this.portTimerDelay);
this.portTimerDelay = Math.min(this.portTimerDelay * 2, 60 * 60 * 1000);
},
portPollerBound: null,
destroyPort: function() {
if ( this.portTimer !== null ) {
clearTimeout(this.portTimer);
this.portTimer = null;
}
const port = this.port;
if ( port !== null ) {
port.disconnect();
port.onMessage.removeListener(this.messageListenerBound);
port.onDisconnect.removeListener(this.disconnectListenerBound);
this.port = null;
}
this.mustDestroyPort();
// service pending callbacks
if ( this.pending.size !== 0 ) {
const pending = this.pending;
this.pending = new Map();
for ( const resolver of pending.values() ) {
resolver();
}
}
},
createPort: function() {
if ( this.shuttingDown ) { return null; }
if ( this.messageListenerBound === null ) {
this.messageListenerBound = this.messageListener.bind(this);
this.disconnectListenerBound = this.disconnectListener.bind(this);
this.portPollerBound = this.portPoller.bind(this);
}
try {
this.port = browser.runtime.connect({name: vAPI.sessionId}) || null;
} catch (ex) {
this.port = null;
}
// Not having a valid port at this point means the main process is
// not available: no point keeping the content scripts alive.
if ( this.port === null ) {
vAPI.shutdown.exec();
return null;
}
this.port.onMessage.addListener(this.messageListenerBound);
this.port.onDisconnect.addListener(this.disconnectListenerBound);
this.portTimerDelay = 10000;
if ( this.portTimer === null ) {
this.portTimer = vAPI.setTimeout(
this.portPollerBound,
this.portTimerDelay
);
}
return this.port;
},
getPort: function() {
return this.port !== null ? this.port : this.createPort();
},
send: function(channel, msg) {
// Too large a gap between the last request and the last response means
// the main process is no longer reachable: memory leaks and bad
// performance become a risk -- especially for long-lived, dynamic
// pages. Guard against this.
if ( this.pending.size > 50 ) {
vAPI.shutdown.exec();
}
const port = this.getPort();
if ( port === null ) {
return Promise.resolve();
}
const msgId = this.msgIdGenerator++;
const promise = new Promise(resolve => {
this.pending.set(msgId, resolve);
});
port.postMessage({ channel, msgId, msg });
return promise;
},
// Dynamically extend capabilities.
extend: function() {
if ( this.extended === undefined ) {
this.extended = vAPI.messaging.send('vapi', {
what: 'extendClient'
}).then(( ) => {
return self.vAPI instanceof Object &&
this.extensions.length !== 0;
}).catch(( ) => {
});
}
return this.extended;
},
};
vAPI.shutdown.add(( ) => {
vAPI.messaging.shutdown();
window.vAPI = undefined;
});
/******************************************************************************/
/******************************************************************************/
}
// <<<<<<<< end of HUGE-IF-BLOCK
/*******************************************************************************
DO NOT:
- Remove the following code
- Add code beyond the following code
Reason:
- https://github.com/gorhill/uBlock/pull/3721
- uBO never uses the return value from injected content scripts
**/
void 0;

@ -0,0 +1,279 @@
/*******************************************************************************
uMatrix - a browser extension to black/white list requests.
Copyright (C) 2014-present The uMatrix/uBlock Origin authors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uMatrix
*/
// For background page or non-background pages
'use strict';
/******************************************************************************/
/******************************************************************************/
vAPI.T0 = Date.now();
/******************************************************************************/
vAPI.setTimeout = vAPI.setTimeout || self.setTimeout.bind(self);
/******************************************************************************/
vAPI.webextFlavor = {
major: 0,
soup: new Set()
};
(( ) => {
const ua = navigator.userAgent;
const flavor = vAPI.webextFlavor;
const soup = flavor.soup;
const dispatch = function() {
window.dispatchEvent(new CustomEvent('webextFlavor'));
};
// This is always true.
soup.add('ublock').add('webext');
// Whether this is a dev build.
if ( /^\d+\.\d+\.\d+\D/.test(browser.runtime.getManifest().version) ) {
soup.add('devbuild');
}
if ( /\bMobile\b/.test(ua) ) {
soup.add('mobile');
}
// Asynchronous
if (
browser instanceof Object &&
typeof browser.runtime.getBrowserInfo === 'function'
) {
browser.runtime.getBrowserInfo().then(info => {
flavor.major = parseInt(info.version, 10) || 60;
soup.add(info.vendor.toLowerCase())
.add(info.name.toLowerCase());
if ( soup.has('firefox') && flavor.major < 57 ) {
soup.delete('html_filtering');
}
dispatch();
});
if ( browser.runtime.getURL('').startsWith('moz-extension://') ) {
soup.add('mozilla')
.add('firefox')
.add('user_stylesheet')
.add('html_filtering');
flavor.major = 60;
}
return;
}
// Synchronous -- order of tests is important
let match;
if ( (match = /\bEdge\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('microsoft').add('edge');
} else if ( (match = /\bOPR\/(\d+)/.exec(ua)) !== null ) {
const reEx = /\bChrom(?:e|ium)\/([\d.]+)/;
if ( reEx.test(ua) ) { match = reEx.exec(ua); }
flavor.major = parseInt(match[1], 10) || 0;
soup.add('opera').add('chromium');
} else if ( (match = /\bChromium\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('chromium');
} else if ( (match = /\bChrome\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('google').add('chromium');
} else if ( (match = /\bSafari\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('apple').add('safari');
}
// https://github.com/gorhill/uBlock/issues/3588
if ( soup.has('chromium') && flavor.major >= 66 ) {
soup.add('user_stylesheet');
}
// Don't starve potential listeners
vAPI.setTimeout(dispatch, 97);
})();
/******************************************************************************/
{
const punycode = self.punycode;
const reCommonHostnameFromURL = /^https?:\/\/([0-9a-z_][0-9a-z._-]*[0-9a-z])\//;
const reAuthorityFromURI = /^(?:[^:\/?#]+:)?(\/\/[^\/?#]+)/;
const reHostFromNakedAuthority = /^[0-9a-z._-]+[0-9a-z]$/i;
const reHostFromAuthority = /^(?:[^@]*@)?([^:]+)(?::\d*)?$/;
const reIPv6FromAuthority = /^(?:[^@]*@)?(\[[0-9a-f:]+\])(?::\d*)?$/i;
const reMustNormalizeHostname = /[^0-9a-z._-]/;
vAPI.hostnameFromURI = function(uri) {
let matches = reCommonHostnameFromURL.exec(uri);
if ( matches !== null ) { return matches[1]; }
matches = reAuthorityFromURI.exec(uri);
if ( matches === null ) { return ''; }
const authority = matches[1].slice(2);
if ( reHostFromNakedAuthority.test(authority) ) {
return authority.toLowerCase();
}
matches = reHostFromAuthority.exec(authority);
if ( matches === null ) {
matches = reIPv6FromAuthority.exec(authority);
if ( matches === null ) { return ''; }
}
let hostname = matches[1];
while ( hostname.endsWith('.') ) {
hostname = hostname.slice(0, -1);
}
if ( reMustNormalizeHostname.test(hostname) ) {
hostname = punycode.toASCII(hostname.toLowerCase());
}
return hostname;
};
const reHostnameFromNetworkURL =
/^(?:http|ws|ftp)s?:\/\/([0-9a-z_][0-9a-z._-]*[0-9a-z])\//;
vAPI.hostnameFromNetworkURL = function(url) {
const matches = reHostnameFromNetworkURL.exec(url);
return matches !== null ? matches[1] : '';
};
const psl = self.publicSuffixList;
const reIPAddressNaive = /^\d+\.\d+\.\d+\.\d+$|^\[[\da-zA-Z:]+\]$/;
vAPI.domainFromHostname = function(hostname) {
return reIPAddressNaive.test(hostname)
? hostname
: psl.getDomain(hostname);
};
vAPI.domainFromURI = function(uri) {
return uri !== ''
? vAPI.domainFromHostname(vAPI.hostnameFromURI(uri))
: '';
};
}
/******************************************************************************/
vAPI.download = function(details) {
if ( !details.url ) { return; }
const a = document.createElement('a');
a.href = details.url;
a.setAttribute('download', details.filename || '');
a.setAttribute('type', 'text/plain');
a.dispatchEvent(new MouseEvent('click'));
};
/******************************************************************************/
vAPI.getURL = browser.runtime.getURL;
/******************************************************************************/
vAPI.i18n = browser.i18n.getMessage;
// http://www.w3.org/International/questions/qa-scripts#directions
document.body.setAttribute(
'dir',
['ar', 'he', 'fa', 'ps', 'ur'].indexOf(vAPI.i18n('@@ui_locale')) !== -1
? 'rtl'
: 'ltr'
);
/******************************************************************************/
// https://github.com/gorhill/uBlock/issues/3057
// - webNavigation.onCreatedNavigationTarget become broken on Firefox when we
// try to make the popup panel close itself using the original
// `window.open('', '_self').close()`.
vAPI.closePopup = function() {
if ( vAPI.webextFlavor.soup.has('firefox') ) {
window.close();
return;
}
// TODO: try to figure why this was used instead of a plain window.close().
// https://github.com/gorhill/uBlock/commit/b301ac031e0c2e9a99cb6f8953319d44e22f33d2#diff-bc664f26b9c453e0d43a9379e8135c6a
window.open('', '_self').close();
};
/******************************************************************************/
// A localStorage-like object which should be accessible from the
// background page or auxiliary pages.
// This storage is optional, but it is nice to have, for a more polished user
// experience.
// https://github.com/gorhill/uBlock/issues/2824
// Use a dummy localStorage if for some reasons it's not available.
// https://github.com/gorhill/uMatrix/issues/840
// Always use a wrapper to seamlessly handle exceptions
vAPI.localStorage = {
clear: function() {
try {
window.localStorage.clear();
} catch(ex) {
}
},
getItem: function(key) {
try {
return window.localStorage.getItem(key);
} catch(ex) {
}
return null;
},
removeItem: function(key) {
try {
window.localStorage.removeItem(key);
} catch(ex) {
}
},
setItem: function(key, value) {
try {
window.localStorage.setItem(key, value);
} catch(ex) {
}
}
};
/*******************************************************************************
DO NOT:
- Remove the following code
- Add code beyond the following code
Reason:
- https://github.com/gorhill/uBlock/pull/3721
- uBO never uses the return value from injected content scripts
**/
void 0;

@ -0,0 +1,178 @@
/*******************************************************************************
uMatrix - a browser extension to block requests.
Copyright (C) 2017-present Raymond Hill
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uMatrix
*/
// For background page
'use strict';
/******************************************************************************/
(( ) => {
// https://github.com/uBlockOrigin/uBlock-issues/issues/407
if ( vAPI.webextFlavor.soup.has('chromium') === false ) { return; }
const extToTypeMap = new Map([
['eot','font'],['otf','font'],['svg','font'],['ttf','font'],['woff','font'],['woff2','font'],
['mp3','media'],['mp4','media'],['webm','media'],
['gif','image'],['ico','image'],['jpeg','image'],['jpg','image'],['png','image'],['webp','image']
]);
const headerValue = (headers, name) => {
let i = headers.length;
while ( i-- ) {
if ( headers[i].name.toLowerCase() === name ) {
return headers[i].value.trim();
}
}
return '';
};
const parsedURL = new URL('https://www.example.org/');
// Extend base class to normalize as per platform.
vAPI.Net = class extends vAPI.Net {
constructor() {
super();
this.suspendedTabIds = new Set();
}
normalizeDetails(details) {
// Chromium 63+ supports the `initiator` property, which contains
// the URL of the origin from which the network request was made.
if (
typeof details.initiator === 'string' &&
details.initiator !== 'null'
) {
details.documentUrl = details.initiator;
}
let type = details.type;
if ( type === 'imageset' ) {
details.type = 'image';
return;
}
// The rest of the function code is to normalize type
if ( type !== 'other' ) { return; }
// Try to map known "extension" part of URL to request type.
parsedURL.href = details.url;
const path = parsedURL.pathname,
pos = path.indexOf('.', path.length - 6);
if ( pos !== -1 && (type = extToTypeMap.get(path.slice(pos + 1))) ) {
details.type = type;
return;
}
// Try to extract type from response headers if present.
if ( details.responseHeaders ) {
type = headerValue(details.responseHeaders, 'content-type');
if ( type.startsWith('font/') ) {
details.type = 'font';
return;
}
if ( type.startsWith('image/') ) {
details.type = 'image';
return;
}
if ( type.startsWith('audio/') || type.startsWith('video/') ) {
details.type = 'media';
return;
}
}
}
// https://www.reddit.com/r/uBlockOrigin/comments/9vcrk3/
// Some types can be mapped from 'other', thus include 'other' if and
// only if the caller is interested in at least one of those types.
denormalizeTypes(types) {
if ( types.length === 0 ) {
return Array.from(this.validTypes);
}
const out = new Set();
for ( const type of types ) {
if ( this.validTypes.has(type) ) {
out.add(type);
}
}
if ( out.has('other') === false ) {
for ( const type of extToTypeMap.values() ) {
if ( out.has(type) ) {
out.add('other');
break;
}
}
}
return Array.from(out);
}
suspendOneRequest(details) {
this.suspendedTabIds.add(details.tabId);
return { cancel: true };
}
unsuspendAllRequests() {
for ( const tabId of this.suspendedTabIds ) {
vAPI.tabs.reload(tabId);
}
this.suspendedTabIds.clear();
}
};
})();
/******************************************************************************/
// https://github.com/uBlockOrigin/uBlock-issues/issues/548
// Use `X-DNS-Prefetch-Control` to workaround Chromium's disregard of the
// setting "Predict network actions to improve page load performance".
vAPI.prefetching = (( ) => {
// https://github.com/uBlockOrigin/uBlock-issues/issues/407
if ( vAPI.webextFlavor.soup.has('chromium') === false ) { return; }
let listening = false;
const onHeadersReceived = function(details) {
details.responseHeaders.push({
name: 'X-DNS-Prefetch-Control',
value: 'off'
});
return { responseHeaders: details.responseHeaders };
};
return state => {
const wr = chrome.webRequest;
if ( state && listening ) {
wr.onHeadersReceived.removeListener(onHeadersReceived);
listening = false;
} else if ( !state && !listening ) {
wr.onHeadersReceived.addListener(
onHeadersReceived,
{
urls: [ 'http://*/*', 'https://*/*' ],
types: [ 'main_frame', 'sub_frame' ]
},
[ 'blocking', 'responseHeaders' ]
);
listening = true;
}
};
})();
/******************************************************************************/

@ -0,0 +1,86 @@
/*******************************************************************************
uMatrix - a browser extension to block requests.
Copyright (C) 2017-present Raymond Hill
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uBlock
*/
'use strict';
/* global HTMLDocument, XMLDocument */
// For background page, auxiliary pages, and content scripts.
/******************************************************************************/
if ( self.browser instanceof Object ) {
self.chrome = self.browser;
} else {
self.browser = self.chrome;
}
/******************************************************************************/
// https://bugzilla.mozilla.org/show_bug.cgi?id=1408996#c9
var vAPI = self.vAPI; // jshint ignore:line
// https://github.com/chrisaljoudi/uBlock/issues/464
// https://github.com/chrisaljoudi/uBlock/issues/1528
// A XMLDocument can be a valid HTML document.
// https://github.com/gorhill/uBlock/issues/1124
// Looks like `contentType` is on track to be standardized:
// https://dom.spec.whatwg.org/#concept-document-content-type
// https://forums.lanik.us/viewtopic.php?f=64&t=31522
// Skip text/plain documents.
if (
(
document instanceof HTMLDocument ||
document instanceof XMLDocument &&
document.createElement('div') instanceof HTMLDivElement
) &&
(
/^image\/|^text\/plain/.test(document.contentType || '') === false
) &&
(
self.vAPI instanceof Object === false || vAPI.nuTensor !== true
)
) {
vAPI = self.vAPI = { nuTensor: true };
}
/*******************************************************************************
DO NOT:
- Remove the following code
- Add code beyond the following code
Reason:
- https://github.com/gorhill/uBlock/pull/3721
- uMatrix never uses the return value from injected content scripts
**/
void 0;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save