1
0
Fork 0
mirror of https://github.com/gorhill/uMatrix.git synced 2024-06-29 11:30:20 +12:00
Commit graph

699 commits

Author SHA1 Message Date
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
gorhill ef67930454 refactored tabs/context code 2015-04-10 19:34:15 -04:00
YFdyh000 01df7aa50a Correct issue links 2015-04-10 19:34:15 -04:00
gorhill 88feb450cc new switch: toggle cosmetic filtering on/off for a site 2015-04-10 19:34:15 -04:00
gorhill 12fcc2d4f3 this fixes #1128 2015-04-10 19:34:15 -04:00
gorhill ce549b283a this fixes #1013, #1062 (draft) 2015-04-10 19:34:15 -04:00
gorhill 607c977da2 to catch slow popups 2015-04-10 19:34:15 -04:00
gorhill 49f6504f58 code review 2015-04-10 19:34:15 -04:00
gorhill 415857c55b code review: floating net requests recategorized as behind-the-scene 2015-04-10 19:34:15 -04:00
gorhill 58c546ae08 #1051: test only root frames 2015-04-10 19:34:15 -04:00
gorhill 6ef4821b73 this fixes #510 2015-04-10 19:34:15 -04:00
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
2015-04-10 19:34:15 -04:00
gorhill df27e666a7 code review re #118 2015-04-10 19:34:15 -04:00
Deathamns 390733affe Chrome: don't open an Options tab for each window 2015-04-10 19:34:15 -04:00
Deathamns 04a2486ca9 Remove unnecessary fallback code for downloading 2015-04-10 19:34:15 -04:00
gorhill 58793e4d7c this helps #993 2015-04-10 19:34:15 -04:00
gorhill 806d89e443 this fixes #967 2015-04-10 19:34:15 -04:00
Deathamns 193b469ffe Trailing whitespace 2015-04-10 19:34:15 -04:00
gorhill b5e7c9cd03 code review 2015-04-10 19:34:15 -04:00
gorhill ca8d24fb08 this fixes #862 2015-04-10 19:34:15 -04:00
gorhill 754aa6cd8b move profiling code to platform-specific 2015-04-10 19:34:15 -04:00
gorhill 6123bff635 link to relevant jsperf 2015-04-10 19:34:15 -04:00
gorhill b66683a581 avoid closures when processing messages 2015-04-10 19:34:15 -04:00
gorhill 184aec1409 code review 2015-04-10 19:34:15 -04:00
gorhill a0de897608 code review: jshint'ed 2015-04-10 19:34:14 -04:00
gorhill d50594e7eb this fixes #536 2015-04-10 19:34:14 -04:00
gorhill 529258de44 started work on #105, #475, and possibly #510 2015-04-10 19:34:14 -04:00
gorhill f4a853c611 this fixes one part of #498 2015-04-10 19:34:14 -04:00
Deathamns 14950c0c5f Code styling 2015-04-10 19:34:14 -04:00
Deathamns 847f86f947 Make vAPI.setIcon less Chromium specific 2015-04-10 19:34:14 -04:00
Deathamns c04c4ad4ab Chrome,Safari: fix typo and quotes 2015-04-10 19:34:14 -04:00
Deathamns 42d69aba2d Add license headers, plus some code styling 2015-04-10 19:34:14 -04:00
Deathamns 706a51c211 Firefox: blocking and content scripts for e10s 2015-04-10 19:34:14 -04:00
gorhill c752853031 lot of work related to dynamic filtering + new net requests logger 2015-04-10 19:34:14 -04:00
gorhill ed30222601 this fixes #455 2015-04-10 19:34:06 -04:00
gorhill 2a108917b5 another round of work re dynamic filtering 2015-04-10 19:34:06 -04:00
gorhill ce9acac0ae this fixes #418; also remove last chrome API reference from portable code 2015-04-10 19:34:06 -04:00
Raymond Hill 9515769fb5 extension restart is platform-dependent 2015-04-10 19:34:06 -04:00
Raymond Hill dccbbb3879 remove depending on vapi-appinfo.js 2015-04-10 19:34:06 -04:00
Raymond Hill c168d050f0 code review, fixes #383 2015-04-10 19:34:06 -04:00
Raymond Hill 6d5361cebc this fixes #380 2015-04-10 19:34:06 -04:00
Raymond Hill 97ca80d8bc use "platform" as suggested in #360 2015-04-10 19:34:06 -04:00