Commit graph

1441 commits

Author SHA1 Message Date
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
Deathamns
86222cb368 Use utf-8 for data: URIs when downloading 2014-11-09 17:39:43 +01:00
Deathamns
5e587aa42f Workaround for a messaging bug in Safari 2014-11-09 17:39:42 +01:00
Deathamns
5e99ead9ff Fix download URL for the fallback method 2014-11-09 17:39:40 +01:00
Deathamns
749b6f186d Use a dedicated file for storing extension info
Chrome has getManifest(), Safari doesn't have anything, Firefox has an
asynchronous API...
So, instead of using extension APIs, store the common informations
(extension name, version, homepage url) in a file (vapi-appinfo.js), which
can be included when it's needed (its data will be available at vAPI.app.____).
The file's content is updated each time the extension is being built, so
it shouldn't be modified manually.
2014-11-09 17:39:38 +01:00
Deathamns
fbffc5b07e 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
2014-11-09 17:39:36 +01:00
Deathamns
2e787d8541 Set default dimensions for Safari's popup 2014-11-09 17:39:35 +01:00
Deathamns
ab12c8d7d9 Remove unnecessary comments 2014-11-09 17:39:33 +01:00
Deathamns
7dba1f7e22 Use extension API to open links from the popup
Safari doesn't seem to follow links embedded in the popup window (not even
with target="_blank").
2014-11-09 17:39:31 +01:00
Deathamns
d38ca13107 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
2014-11-09 17:39:30 +01:00
Deathamns
88a7910bcb element-picker fixes, changes
- Include latest changes from gorhill/uBlock/master
- Append the pickerRoot container to document.documentElement instead
  of document.body ("body > div" type CSS selectors are more common, so
  they could overwrite the extension's styling with higher probability)
- Request localized strings from the background script instead of using
  the i18n API in content scripts
- Fuse element-picker.js' message handling into contentscript-end.js', since
  only one messaging channel can live at a time in a content script
2014-11-09 17:39:28 +01:00
Deathamns
f9602fa5a7 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.
2014-11-09 17:39:26 +01:00
Deathamns
775f51a04b Fix "invalid token" exception in Safari
Seems like in older versions the const keyword doesn't play well with the "use strict" directive
2014-11-09 17:39:24 +01:00
Deathamns
1a83d1a753 Move vAPI into .jshintrc as a global 2014-11-09 17:39:22 +01:00
Deathamns
171619506b 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.
2014-11-09 17:39:20 +01:00
Deathamns
7af9805296 Safari shows integers only over the toolbar icon 2014-11-09 17:39:19 +01:00
Deathamns
0886f7e886 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.
2014-11-09 17:39:17 +01:00
Deathamns
4278121f74 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
2014-11-09 17:39:15 +01:00
Deathamns
723fc6087c Alphabetical order for keys in Safari's Info.plist 2014-11-09 17:39:14 +01:00
Deathamns
5b79bf3536 Work on vendor API abstraction, and near complete Safari support 2014-11-09 17:39:12 +01:00
gorhill
96c4e2e256 respect newlines 2014-11-09 09:42:06 -05:00
gorhill
7699f255ae more up to date screenshots 2014-11-09 09:12:15 -05:00
gorhill
f4ab059505 update of third-party assets 2014-11-08 08:30:16 -05:00
gorhill
e6a5356b6e new revision 2014-11-08 08:21:30 -05:00
gorhill
775f71ecf3 reimported from Crowdin for proper formatting 2014-11-08 08:20:55 -05:00
gorhill
a9a80354ad missing quotes 2014-11-08 08:11:34 -05:00
gorhill
b4420c1cbc as required by chrome API 2014-11-08 08:08:11 -05:00
Raymond Hill
1464f7c855 Merge pull request #359 from SandeepPinge/master
Added Marathi language translations
2014-11-08 08:01:45 -05:00
SandeepPinge
85b1e62f3d Added Marathi language translations 2014-11-08 18:10:24 +05:30
SandeepPinge
091c9303d5 Added Marathi language translations 2014-11-08 18:05:45 +05:30
gorhill
088e946a87 code review 2014-11-07 10:47:09 -05:00
gorhill
2ebe5dc13a this fixes #356 2014-11-07 10:07:26 -05:00
gorhill
20d790e30d to fix prev/next arrows at http://www.expansion.com (store feedback) 2014-11-06 15:14:03 -05:00
gorhill
19fa0f6e30 slightly better regexp 2014-11-06 11:18:24 -05:00
gorhill
9fa7b2498a this fixes #357 2014-11-06 11:15:53 -05:00
gorhill
7e96cb01bf translation work from Crowdin 2014-11-05 23:22:08 -05:00
gorhill
e3ba09fe05 Merge branch 'master' of github.com:gorhill/uBlock 2014-11-05 10:29:27 -05:00
gorhill
b6374725e6 this addresses one part of #356 2014-11-05 10:29:19 -05:00
Raymond Hill
682bdb17f3 Update README.md 2014-11-04 10:01:13 -05:00
gorhill
a2eed5220f Spanish can now be shipped for Opera 2014-11-03 10:25:54 -05:00
gorhill
f8643af6ac forgot to update checksums 2014-11-03 10:08:27 -05:00
gorhill
8c718d5ef3 this fixes #183 2014-11-03 09:41:12 -05:00
gorhill
86f1cb07ca this fixes #344 2014-11-03 09:28:55 -05:00
gorhill
f18605f45b update of third-party assets 2014-11-03 09:26:15 -05:00
gorhill
a372682c18 new revision 2014-11-03 08:20:40 -05:00
gorhill
6a4759c633 translation work from Crowdin 2014-11-03 08:19:58 -05:00
gorhill
57931035f8 Merge branch 'master' of github.com:gorhill/uBlock 2014-11-03 08:15:39 -05:00