Commit graph

168 commits

Author SHA1 Message Date
gorhill
4b9fc6d6f5 fixed import/export of dynamic rules 2015-01-06 12:14:37 -05:00
gorhill
881e8111d8 "advanced user" flag + rearranging a bit dashboard 2015-01-06 11:44:06 -05:00
gorhill
3a5c2cfa57 code review 2015-01-06 08:44:19 -05:00
gorhill
1597ce7fd9 lot of work related to dynamic filtering + new net requests logger 2015-01-06 08:01:15 -05:00
gorhill
81e035589b Merge branch 'master' of github.com:gorhill/uBlock into fix-433 2015-01-04 10:04:59 -05:00
gorhill
ea2043c0eb auto cleanup of listeners 2015-01-04 10:03:51 -05:00
gorhill
e8045d154b bringing changes from master 2015-01-02 14:19:12 -05:00
gorhill
00995992d2 this fixes #455 2015-01-02 13:42:35 -05:00
gorhill
2d05d51664 code review for #456 2015-01-01 21:14:53 -05:00
gorhill
2a7e9f8d98 this fixes #456: another unrelated bug unveil from previous fix 2015-01-01 20:58:19 -05:00
gorhill
057e95bed0 fixed comment 2015-01-01 19:16:02 -05:00
gorhill
33d73b343d this fixes #456 2015-01-01 19:09:40 -05:00
gorhill
4cbfb0fa6b semantically better 2015-01-01 10:57:03 -05:00
gorhill
5bfe3b09a7 filtering result has been refactored 2015-01-01 10:55:00 -05:00
gorhill
df2db73fb1 bringing branch up to date with master 2015-01-01 09:40:14 -05:00
gorhill
8562f70144 avoid potential double execution of firstRetrieveHandler (because mutations observer) 2015-01-01 09:15:37 -05:00
gorhill
aca35e4cbc code review for #452: avoid if'ing each time 2015-01-01 08:09:44 -05:00
gorhill
4c7533b786 code review for #452 2015-01-01 07:46:33 -05:00
gorhill
619b89e6a6 avoid dom changes if possible 2015-01-01 07:29:28 -05:00
gorhill
3b0dac6402 Merge branch 'master' of github.com:gorhill/uBlock into fix-433 2014-12-31 23:24:07 -05:00
gorhill
baa0fee0f3 this fixes #452 2014-12-31 23:09:22 -05:00
gorhill
3c941f8309 another round of work re dynamic filtering 2014-12-31 17:26:17 -05:00
gorhill
43e773aab2 finally a fully working draft: now onto myriad finishing touches 2014-12-31 10:47:19 -05:00
gorhill
a0279b1378 more work to expand dynamic filtering 2014-12-30 16:36:29 -05:00
gorhill
b49b0864d3 code review: #433 2014-12-28 12:04:48 -05:00
gorhill
1fe7045b92 too many changes for #433: branching so that I can commit and keep working on it 2014-12-28 10:07:43 -05:00
gorhill
aed66e5278 code review for #438 2014-12-27 13:42:47 -05:00
gorhill
c0b9e634b3 this fixes #438 2014-12-26 15:26:44 -05:00
gorhill
f60f149531 1000 is k, not K 2014-12-24 08:11:22 -05:00
gorhill
8eaa92f0a2 for debugging purpose when investigating 2014-12-22 18:38:18 -05:00
gorhill
e904e96d4d this fixes #436 2014-12-22 14:48:17 -05:00
gorhill
97bf6e279e further fix re #426 2014-12-21 00:07:08 -05:00
gorhill
4f229c7c27 this fixes #426 2014-12-20 15:28:16 -05:00
gorhill
59abd062ef #423: code review (oops) 2014-12-19 14:06:55 -05:00
gorhill
0cdc703f13 #423: code review 2014-12-19 14:04:17 -05:00
gorhill
6fc7f96a48 this fixes #423 2014-12-19 14:00:46 -05:00
gorhill
0d3dd3d2ec code review for #420: mind that the rule can apply everywhere 2014-12-17 10:47:52 -05:00
gorhill
b9c1f2e397 this fixes #420 2014-12-17 10:32:50 -05:00
gorhill
ceb36732cc jshint 2014-12-17 10:09:08 -05:00
gorhill
a7c9134bf6 this fixes #417 2014-12-17 08:04:21 -05:00
gorhill
5019f241df this fixes #418; also remove last chrome API reference from portable code 2014-12-17 08:02:37 -05:00
gorhill
a1172b1efe code review related to #405 2014-12-15 14:37:09 -05:00
gorhill
49d77eab05 more changes related to fix to #405 2014-12-15 11:02:50 -05:00
gorhill
084a1ef8d0 # is allowed with fix to #405 2014-12-15 09:28:56 -05:00
gorhill
22fe58e59a this fixes #414 2014-12-15 09:00:49 -05:00
gorhill
f7860cab7c this fixes #343 2014-12-15 07:19:32 -05:00
gorhill
b12bc6a7cf code review for #405 2014-12-14 17:21:59 -05:00
gorhill
d5a3226066 this fixes #405 (and formerly closed-as-wontfix #162) 2014-12-14 08:57:00 -05:00
Raymond Hill
c8c01a8f91 code review, jshint 2014-12-12 20:59:47 -02:00
Raymond Hill
a85f64c562 this addresses #405 2014-12-08 15:37:35 -02:00
Raymond Hill
172f98d462 this should help with #402 2014-12-08 14:16:13 -02:00
Raymond Hill
a909cc48d4 this is a better solution for #400 2014-12-08 14:12:08 -02:00
Raymond Hill
dfe8eab846 this fixes #401 2014-12-06 15:28:19 -02:00
Raymond Hill
0501c0712a this fixes #399 2014-12-06 15:00:31 -02:00
Raymond Hill
cf8f5c26e5 this fixes #396 2014-12-04 11:33:44 -02:00
Raymond Hill
0e12797709 extension restart is platform-dependent 2014-12-02 14:02:17 -02:00
Deathamns
2a26448734 Safari: slightly better pop-up blocking 2014-12-01 21:09:25 +01:00
Raymond Hill
2e4c0a2bfe remove depending on vapi-appinfo.js 2014-12-01 14:25:33 -02:00
Raymond Hill
f6120299af this fixes #387 2014-11-30 19:42:49 -02:00
Raymond Hill
0bf088cd1e this fixes #386, #346, #299, #288, #285, #284, #279 2014-11-29 23:36:53 -02:00
Raymond Hill
be082cb666 this fixes #384; more reading required for a long-term solution--if any 2014-11-29 18:26:01 -02:00
Raymond Hill
52e8cb5338 file picker is gone: generate a unique filename each time 2014-11-29 16:04:34 -02:00
Raymond Hill
c6227289a6 code review 2014-11-27 09:41:28 -02:00
Raymond Hill
f141d6f769 fixed overzealous cosmetic filter bug introduced in #365 2014-11-26 17:26:33 -02:00
Raymond Hill
7e55dc898e code review 2014-11-26 16:32:10 -02:00
Raymond Hill
27eeea3618 no longer needed 2014-11-26 16:25:14 -02:00
Raymond Hill
fb1221a8a1 remove overhead of PSL for "3rd-party filters" tab 2014-11-26 15:45:36 -02:00
Raymond Hill
f149b2e340 jshint 2014-11-24 20:20:21 -02:00
Raymond Hill
369b038f92 jshint 2014-11-24 12:48:33 -02:00
Raymond Hill
dc16a5c673 this fixes #379 2014-11-24 11:28:36 -02:00
Deathamns
219eddab74 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)
2014-11-23 18:21:06 +01:00
Raymond Hill
281dc7038e this fixes #362 2014-11-21 10:05:59 -02:00
Raymond Hill
0d920e4e44 code review 2014-11-16 22:40:34 -02:00
Raymond Hill
81a0052f39 remove code failing at trying to be smart re. obsolete filter lists 2014-11-16 21:27:48 -02:00
Raymond Hill
c4838581fd this fixes #365 2014-11-16 17:06:29 -02:00
Raymond Hill
91276bebfb eliminate overhead of creating two funcs/closure for each port connection 2014-11-16 12:49:55 -02:00
Raymond Hill
338bf59507 give specific message handlers priority over default one 2014-11-16 11:09:28 -02:00
Raymond Hill
84c069dfaa continued: corralling platform-specific stuff into their meta folder 2014-11-16 00:21:13 -02:00
Raymond Hill
eafc96859c further separate platform-specific code 2014-11-15 16:15:11 -02:00
Deathamns
8f0b3cf592 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.
2014-11-12 10:22:57 +01:00
Deathamns
36ad23a1db Respect defer attribute when mirroring 2014-11-11 16:33:50 +01:00
Deathamns
812da0900e Call XHR.open even if the request will be blocked
Without calling it an error may be thrown if other XHR parameters are set.
2014-11-11 16:32:17 +01:00
Deathamns
8edb628e1e Only top window should have type main_frame 2014-11-11 13:33:55 +01:00
Deathamns
2024ba1bcd Fix wrong fix in 4bf6664 2014-11-10 19:25:17 +01:00
Deathamns
fb0cacb44d 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.
2014-11-10 08:11:49 +01:00
Deathamns
0d9d285608 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).
2014-11-09 18:58:46 +01:00
Deathamns
4bf6664d6b Fix double definition of length property in uDom
The `length` property of `DOMList` couldn't be re-defined, because earlier
an Object.defineProperty was used on the object without a setter.
2014-11-09 17:41:09 +01:00
Deathamns
30ef97a678 Fix messaging for Safari 2014-11-09 17:41:07 +01:00
Deathamns
6f2e449e61 Preferences button for Safari
Brings back the possibility to click a checkbox which opens the extension
settings from Safari's Preferences/Extensions.
2014-11-09 17:41:05 +01:00
Deathamns
e36c7022cf 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.
2014-11-09 17:41:04 +01:00
Deathamns
d98a8161f9 Drop js-loader, updates from gorhill/uBlock/master 2014-11-09 17:41:02 +01:00
Deathamns
ba0b11aabe 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.
2014-11-09 17:41:00 +01:00
Deathamns
d114bf21e7 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.
2014-11-09 17:40:59 +01:00
Deathamns
7f57684e2b document.head isn't always available in Safari 2014-11-09 17:40:56 +01:00
Deathamns
bccf3d68e2 Add dummy MutationObserver shim for older browsers 2014-11-09 17:40:54 +01:00
Deathamns
64c37ccd1d Badge number sometimes disappeared in Safari 2014-11-09 17:40:52 +01:00
Deathamns
f6f85ec793 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).
2014-11-09 17:40:44 +01:00
Deathamns
ac272afb4b "Purge all caches" button seemingly didn't work 2014-11-09 17:40:43 +01:00
Deathamns
cc27193147 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.
2014-11-09 17:40:41 +01:00
Deathamns
6d49ef0dac 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).
2014-11-09 17:40:40 +01:00