Commit Graph

675 Commits (master)

Author SHA1 Message Date
gorhill 068ffe6c9a trashcan instead of X to remove an imported list 7 years ago
xofe cacdb07a6e add favicon to dashboard/logger (fix #627) + add i18n for logger title 7 years ago
gorhill 396f4fc78e avoid CPU-costly Date.toLocale(Date|Time)String() in logger page
source:
* 02a79ea9fc
* 235d1266e8
* 3b41237e4b
7 years ago
xofe 9adc29318e add missing tooltip for dashboard link (fix #837) 7 years ago
xofe d4c0c1747b fade-in tooltips, like uBO 7 years ago
xofe e6a0379e54 add bottom border to logger toolbar (prevents toolbar blending in to log entries while scrolling) 7 years ago
xofe 5a070388ae remove some unused resources (holdovers from HTTPSB) 7 years ago
gorhill 6ca45c66b8 hopefully improve UI for mobile devices (#828) 7 years ago
gorhill 06d7612bf5 Merge branch 'master' of https://github.com/gorhill/uMatrix 7 years ago
gorhill ca9229e40c import translation work from https://crowdin.com/project/umatrix 7 years ago
Raymond Hill f2a20688c6
Merge pull request #804 from Neui/native-textarea
Use native textarea when editing user rules
7 years ago
Raymond Hill 3f07dd4094
Merge pull request #800 from Pulsera/master
Commented out unused code
7 years ago
Raymond Hill f8a4630095
Merge pull request #805 from StoyanDimitrov/patch-1
Remove unused l10n string
7 years ago
gorhill ef7b831a82 fix minor glitch causing header row to be under the interactive permission setter 7 years ago
gorhill 083cf4bf46 fix CSS regression: https://github.com/gorhill/uMatrix/issues/821#issuecomment-346461071 7 years ago
gorhill 8deb398675 import translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill 878d4fa6d5 fix small popup panel glitch when first opened + minor cosmetic changes 7 years ago
gorhill d0a91d5f50 import translation work from https://github.com/gorhill/uMatrix 7 years ago
gorhill 364d2985db minor code review 7 years ago
gorhill d7cb45c237 maybe make uMatrix usable on a mobile device 7 years ago
gorhill dd1cb33626 import translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill b1f53a6d09 fix #821 7 years ago
gorhill cdffe16b98 import translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill e8136cb667 fix https://discourse.mozilla.org/t/support-umatrix/5131/158 7 years ago
gorhill 6460e5893c minor code review 7 years ago
gorhill 48eb207fa5 import translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill 76639f528a fix #819 7 years ago
gorhill a15f1fa92e fix #789 7 years ago
gorhill e23276b83a add Esperanto; fix Serbian import 7 years ago
gorhill 2692e866dd import translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill 97957b7bc3 fix #807: merging was supported after all 7 years ago
gorhill ffc44db085 fix #807: cloud-merging not supported 7 years ago
gorhill f2d7d32d1e remove unused legacy code from HTTPSB 7 years ago
StoyanDimitrov 6de0f2b9b9 Remove unused l10n string 7 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.
7 years ago
gorhill 893b885b5a AMO validation errors: do not rely on innerHTML 7 years ago
gorhill acf318d83c fix AMO validation errors: innerHTML is forbidden 7 years ago
gorhill 9eda7bf59c import fix from f1036395f7 7 years ago
gorhill 406f6473b6 use indexedDB to cache assets: https://bugzilla.mozilla.org/show_bug.cgi?id=1371255#c11 7 years ago
gorhill 5ea59ab7c4 address https://github.com/WaldiPL/webpageScanner/issues/8 7 years ago
gorhill be2ab1bdca translation work from https://crowdin.com/project/umatrix 7 years ago
Pulsera 6da5e5e5b2 Commented unused code 7 years ago
gorhill c74174a3c4 fix https://discourse.mozilla-community.org/t/support-umatrix/5131/40 7 years ago
gorhill cb482d3651 translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill 4765db4d86 code review: simplify CSP injection code 7 years ago
gorhill 27dea59284 fix #759 7 years ago
gorhill da8cc90ab4 fix visual glitch in recent versions of Chromium 7 years ago
gorhill 754e8213cf code review 6781a98f 7 years ago
gorhill 6781a98fd6 "fix" #771 7 years ago
gorhill 57022a410f translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill 7b0cb1b729 remove unused i18n strings 7 years ago
gorhill 35e9417e8f translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill e8bcc4ca9f fix #752 7 years ago
gorhill 6e8ebd8253 fix #727 7 years ago
gorhill 8835aceb35 translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill ce97268895 fix #747 7 years ago
gorhill 97509f6d03 hybrid webextension for seamless migration from legacy 7 years ago
gorhill 585802510a report raw type in logger instead of normalized type 7 years ago
gorhill c2d7096500 refactor assets management; working webextension version 7 years ago
gorhill da992312f3 fix #711 (will need confirmations) 7 years ago
gorhill 4b8345bb94 translation work from https://crowdin.com/project/umatrix 7 years ago
gorhill 48d9a0fd26 fix #711 7 years ago
gorhill 8828c4d5cb proper labelling of column 7 years ago
gorhill a4fb878b08 fix https://github.com/gorhill/uBlock/issues/2084 for uMatrix 8 years ago
gorhill 09004e0d1e translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 4ccb9bd0d4 fix uncaught exception 8 years ago
gorhill e68d9bd76e Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
gorhill e451e70fe0 fix #648 8 years ago
Alexey Petrenko 3b5b572f36 Fixed broken link 8 years ago
gorhill 70910fd2aa Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
gorhill af5afd12f2 translation work from https://crowdin.com/project/umatrix 8 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'`
8 years ago
gorhill 3c539f0ec8 fix #604 8 years ago
gorhill fdc9c38f1a Merge branch 'master' of https://github.com/gorhill/uMatrix 8 years ago
gorhill e21f87a5f6 fix #591 8 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.
8 years ago
gorhill 83b342d4e4 fix #597 + code review + merge media and image 8 years ago
Coffeemakr 12ebb136ba In addition to text files allow json files for import 8 years ago
gorhill 09cf683e1a fix #429 8 years ago
gorhill 93f963bc6c this fixes #538 8 years ago
gorhill 8f7f184837 this fixes #513 8 years ago
gorhill 2bbf72d9ab forgot to import zh-TW from https://crowdin.com/project/umatrix 8 years ago
gorhill c0821da875 brought up to date with uBO's version 8 years ago
gorhill 65924d1be8 this fixes #489 8 years ago
gorhill 17cc720dc1 this addresses #506 8 years ago
gorhill 44c1ddd00a translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill e9e1f7e631 this fixes #489 8 years ago
gorhill 4f63e079bc reverting fix to #441: undesirable side effects on Firefox 8 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.
8 years ago
gorhill fbe58341e4 translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill 87e85fa0da code review: this fix broken pruning code for `domainCache` 8 years ago
gorhill 8200c07a7f Merge tag '0.9.3.2' 8 years ago
gorhill 1d08de94fd translation work from https://crowdin.com/project/umatrix 8 years ago
gorhill fc1662e742 Issue #441: code review
(fixed issue number in commit comment)
9 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.
9 years ago
Rick van Hattem 9b1dda2c45 fixed chrome os x issue with too small popup size (fixes #423) 9 years ago
gorhill f4dd0254aa translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 6eaa85eee1 this should fix #357, #395 9 years ago
gorhill 8c6b94e213 this addresses #358 for the time being 9 years ago
gorhill 158eb0f45e translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 3eedfd6fbb translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 6fdbf9dd94 this addresses #122 9 years ago
gorhill 7d4e569bd6 see if this helps #362 9 years ago
gorhill 3c1419ad3b this addresses https://github.com/gorhill/uBlock/issues/724 9 years ago
gorhill 16f986860e translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill c03d38a5c6 this fixes #349 9 years ago
gorhill e18782672d this fixes #345 9 years ago
gorhill e25d748aa4 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill f3876463d3 imported cloud storage support from uBlock: user rules supported for now 9 years ago
gorhill 9e4e4943f3 this fixes many strictness warning in browser console 9 years ago
gorhill 7bc684f2b8 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 2224ece1a5 this fixes #320 9 years ago
David Manouchehri 471c314bed Added warning about User Agent leaking. 9 years ago
gorhill cfbce5297a translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 98c51dbff4 #301: resize only if necessary 9 years ago
gorhill a914c01ea9 popup resize: code review 9 years ago
gorhill 479b454307 Hopefully this fixes #301 9 years ago
gorhill 77b0dd8233 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 6c24fe8e2a this fixes scope button height in matrix popup + matrix popup from logger 9 years ago
gorhill c8765697e1 bring in uBlock's changes to uDom 9 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
9 years ago
gorhill 3591ca42f6 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 3d3673f163 this fixes #283 9 years ago
gorhill 07ba0a0a4b this fixes #270 9 years ago
gorhill a7329ef71d support importing uBlock ruleset syntax 9 years ago
gorhill a1f8e9599e translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill fd4a7579f1 re-worked popup UI to access dashboard from title bar (like uBlock) 9 years ago
gorhill ef68842b80 this fixes #232 + AMO feedback re. using innerHTML 9 years ago
gorhill 5997dec5d1 this brings logger's filter exp. parser improvements from uBlock 9 years ago
gorhill a2e5fd671e support external stock hosts files 9 years ago
gorhill 32333a440a translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill b20d44e36c this should fix #225 9 years ago
gorhill f81933fb59 this fixes 23aa1e79cb (commitcomment-11318549) 9 years ago
gorhill 0d6c28642c translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 23aa1e79cb remove overhead of tab selector update when no change 9 years ago
gorhill 8063ea1e67 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill e927581336 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 33708938da this fixes #212 9 years ago
gorhill 855833c978 code review 9 years ago
gorhill 779c9a6c36 this fixes #211 9 years ago
gorhill cbc0337110 code review re. new tab selector 9 years ago
gorhill d7b6be4567 logger: filter entries by tab 9 years ago
gorhill 262661347b translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 05d8c51580 this fixes #205 9 years ago
gorhill 0d92dd7e5b default to block if no rule at all 9 years ago
gorhill d03434cc43 more bools 9 years ago
gorhill 6369d37567 must return bool, not undefined 9 years ago
gorhill 446b5a0a81 minor css 9 years ago
gorhill 02760abbf0 translation work from Crowdin 9 years ago
gorhill 20bd54c56b allow some local settings to be modified by users 9 years ago
gorhill f3c5815848 interim version number for dev build 9 years ago
gorhill aea695bf8b code review 9 years ago
gorhill 568ad296a3 this should fix #194 9 years ago
gorhill ae701d9aff this fixes #191: loggin every ua-str rotation is overkill 9 years ago
gorhill 6f4257bb2a this fixes #189 9 years ago
gorhill 73ed896a85 this fixes browser history quirk on Chromium 9 years ago
gorhill 535a46db37 this fixes warning/error entries in browser console 9 years ago
gorhill 2f075c71e2 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 438a7dca0a minor code review 9 years ago
gorhill 83cc6053eb more minor details fixed 9 years ago
gorhill 4ba4d55e6b fixing small details 9 years ago
gorhill 4d4837924c translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill b65fd71012 minor css edit 9 years ago
gorhill 9d245c0510 logger: "bts" keyword to filter behind-the-scene events 9 years ago
gorhill 7dcfdf9e08 improved cookie emphasis in logger 9 years ago
gorhill c8f162d0bb punycode scope selector 9 years ago
gorhill 8aaadb8fc0 toward a release: general code review, polishing, removing obsolete stuff 9 years ago
gorhill 257334b4c2 importing rp rules 9 years ago
gorhill 3d3160efdf minor code review 9 years ago
gorhill 9afbbae8cf minor css tweaks 9 years ago
gorhill 9a40eb17a0 fixed i18n mistake 9 years ago
gorhill 3384a7614a do not count own inline script 9 years ago
gorhill 6bc728f8b8 refactoring of inline script blocking + improving AMO validation 9 years ago
gorhill 57de4fdf14 code review 9 years ago
gorhill 1cc471bd39 reset minimized state 9 years ago
gorhill 5155b87ca9 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 486183cbe6 this fixes popup matrix position/resize issues 9 years ago
gorhill 04f160efba this addresses #171 9 years ago
gorhill 186c649984 thsi fixes #170 9 years ago
gorhill 654821f101 translation work from https://crowdin.com/project/umatrix 9 years ago
gorhill 52540c1a9a various fixes 9 years ago
gorhill 05089dc370 preparing for i18n + better defaults 9 years ago
gorhill a313e4653d use textContent, not innerText 9 years ago
gorhill 8f2b473928 filtering in logger + various small fixes 9 years ago
gorhill 4142551c13 fixed controls broken by incremental rendering 9 years ago
gorhill f8c38177e2 this fixes sticky dirty state 9 years ago
gorhill 0211bcec64 regression: fixed broken polling 9 years ago
gorhill e025afe8ea allow cleaning up voided rows 9 years ago
gorhill 7c8a8cdf64 better incremental rendering of the matrix 9 years ago
gorhill af57d6d9e7 one pulling if needed is better than always pushing to many + polishing logger 9 years ago
gorhill 1d8243583c more work on matrix popup integration within logger 9 years ago
gorhill 1901b9c6e8 allow access to toolbar controls 9 years ago
gorhill 6f786635f4 extremely early draft of matrix integration within the logger 9 years ago
gorhill b518ab5573 minor fixes 9 years ago
gorhill 89a2610ab1 various fixes 9 years ago
gorhill 13c03d802d oops 9 years ago
gorhill 4a86eb0525 https://xkcd.com/1296/ 9 years ago
gorhill c18db8cc7f a few css fixes 9 years ago
gorhill a49340b57a firefox: cookie and browser cache management 9 years ago
gorhill 4ad7c65362 various fixes 9 years ago
gorhill 33b5ac1a57 minor css changes 9 years ago
gorhill 5b513a005f committing missing files 9 years ago
gorhill b4254db51c refactoring: many changes throughout -- not close to be done 9 years ago
gorhill b7e5a7bd44 fixed content script's clean shutdown 9 years ago
gorhill 818a3db9e4 code review: easier to maintain 9 years ago
gorhill fb639870df code review 9 years ago
gorhill d32137ced0 code review 9 years ago
gorhill 622d0a7e9d provide iframe URL in placeholders 9 years ago
gorhill 3fe5d48c05 this addresses 44f1a61c42 (commitcomment-11015041) 9 years ago
gorhill dac3bab44f 1st step of refactoring request logger 9 years ago
gorhill b4fb58891d oops 9 years ago
gorhill 4e76965155 remove useless code 9 years ago
gorhill be3e86e055 user is responsible to reload + fixed cleanup of stale tabs 9 years ago
gorhill d47d8bf0bf this fixes #158 9 years ago
gorhill 44f1a61c42 placeholder styling gone: it's bloat-ish 9 years ago
gorhill cd13d2870b this fixes sticky popup on FF 9 years ago
gorhill ddaa948cf4 new way of handling blocked documents 9 years ago
gorhill e751a5403b code review 9 years ago
gorhill 0e77cbd15d this fixes #45 + revised color-blind mode + support shutdown of content script 9 years ago
gorhill 1583a3edc6 no longer needed 9 years ago
gorhill dbe14694c8 code review 9 years ago
gorhill eb42375215 code review 9 years ago
gorhill c472e23c7d assets updater, hosts files pane, etc. 9 years ago
gorhill f4807b6b29 code review 9 years ago
gorhill 37331b1ef2 various fixes re. behind-the-scene scope 9 years ago
gorhill b01964db9b more fixes for rule edit mode 9 years ago
gorhill 171fef784e this fixes rule rendering in edit mode in FF 9 years ago
gorhill f815223f27 https://github.com/gorhill/uBlock/issues/150 needs to be fixed here too 9 years ago
gorhill 1c05281183 comments 9 years ago
gorhill 1f4ff9c809 more refactoring, code review 9 years ago
gorhill 8ae33e9c12 FF: this fixes availability of response headers for when item pulled from cache 9 years ago
gorhill 7cd060a15f refactoring, fixing script/frame blocking on FF, etc., more to do 9 years ago
gorhill cb29f10173 fixed matrix css 9 years ago
gorhill c1314e496b support ping request type explicitly 9 years ago
gorhill 595de33e83 sanitizing outgoing headers (drafty) 9 years ago
gorhill 5106c4bc44 this fixes rendering of toolbar icon 9 years ago
gorhill 0b1ddfa17b code review 9 years ago
gorhill 5f177a2e30 this fixes reload button 9 years ago
gorhill 2d4431fe0c punycode: use non-minified version 9 years ago
gorhill 9340975606 a whole lot more left to do, at least popup shows 9 years ago
gorhill 19ddf588fb i18n work 9 years ago
gorhill ed67045360 first pass 9 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)
9 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).
9 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.
9 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).
9 years ago
Deathamns 358ec2c644 Fix download URL for the fallback method 9 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
9 years ago
Deathamns 25caa9241c Set default dimensions for Safari's popup 9 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.
9 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.
9 years ago
Deathamns cd08ad9782 Work on vendor API abstraction, and near complete Safari support 9 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)
9 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.
9 years ago
Deathamns ef30ab4c2d Respect `defer` attribute when mirroring 9 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.
9 years ago
Deathamns d9c9627758 Only top window should have type `main_frame` 9 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.
9 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).
9 years ago
Deathamns a39572448d Fix messaging for Safari 9 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.
9 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.
9 years ago
Deathamns 0bc67a8819 Drop js-loader, updates from gorhill/uBlock/master 9 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.
9 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.
9 years ago
Deathamns 192053ae99 document.head isn't always available in Safari 9 years ago
Deathamns 4df265b15f Badge number sometimes disappeared in Safari 9 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).
9 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.
9 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).
9 years ago
Deathamns f514bf0835 Workaround for a messaging bug in Safari 9 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
9 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
9 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.
9 years ago
Deathamns a04a788eea Work on vendor API abstraction, and near complete Safari support 9 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)
9 years ago
Raymond Hill bd5492654f give specific message handlers priority over default one 9 years ago
Deathamns c3178cd442 Only top window should have type `main_frame` 9 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).
9 years ago
Deathamns 29eabd44fd Fix messaging for Safari 9 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.
9 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.
9 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.
9 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.
9 years ago
Deathamns c0b1565131 Badge number sometimes disappeared in Safari 9 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).
9 years ago
Deathamns 1be99cf58e Remove unnecessary comments 9 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
9 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.
9 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
9 years ago
Deathamns 35ed9cd853 Work on vendor API abstraction, and near complete Safari support 9 years ago
gorhill 63aa4be9f7 reorganizing, preparing move to vAPI 9 years ago
gorhill 056e68da66 this fixes #42 9 years ago
gorhill 01f7cea94f re #89: fixed using non-compliant color 10 years ago
emanueLczirai 7085beb66a missing semicolon 10 years ago
gorhill 0174955287 comment re potential redundant eval 10 years ago
gorhill b68ba6d728 this fixes #82 10 years ago
Raymond Hill f0063372c5 this fixes #77 10 years ago
Raymond Hill 5777dc0b15 code review: actually no `file:` should occurs within `https:` doc 10 years ago
Raymond Hill baa8e86fd4 this addresses issue raised in #71 10 years ago