1
0
Fork 0
mirror of https://github.com/gorhill/uMatrix.git synced 2024-06-27 18:40:41 +12:00
Commit graph

644 commits

Author SHA1 Message Date
gorhill 2bbf72d9ab forgot to import zh-TW from https://crowdin.com/project/umatrix 2016-03-02 11:27:25 -05:00
gorhill c0821da875 brought up to date with uBO's version 2016-02-29 09:31:22 -05:00
gorhill 65924d1be8 this fixes #489 2016-02-28 16:15:23 -05:00
gorhill 17cc720dc1 this addresses #506 2016-02-27 21:46:43 -05:00
gorhill 44c1ddd00a translation work from https://crowdin.com/project/umatrix 2016-02-27 21:05:10 -05:00
gorhill e9e1f7e631 this fixes #489 2016-02-27 21:02:08 -05:00
gorhill 4f63e079bc reverting fix to #441: undesirable side effects on Firefox 2016-02-27 17:50:30 -05:00
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.
2016-02-14 15:05:48 +01:00
gorhill fbe58341e4 translation work from https://crowdin.com/project/umatrix 2016-02-02 09:40:34 -05:00
gorhill 87e85fa0da code review: this fix broken pruning code for domainCache 2016-01-25 10:20:50 -05:00
gorhill 8200c07a7f Merge tag '0.9.3.2' 2016-01-16 12:41:42 -05:00
gorhill 1d08de94fd translation work from https://crowdin.com/project/umatrix 2016-01-16 10:00:46 -05:00
gorhill fc1662e742 Issue #441: code review
(fixed issue number in commit comment)
2015-12-19 15:52:29 -05:00
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.
2015-12-18 17:56:03 -04:00
Rick van Hattem 9b1dda2c45 fixed chrome os x issue with too small popup size (fixes #423) 2015-12-01 15:03:59 +01:00
gorhill f4dd0254aa translation work from https://crowdin.com/project/umatrix 2015-11-15 17:35:51 -05:00
gorhill 6eaa85eee1 this should fix #357, #395 2015-11-15 17:33:05 -05:00
gorhill 8c6b94e213 this addresses #358 for the time being 2015-11-01 09:09:06 -05:00
gorhill 158eb0f45e translation work from https://crowdin.com/project/umatrix 2015-10-31 18:31:55 -04:00
gorhill 3eedfd6fbb translation work from https://crowdin.com/project/umatrix 2015-10-08 11:40:01 -04:00
gorhill 6fdbf9dd94 this addresses #122 2015-09-26 11:51:06 -04:00
gorhill 7d4e569bd6 see if this helps #362 2015-09-26 11:11:08 -04:00
gorhill 3c1419ad3b this addresses https://github.com/gorhill/uBlock/issues/724 2015-09-26 11:10:10 -04:00
gorhill 16f986860e translation work from https://crowdin.com/project/umatrix 2015-09-16 19:16:48 -04:00
gorhill c03d38a5c6 this fixes #349 2015-09-09 00:31:28 -04:00
gorhill e18782672d this fixes #345 2015-09-08 10:49:41 -04:00
gorhill e25d748aa4 translation work from https://crowdin.com/project/umatrix 2015-09-05 12:36:59 -04:00
gorhill f3876463d3 imported cloud storage support from uBlock: user rules supported for now 2015-09-05 12:29:28 -04:00
gorhill 9e4e4943f3 this fixes many strictness warning in browser console 2015-08-27 14:29:35 -04:00
gorhill 7bc684f2b8 translation work from https://crowdin.com/project/umatrix 2015-08-27 13:23:02 -04:00
gorhill 2224ece1a5 this fixes #320 2015-08-13 11:15:28 -04:00
David Manouchehri 471c314bed Added warning about User Agent leaking. 2015-08-03 17:13:11 -04:00
gorhill cfbce5297a translation work from https://crowdin.com/project/umatrix 2015-07-30 09:37:16 -04:00
gorhill 98c51dbff4 #301: resize only if necessary 2015-07-28 15:00:31 -04:00
gorhill a914c01ea9 popup resize: code review 2015-07-24 08:22:54 -04:00
gorhill 479b454307 Hopefully this fixes #301 2015-07-23 16:24:07 -04:00
gorhill 77b0dd8233 translation work from https://crowdin.com/project/umatrix 2015-07-21 21:17:36 -04:00
gorhill 6c24fe8e2a this fixes scope button height in matrix popup + matrix popup from logger 2015-07-21 21:14:55 -04:00
gorhill c8765697e1 bring in uBlock's changes to uDom 2015-07-21 08:29:15 -04:00
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
2015-07-08 16:24:06 +01:00
gorhill 3591ca42f6 translation work from https://crowdin.com/project/umatrix 2015-07-05 08:55:34 -04:00
gorhill 3d3673f163 this fixes #283 2015-07-05 08:21:10 -04:00
gorhill 07ba0a0a4b this fixes #270 2015-06-18 08:27:44 -04:00
gorhill a7329ef71d support importing uBlock ruleset syntax 2015-06-05 09:19:15 -04:00
gorhill a1f8e9599e translation work from https://crowdin.com/project/umatrix 2015-06-04 10:29:24 -04:00
gorhill fd4a7579f1 re-worked popup UI to access dashboard from title bar (like uBlock) 2015-06-04 08:26:28 -04:00
gorhill ef68842b80 this fixes #232 + AMO feedback re. using innerHTML 2015-05-31 18:11:00 -04:00
gorhill 5997dec5d1 this brings logger's filter exp. parser improvements from uBlock 2015-05-30 17:44:21 -04:00
gorhill a2e5fd671e support external stock hosts files 2015-05-30 17:33:35 -04:00
gorhill 32333a440a translation work from https://crowdin.com/project/umatrix 2015-05-30 07:55:15 -04:00
gorhill b20d44e36c this should fix #225 2015-05-27 07:51:48 -04:00
gorhill f81933fb59 this fixes 23aa1e79cb (commitcomment-11318549) 2015-05-21 20:11:54 -04:00
gorhill 0d6c28642c translation work from https://crowdin.com/project/umatrix 2015-05-19 07:19:37 -04:00
gorhill 23aa1e79cb remove overhead of tab selector update when no change 2015-05-18 07:32:25 -04:00
gorhill 8063ea1e67 translation work from https://crowdin.com/project/umatrix 2015-05-17 23:49:28 -04:00
gorhill e927581336 translation work from https://crowdin.com/project/umatrix 2015-05-17 15:17:02 -04:00
gorhill 33708938da this fixes #212 2015-05-17 15:11:57 -04:00
gorhill 855833c978 code review 2015-05-17 15:00:37 -04:00
gorhill 779c9a6c36 this fixes #211 2015-05-17 14:56:53 -04:00
gorhill cbc0337110 code review re. new tab selector 2015-05-16 13:17:46 -04:00
gorhill d7b6be4567 logger: filter entries by tab 2015-05-15 23:05:37 -04:00
gorhill 262661347b translation work from https://crowdin.com/project/umatrix 2015-05-14 21:10:02 -04:00
gorhill 05d8c51580 this fixes #205 2015-05-14 21:04:49 -04:00
gorhill 0d92dd7e5b default to block if no rule at all 2015-05-14 13:28:58 -04:00
gorhill d03434cc43 more bools 2015-05-13 19:14:00 -04:00
gorhill 6369d37567 must return bool, not undefined 2015-05-13 19:11:44 -04:00
gorhill 446b5a0a81 minor css 2015-05-13 18:14:08 -04:00
gorhill 02760abbf0 translation work from Crowdin 2015-05-13 18:13:49 -04:00
gorhill 20bd54c56b allow some local settings to be modified by users 2015-05-13 15:32:45 -04:00
gorhill f3c5815848 interim version number for dev build 2015-05-13 14:53:29 -04:00
gorhill aea695bf8b code review 2015-05-13 14:32:16 -04:00
gorhill 568ad296a3 this should fix #194 2015-05-12 19:50:48 -04:00
gorhill ae701d9aff this fixes #191: loggin every ua-str rotation is overkill 2015-05-12 19:47:33 -04:00
gorhill 6f4257bb2a this fixes #189 2015-05-12 18:29:51 -04:00
gorhill 73ed896a85 this fixes browser history quirk on Chromium 2015-05-12 08:22:05 -04:00
gorhill 535a46db37 this fixes warning/error entries in browser console 2015-05-12 08:04:13 -04:00
gorhill 2f075c71e2 translation work from https://crowdin.com/project/umatrix 2015-05-12 06:38:04 -04:00
gorhill 438a7dca0a minor code review 2015-05-12 06:36:30 -04:00
gorhill 83cc6053eb more minor details fixed 2015-05-11 16:48:29 -04:00
gorhill 4ba4d55e6b fixing small details 2015-05-11 15:44:11 -04:00
gorhill 4d4837924c translation work from https://crowdin.com/project/umatrix 2015-05-11 15:32:32 -04:00
gorhill b65fd71012 minor css edit 2015-05-11 14:53:59 -04:00
gorhill 9d245c0510 logger: "bts" keyword to filter behind-the-scene events 2015-05-11 13:16:50 -04:00
gorhill 7dcfdf9e08 improved cookie emphasis in logger 2015-05-11 12:49:03 -04:00
gorhill c8f162d0bb punycode scope selector 2015-05-11 11:53:02 -04:00
gorhill 8aaadb8fc0 toward a release: general code review, polishing, removing obsolete stuff 2015-05-11 10:55:06 -04:00
gorhill 257334b4c2 importing rp rules 2015-05-10 18:22:52 -04:00
gorhill 3d3160efdf minor code review 2015-05-10 17:59:58 -04:00
gorhill 9afbbae8cf minor css tweaks 2015-05-10 15:28:05 -04:00
gorhill 9a40eb17a0 fixed i18n mistake 2015-05-09 20:16:57 -04:00
gorhill 3384a7614a do not count own inline script 2015-05-09 19:34:45 -04:00
gorhill 6bc728f8b8 refactoring of inline script blocking + improving AMO validation 2015-05-09 19:18:16 -04:00
gorhill 57de4fdf14 code review 2015-05-09 17:14:22 -04:00
gorhill 1cc471bd39 reset minimized state 2015-05-09 12:48:57 -04:00
gorhill 5155b87ca9 translation work from https://crowdin.com/project/umatrix 2015-05-09 12:35:41 -04:00
gorhill 486183cbe6 this fixes popup matrix position/resize issues 2015-05-09 12:07:20 -04:00
gorhill 04f160efba this addresses #171 2015-05-09 07:44:56 -04:00
gorhill 186c649984 thsi fixes #170 2015-05-08 09:02:12 -04:00
gorhill 654821f101 translation work from https://crowdin.com/project/umatrix 2015-05-08 07:48:57 -04:00
gorhill 52540c1a9a various fixes 2015-05-08 07:43:23 -04:00
gorhill 05089dc370 preparing for i18n + better defaults 2015-05-07 18:38:29 -04:00
gorhill a313e4653d use textContent, not innerText 2015-05-07 11:53:07 -04:00
gorhill 8f2b473928 filtering in logger + various small fixes 2015-05-07 11:39:21 -04:00
gorhill 4142551c13 fixed controls broken by incremental rendering 2015-05-07 00:39:17 -04:00
gorhill f8c38177e2 this fixes sticky dirty state 2015-05-06 19:13:38 -04:00
gorhill 0211bcec64 regression: fixed broken polling 2015-05-06 18:59:07 -04:00
gorhill e025afe8ea allow cleaning up voided rows 2015-05-06 18:31:13 -04:00
gorhill 7c8a8cdf64 better incremental rendering of the matrix 2015-05-06 16:32:41 -04:00
gorhill af57d6d9e7 one pulling if needed is better than always pushing to many + polishing logger 2015-05-06 13:01:02 -04:00
gorhill 1d8243583c more work on matrix popup integration within logger 2015-05-06 10:04:49 -04:00
gorhill 1901b9c6e8 allow access to toolbar controls 2015-05-06 00:41:25 -04:00
gorhill 6f786635f4 extremely early draft of matrix integration within the logger 2015-05-06 00:30:45 -04:00
gorhill b518ab5573 minor fixes 2015-05-04 20:58:30 -04:00
gorhill 89a2610ab1 various fixes 2015-05-04 20:26:45 -04:00
gorhill 13c03d802d oops 2015-05-04 19:07:12 -04:00
gorhill 4a86eb0525 https://xkcd.com/1296/ 2015-05-04 18:00:01 -04:00
gorhill c18db8cc7f a few css fixes 2015-05-04 17:49:15 -04:00
gorhill a49340b57a firefox: cookie and browser cache management 2015-05-04 15:14:51 -04:00
gorhill 4ad7c65362 various fixes 2015-05-04 10:50:44 -04:00
gorhill 33b5ac1a57 minor css changes 2015-05-04 01:19:05 -04:00
gorhill 5b513a005f committing missing files 2015-05-04 01:01:07 -04:00
gorhill b4254db51c refactoring: many changes throughout -- not close to be done 2015-05-03 20:55:27 -04:00
gorhill b7e5a7bd44 fixed content script's clean shutdown 2015-05-03 09:06:35 -04:00
gorhill 818a3db9e4 code review: easier to maintain 2015-05-03 08:18:06 -04:00
gorhill fb639870df code review 2015-05-03 07:58:10 -04:00
gorhill d32137ced0 code review 2015-05-03 07:33:24 -04:00
gorhill 622d0a7e9d provide iframe URL in placeholders 2015-05-03 07:10:05 -04:00
gorhill 3fe5d48c05 this addresses 44f1a61c42 (commitcomment-11015041) 2015-05-03 06:01:24 -04:00
gorhill dac3bab44f 1st step of refactoring request logger 2015-05-02 19:40:49 -04:00
gorhill b4fb58891d oops 2015-05-02 18:47:59 -04:00
gorhill 4e76965155 remove useless code 2015-05-02 18:46:25 -04:00
gorhill be3e86e055 user is responsible to reload + fixed cleanup of stale tabs 2015-05-02 18:33:55 -04:00
gorhill d47d8bf0bf this fixes #158 2015-05-02 17:41:52 -04:00
gorhill 44f1a61c42 placeholder styling gone: it's bloat-ish 2015-05-02 17:13:55 -04:00
gorhill cd13d2870b this fixes sticky popup on FF 2015-05-02 13:43:50 -04:00
gorhill ddaa948cf4 new way of handling blocked documents 2015-05-02 13:30:29 -04:00
gorhill e751a5403b code review 2015-05-02 12:07:40 -04:00
gorhill 0e77cbd15d this fixes #45 + revised color-blind mode + support shutdown of content script 2015-05-02 11:17:17 -04:00
gorhill 1583a3edc6 no longer needed 2015-05-02 09:26:14 -04:00
gorhill dbe14694c8 code review 2015-05-02 00:18:31 -04:00
gorhill eb42375215 code review 2015-05-01 23:54:32 -04:00
gorhill c472e23c7d assets updater, hosts files pane, etc. 2015-05-01 19:27:43 -04:00
gorhill f4807b6b29 code review 2015-05-01 08:09:01 -04:00
gorhill 37331b1ef2 various fixes re. behind-the-scene scope 2015-04-30 19:37:55 -04:00
gorhill b01964db9b more fixes for rule edit mode 2015-04-30 19:13:03 -04:00
gorhill 171fef784e this fixes rule rendering in edit mode in FF 2015-04-30 19:03:35 -04:00
gorhill f815223f27 https://github.com/gorhill/uBlock/issues/150 needs to be fixed here too 2015-04-30 10:05:00 -04:00
gorhill 1c05281183 comments 2015-04-30 09:58:45 -04:00
gorhill 1f4ff9c809 more refactoring, code review 2015-04-21 19:47:19 -04:00
gorhill 8ae33e9c12 FF: this fixes availability of response headers for when item pulled from cache 2015-04-21 17:38:54 -04:00
gorhill 7cd060a15f refactoring, fixing script/frame blocking on FF, etc., more to do 2015-04-21 16:22:29 -04:00
gorhill cb29f10173 fixed matrix css 2015-04-21 10:16:46 -04:00
gorhill c1314e496b support ping request type explicitly 2015-04-19 16:30:28 -04:00
gorhill 595de33e83 sanitizing outgoing headers (drafty) 2015-04-19 16:19:14 -04:00
gorhill 5106c4bc44 this fixes rendering of toolbar icon 2015-04-19 10:06:05 -04:00
gorhill 0b1ddfa17b code review 2015-04-13 15:05:53 -04:00
gorhill 5f177a2e30 this fixes reload button 2015-04-13 15:01:12 -04:00
gorhill 2d4431fe0c punycode: use non-minified version 2015-04-13 13:09:57 -04:00
gorhill 9340975606 a whole lot more left to do, at least popup shows 2015-04-13 12:31:55 -04:00
gorhill 19ddf588fb i18n work 2015-04-12 07:06:50 -04:00
gorhill ed67045360 first pass 2015-04-11 17:15:57 -04:00
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)
2015-04-10 19:39:18 -04:00
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).
2015-04-10 19:39:18 -04:00
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.
2015-04-10 19:39:18 -04:00
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).
2015-04-10 19:39:18 -04:00
Deathamns 358ec2c644 Fix download URL for the fallback method 2015-04-10 19:39:18 -04:00
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
2015-04-10 19:39:18 -04:00
Deathamns 25caa9241c Set default dimensions for Safari's popup 2015-04-10 19:39:18 -04:00
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.
2015-04-10 19:39:18 -04:00
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.
2015-04-10 19:39:18 -04:00
Deathamns cd08ad9782 Work on vendor API abstraction, and near complete Safari support 2015-04-10 19:39:18 -04:00
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)
2015-04-10 19:37:25 -04:00
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.
2015-04-10 19:37:25 -04:00
Deathamns ef30ab4c2d Respect defer attribute when mirroring 2015-04-10 19:37:25 -04:00
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.
2015-04-10 19:37:25 -04:00
Deathamns d9c9627758 Only top window should have type main_frame 2015-04-10 19:37:25 -04:00
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.
2015-04-10 19:37:25 -04:00
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).
2015-04-10 19:37:25 -04:00
Deathamns a39572448d Fix messaging for Safari 2015-04-10 19:37:25 -04:00
Deathamns 08247fb5dd Preferences button for Safari
Brings back the possibility to click a checkbox which opens the extension
settings from Safari's Preferences/Extensions.
2015-04-10 19:37:25 -04:00
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.
2015-04-10 19:37:25 -04:00
Deathamns 0bc67a8819 Drop js-loader, updates from gorhill/uBlock/master 2015-04-10 19:37:25 -04:00
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.
2015-04-10 19:37:25 -04:00
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.
2015-04-10 19:37:25 -04:00
Deathamns 192053ae99 document.head isn't always available in Safari 2015-04-10 19:37:25 -04:00
Deathamns 4df265b15f Badge number sometimes disappeared in Safari 2015-04-10 19:37:25 -04:00
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).
2015-04-10 19:37:25 -04:00
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.
2015-04-10 19:37:25 -04:00
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).
2015-04-10 19:37:25 -04:00
Deathamns f514bf0835 Workaround for a messaging bug in Safari 2015-04-10 19:37:25 -04:00
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
2015-04-10 19:37:25 -04:00
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
2015-04-10 19:37:25 -04:00
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.
2015-04-10 19:37:25 -04:00
Deathamns a04a788eea Work on vendor API abstraction, and near complete Safari support 2015-04-10 19:37:25 -04:00
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)
2015-04-10 19:33:59 -04:00
Raymond Hill bd5492654f give specific message handlers priority over default one 2015-04-10 19:33:59 -04:00
Deathamns c3178cd442 Only top window should have type main_frame 2015-04-10 19:33:59 -04:00
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).
2015-04-10 19:33:59 -04:00
Deathamns 29eabd44fd Fix messaging for Safari 2015-04-10 19:33:59 -04:00
Deathamns 872a478f91 Preferences button for Safari
Brings back the possibility to click a checkbox which opens the extension
settings from Safari's Preferences/Extensions.
2015-04-10 19:33:59 -04:00
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.
2015-04-10 19:33:59 -04:00
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.
2015-04-10 19:33:59 -04:00
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.
2015-04-10 19:33:59 -04:00
Deathamns c0b1565131 Badge number sometimes disappeared in Safari 2015-04-10 19:33:59 -04:00
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).
2015-04-10 19:33:59 -04:00
Deathamns 1be99cf58e Remove unnecessary comments 2015-04-10 19:33:59 -04:00
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
2015-04-10 19:33:59 -04:00
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.
2015-04-10 19:33:58 -04:00
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
2015-04-10 19:33:58 -04:00
Deathamns 35ed9cd853 Work on vendor API abstraction, and near complete Safari support 2015-04-10 19:33:58 -04:00
gorhill 63aa4be9f7 reorganizing, preparing move to vAPI 2015-04-10 17:06:49 -04:00
gorhill 056e68da66 this fixes #42 2015-04-10 10:45:40 -04:00
gorhill 01f7cea94f re #89: fixed using non-compliant color 2015-01-12 22:40:52 -05:00
emanueLczirai 7085beb66a missing semicolon 2015-01-10 22:57:03 +01:00
gorhill 0174955287 comment re potential redundant eval 2014-12-24 08:29:55 -05:00
gorhill b68ba6d728 this fixes #82 2014-12-12 13:52:13 -05:00
Raymond Hill f0063372c5 this fixes #77 2014-12-07 17:46:19 -02:00
Raymond Hill 5777dc0b15 code review: actually no file: should occurs within https: doc 2014-12-05 10:45:43 -02:00
Raymond Hill baa8e86fd4 this addresses issue raised in #71 2014-12-05 10:43:47 -02:00
Raymond Hill b62fb94a00 code review 2014-11-30 21:41:27 -02:00
Raymond Hill 44533d77eb this fixes #72 2014-11-30 21:27:38 -02:00
Raymond Hill e39b36beda code review; make strict https break less stuff on new tab page 2014-11-29 09:50:24 -02:00
Raymond Hill 36233c7325 vertical ellispsis instead 2014-11-25 17:56:32 -02:00
Raymond Hill ee361ae37f comments 2014-11-22 10:26:37 -02:00
Raymond Hill a31351c6f9 doc is hardcoded now 2014-11-22 10:19:06 -02:00
Raymond Hill bf5b6c4517 code review 2014-11-22 09:36:45 -02:00
Raymond Hill 9a93c2375c move "Strict HTTPS" last since now it is built-in the browser 2014-11-22 01:41:22 -02:00
Raymond Hill cf02253cdd this should help futur occurrences of #65 2014-11-22 01:33:19 -02:00
Raymond Hill dc3de2a3ca make ua-spoofing code easier to read from dev tools 2014-11-21 08:54:48 -02:00
Raymond Hill 40bc8087e5 this fixes #61 2014-11-20 13:27:43 -02:00
Raymond Hill 238e6c3536 re #61 2014-11-20 11:40:52 -02:00
Raymond Hill 5d8bae3da2 this fixes #59 2014-11-19 23:17:24 -02:00
Raymond Hill 977f94a50a fine-tuning for RTL languages 2014-11-19 12:18:08 -02:00
Raymond Hill d01ab961b8 this fixes #7, #36 2014-11-19 11:59:38 -02:00
Raymond Hill ce6305210c UI work toward fixing #7, #36 2014-11-19 00:18:57 -02:00
Raymond Hill 5f3dc76b32 code review 2014-11-18 15:31:37 -02:00
Raymond Hill 5e19edaab7 ability to foil mixed content 2014-11-18 15:04:40 -02:00
Raymond Hill 5ba8f58094 ensure switches are listed first: more convenient 2014-11-18 13:37:12 -02:00
Raymond Hill 2962bd19e2 cide review 2014-11-18 08:57:57 -02:00
Raymond Hill 4aab150af3 infrastructure work toward addressing #7, #36 2014-11-18 00:18:04 -02:00
gorhill 3524c12924 fixed double definition as per 4bf6664d6b 2014-11-09 16:29:57 -05:00
gorhill f0a58ad06f bring back color hint for site-level scope 2014-11-09 12:17:44 -05:00
gorhill 3edd9eabc6 export must be on left side since permanent rules are exported 2014-11-07 18:29:13 -05:00
gorhill 4211613055 fix rendering of mu character 2014-11-07 14:36:20 -05:00
gorhill 970e1253da code review 2014-11-07 10:47:37 -05:00
gorhill 5d90401f54 this fixes #49 2014-11-07 09:05:05 -05:00
gorhill 9cc0e9bba0 this fixes #47 2014-11-06 12:12:04 -05:00
gorhill 667becf500 imported mutation observer code from uBlock: more efficient, robust 2014-11-06 10:15:41 -05:00
gorhill fb9def312a buttons must be able to wrap 2014-11-06 08:14:17 -05:00
Raymond Hill e8152f1517 ensure rule panes are always aligned 2014-11-05 21:59:04 -05:00
gorhill 8d8ff67546 just reordering labels 2014-11-05 18:54:08 -05:00
gorhill df6bdbe464 this fixes #44 completely 2014-11-05 18:52:21 -05:00
gorhill 4026149a17 this fixes #44 2014-11-05 18:11:57 -05:00
gorhill 4f456da482 translation work from Crowdin 2014-11-04 09:29:06 -05:00
gorhill 1d9a8e18e8 just trying something to possibly workaround reported crashes in #40 2014-11-04 08:49:30 -05:00
gorhill 92c48c0d49 "matrix:" instead of too generic "switch:" 2014-11-04 08:40:20 -05:00
gorhill 7e038a9433 use pretty 1st-party label only for rendering 2014-11-03 20:15:14 -05:00
gorhill 3ddb31a96c rtl languages friendly: issue #29 2014-11-03 14:27:59 -05:00
gorhill b42fd99bd0 no badge when count is zero 2014-11-02 18:43:12 -05:00
gorhill 1908504895 this fixes #37 completely 2014-11-02 18:34:03 -05:00
gorhill f6a366194c this address #37: the rebinding of pages which change incrementally 2014-11-02 18:19:48 -05:00
gorhill 2f7af6890d this addresses #37 2014-11-02 16:56:32 -05:00
gorhill e49e87ba54 better url 2014-11-02 14:17:52 -05:00
gorhill 50bcc24049 this is a start for #29 2014-11-02 12:10:21 -05:00
gorhill 3c455d3fdc give credits to issue authors 2014-11-02 09:42:05 -05:00
gorhill f7c2e68887 jshint 2014-11-02 00:36:55 -04:00
gorhill 4b4dc3c0db code review 2014-11-02 00:30:49 -04:00
Raymond Hill 4dd3b09ae4 this fixes #34 2014-11-01 22:46:14 -04:00
gorhill 85ecc71230 this fixes #31 2014-11-01 19:03:09 -04:00
gorhill 296f16f08e this fixes #31/#issuecomment-61376018 2014-11-01 14:44:39 -04:00
gorhill 8e7ae17b5c updating default UA strings 2014-11-01 14:22:11 -04:00
gorhill faef346878 this address 3 in #28 2014-11-01 12:52:02 -04:00
gorhill 575676e415 this addresses some of #28 issues 2014-11-01 12:22:44 -04:00
gorhill 48c5f7bf45 no longer needed 2014-10-31 18:52:57 -04:00
gorhill 30c570253f this fixes #23 2014-10-31 18:52:27 -04:00
gorhill 03609910c5 not needed anymore 2014-10-31 14:27:36 -04:00
gorhill 5c05a8773a revamped "My rules" tab 2014-10-31 14:14:41 -04:00
gorhill 89f757d61e this does help a bit further re. #27 2014-10-31 09:46:09 -04:00
gorhill 24502090e2 this somewhat fixes #27 2014-10-31 09:32:24 -04:00
gorhill 49bbe6f7dd ip address friendly 2014-10-30 10:30:26 -04:00
gorhill c5acad2332 minor code review 2014-10-29 10:10:30 -04:00
gorhill b2d19afeb8 finally... fixes #24 2014-10-29 10:10:07 -04:00
gorhill 9838d009aa this fixes #24 2014-10-29 09:59:02 -04:00
gorhill 967707723a this fixes #24 2014-10-29 09:27:11 -04:00
gorhill 49441de2b6 bring back doc req type; many little fixes 2014-10-28 23:21:06 -04:00
gorhill eab99cf26b forgot to rename to uMatrix (as per wilderssecurity.com thread) 2014-10-28 20:07:22 -04:00
gorhill 20ba3157eb slight colored bg for tooltips 2014-10-28 18:37:08 -04:00
gorhill 448a56cc70 fixed tooltips; illegal characters in messages.json 2014-10-28 18:34:44 -04:00
gorhill 10ef2cf0f1 fix meta row of blacklisted hostnames group 2014-10-28 14:33:16 -04:00
gorhill 425f512aa4 getting ready for crowdin work 2014-10-28 10:49:09 -04:00
gorhill ff4d827e1f this fixes #21 2014-10-28 00:38:02 -04:00
gorhill 02e6b2c2d8 oops: 5 min, not 5 hr 2014-10-28 00:18:51 -04:00
gorhill 257844c233 a bit of refacotring work 2014-10-28 00:14:15 -04:00
gorhill ead35cedbe code review 2014-10-27 16:19:46 -04:00
gorhill 5131a5d806 this fixes #19 2014-10-27 11:02:45 -04:00
gorhill 3aeeea7abd code review 2014-10-27 10:30:21 -04:00
gorhill 118306ab51 this fixes #17 2014-10-27 10:20:19 -04:00
gorhill e187161b84 take care of session storage as well 2014-10-26 19:41:22 -04:00
gorhill c0450c578d todo 2014-10-26 19:28:03 -04:00
gorhill 6d72b65a1a jshint 2014-10-26 19:27:24 -04:00
gorhill b605f3d4ea this fixes #18 2014-10-26 19:23:56 -04:00
gorhill 8cb0619687 fix to ensure PSL is available when binding tabs 2014-10-26 15:54:50 -04:00
gorhill abdbbd55dd jshint 2014-10-26 15:53:33 -04:00
gorhill 5e96f44798 this fixes #14 2014-10-26 15:51:04 -04:00
gorhill 77cfb56d94 this fixes #12 2014-10-26 13:36:27 -04:00
gorhill bd411290dd forgot to tag source code with github issue 2014-10-26 10:18:18 -04:00
gorhill b946a96bb6 this fixes #13, hopefully 2014-10-26 10:13:09 -04:00
gorhill ceed73dd59 this fixes another console error as per #10 2014-10-26 01:31:22 -04:00
gorhill cbb0b8a8f1 fixed as per code review 2014-10-25 23:46:53 -04:00
gorhill 8653401961 this fixes #10 2014-10-25 23:30:43 -04:00
gorhill 9441ffe719 this fixes #8 (the 2nd part) 2014-10-25 20:03:22 -04:00
gorhill b31b7227ff this fixes #8 2014-10-25 16:41:08 -04:00
gorhill fa84fa2508 this fixes #9 2014-10-25 16:36:45 -04:00
gorhill 92717f4cfd this fixes #4 2014-10-25 11:18:09 -04:00
gorhill 56a9e8a460 this fixes #3 2014-10-25 10:55:48 -04:00
gorhill 0d459545a2 this fixes #2 2014-10-24 23:21:26 -04:00
gorhill 0c6d0b3a98 another check for #1 2014-10-24 17:34:30 -04:00
gorhill 1743f198e5 another check for #1 2014-10-24 17:22:32 -04:00
gorhill 207ee2773b ui details 2014-10-24 14:57:05 -04:00
gorhill a39bd536b5 work on auto-update, backup/restore/reset 2014-10-24 11:13:46 -04:00
gorhill b94047f9f7 forgot to check this 2014-10-23 19:41:10 -04:00
gorhill 2b41bc8087 work on many things, need more 2014-10-23 19:40:48 -04:00
gorhill 65a8000657 fixed parsing of partial rules 2014-10-23 19:37:59 -04:00
gorhill dc39fa9452 moving assets out of src 2014-10-23 10:14:13 -04:00
gorhill 5f63a0f984 no good reason to prevent scopable literal "1st-party" 2014-10-23 07:47:53 -04:00
gorhill cd7996fb7d fixed bad test for 1st-party 2014-10-23 01:04:48 -04:00
gorhill 3952a09f6c dont display literal "1st-party" when there is no 1st-party 2014-10-22 21:26:37 -04:00
gorhill 78555a5b7c literal "1st-party" row removes the need for auto-whitelist, strict blocking 2014-10-22 19:46:30 -04:00
gorhill 85437661bf bring back behind-the-scene matrix 2014-10-22 10:25:57 -04:00
gorhill 1626c3ecc6 fix manually removing rules, code review 2014-10-22 10:02:19 -04:00
gorhill a633e16f01 user rules tab 2014-10-21 22:00:31 -04:00
gorhill e06985fcc7 dashboard tab to edit user rules 2014-10-21 19:12:25 -04:00
gorhill d944198a37 persistence: no more circumbombulated recipes, just plain line-by-line rules 2014-10-21 13:23:52 -04:00
gorhill d72e544e5a regression 2014-10-20 22:13:18 -04:00
gorhill ff0470dfa1 "1st-party" is domain, not hostname 2014-10-20 21:33:11 -04:00
gorhill a91c4fd27e issue #1: no more background page reference in popup 2014-10-20 21:19:24 -04:00
gorhill 35003b7e23 continued refactoring work: revert, revert all, persist are back 2014-10-20 16:40:09 -04:00
gorhill 186d10bf48 re issue #1 2014-10-20 00:53:13 -04:00
gorhill e3dcf085a8 remember last selected scope 2014-10-18 21:42:06 -04:00
gorhill 7e17e2ea84 code review 2014-10-18 17:11:10 -04:00
gorhill 804a5c53e0 no more jquery in popup 2014-10-18 16:49:06 -04:00
gorhill f676a745c3 move-away-from-jquery work 2014-10-18 01:09:09 -04:00
gorhill 7ac86a7138 argh, forgot to remove these before 1st commit 2014-10-17 15:40:37 -04:00
gorhill 0beb752db9 first commit 2014-10-17 15:01:09 -04:00