Commit Graph

46 Commits

Author SHA1 Message Date
Raymond Hill 6fa8ae619d
Revert "Pass -e flag to bash (#3790)"
This reverts commit bb20159495.
2021-07-31 14:49:32 -04:00
Manish Jethani bb20159495
Pass -e flag to bash (#3790) 2021-07-31 12:15:32 -04:00
Raymond Hill 22022f636f
Modularize codebase with export/import
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1664

The changes are enough to fulfill the related issue.

A new platform has been added in order to allow for building
a NodeJS package. From the root of the project:

    ./tools/make-nodejs

This will create new uBlock0.nodejs directory in the
./dist/build directory, which is a valid NodeJS package.

From the root of the package, you can try:

    node test

This will instantiate a static network filtering engine,
populated by easylist and easyprivacy, which can be used
to match network requests by filling the appropriate
filtering context object.

The test.js file contains code which is typical example
of usage of the package.

Limitations: the NodeJS package can't execute the WASM
versions of the code since the WASM module requires the
use of fetch(), which is not available in NodeJS.

This is a first pass at modularizing the codebase, and
while at it a number of opportunistic small rewrites
have also been made.

This commit requires the minimum supported version for
Chromium and Firefox be raised to 61 and 60 respectively.
2021-07-27 17:26:04 -04:00
Raymond Hill a4aced69dc
Reorganize platform directory to avoid Chromium-centric appearance
Though Firefox shares a lot of WebExtensions code with Chromium,
these platforms have their own specific code paths, for various
reasons.

The reorganization here makes it clear that Chromium platform is
just one flavor of WebExtensions, and as such all Chromium-specific
code paths should no longer be automatically pulled by other
platforms where these code paths are not needed.

Given that the filepath of many files changed, here is the
parent commit to quickly browse back to the previous directory
layout:

ec7db30b2f
2021-07-16 10:06:58 -04:00
Raymond Hill 68ac096b39
Import translation work from https://crowdin.com/project/ublock 2020-09-30 10:23:08 -04:00
Raymond Hill 5c68867b92
Deprecate pseudo user styles code
The pseudo user styles code served only browsers based
on Chromium 65 and earlier -- Chromium 66 supports
native user styles and was first released more than two
years ago.

In Chromium-based browsers, the pseudo user styles code
is being unconditionally injected in every page/frame
just in case the browser is version 65 or earlier.

Removing pseudo user styles reduce uBO's main content
script in Chromium-based browsers by more than 20K.

Related thread:
- https://github.com/NanoAdblocker/NanoCore/issues/348#issuecomment-653646507
2020-07-22 10:21:16 -04:00
Raymond Hill cef034f650
Remove Armenian translation from Opera build
Opera requires that there is a valid translated
description for the specific locale to be accepted.
2020-06-04 08:38:44 -04:00
Raymond Hill 004e4a3285
Support Bosnian in Opera store 2019-11-09 07:09:04 -05:00
Raymond Hill a94df7f3b2
Remove Bosnian locale from Opera package
Opera Store requires that shipped locales have
a proper accompanying description. The Bosnian
locale so far has no description and is only
partial.
2019-07-26 12:50:08 -04:00
Raymond Hill 152cea2dfe
Refactor management of injectable resources
This is a first step, the ultimate goal is to remove
the need for resources.txt, or at least to reduce to
only hotfixes or for trivial resources targeting very
specific websites.

Most resources will become immutable, i.e. they will
be part of uBO's code base. Advantages include easier
code maintenance (jshint, syntax highlight), and to
make scriptlets more easy to code review by external
parties (for example extension store reviewers).

TODO:

- More scriptlets need to be imported before next
  release.
- Need to make legacy versions of uBO use a legacy
  version of resources.txt, as all the now obsolete
  scriptlets will have to be removed once uBO's
  next release become widespread.
- Possibly need to add code to load binary
  resources so that they can be injected as
  data: URI. So far it's unclear whether this is
  really needed. For example, this would be needed
  if a xmlhttprequest is redirected to an image
  resource.
2019-07-03 09:47:56 -04:00
Raymond Hill 4d0784f8f3
Fix Opera package build script: removal of WASM-related files 2019-03-13 10:12:09 -04:00
Raymond Hill 69c87c5117
Fix Promise chain of WASM module load operations
The Promise chain was not properly designed for WASM module
loading. This became apparent when removing WASM modules
from Opera build[1].

The problem was that errors thrown by fetch() -- used to
load WASM modules -- were not properly handled.

[1] Opera refuses updating uBO if there are unrecognized file
types in the package, and `.wasm`/`.wat` files are not
recognized by Opera uploader.
2019-02-01 08:20:43 -05:00
Raymond Hill 2663c19a81
remove translations for which no description is available (Opera) 2018-08-24 09:38:00 -04:00
Raymond Hill b6b1edb288
fix opera make script 2018-05-20 11:08:53 -04:00
Raymond Hill 89fd76ac39
use image data instead of paths for browser icons
When using paths, platform implementations of setIcon typically
will fetch the resource then convert to image data internally.
It is preferable for uBO to do this conversion itself as it can
be done only once at launch time.

With chromium-based browsers, using image data eliminate the
incessant network traffic to fetch browser icons as reported
in the extension's dev tool, meaning a good chunk of overhead
is eliminated.

Also, use optimal icon sizes, as of now both chromium and firefox
prefers 16px instead of 19px, and 32px instead of 38px.
2018-05-07 19:03:50 -04:00
Raymond Hill 4585287187
fix build script for Opera 2018-04-24 17:15:18 -04:00
Raymond Hill e377b3e915
changes needed for releasing uBO/opera 1.15.24 2018-04-09 10:04:32 -04:00
Raymond Hill 7f9435f8b2
import Kazakh translation work 2018-01-31 12:49:23 -05:00
Raymond Hill dfcfa5ab9e
fix shell script for Opera 2017-12-22 09:57:28 -05:00
gorhill cfef3aeb2b
minor review of shell scripts 2017-11-10 11:36:55 -05:00
gorhill 57c5e645df
opera store requires translated description 2017-06-08 08:43:18 -04:00
gorhill fafe4c8abc fix #2436 2017-03-08 13:44:01 -05:00
gorhill 5a50f4ecfa use chromium manifest as the official one on which others are based 2016-10-19 19:07:59 -04:00
gorhill 8ee1f8812f fix #1661 as suggested 2016-06-09 12:32:00 -04:00
gorhill cad3c5f5cb update packaging scripts for https://github.com/uBlockOrigin/uAssets repo 2016-04-03 13:07:46 -04:00
gorhill ea2b706a9a updated translation stuff for Opera store 2016-02-22 09:01:37 -05:00
Aaron Bieber 98b0967d69 allow scripts to run with bash in other locations 2016-01-31 12:17:04 -05:00
gorhill 241352bf3b this fixes #1225 2016-01-14 07:23:46 -05:00
gorhill d9e56d1396 this completes the fix to #602 2015-11-24 20:53:02 -05:00
gorhill e2bc299dc9 Opera also needs managed_schema.json 2015-10-24 13:13:29 -04:00
gorhill c21a91d318 translation work from https://crowdin.com/project/ublock 2015-09-03 18:29:17 -04:00
gorhill 9fa05aa7c4 changed "make" scripts for #602
All the assets which are not selected by default out-of-the-box will
be converted into an empty file. This is a first step, the final step
will be to removed completely the files from the package once everybody
is using v1.1.0.0+.
2015-08-17 09:29:11 -04:00
gorhill e135496504 remove ta until description available (Opera store policy) 2015-08-01 14:56:17 -04:00
gorhill 045fe4cc06 various minor changes need for Opera version 2015-04-18 13:09:49 -04:00
gorhill 63366e9e94 opera build 2015-03-22 16:16:27 -04:00
gorhill 6b8118bb68 update opera 2015-03-16 13:33:56 -04:00
gorhill b3d673164c translation work from https://crowdin.com/project/ublock 2015-02-16 21:19:28 -05:00
gorhill 12daca3dc4 remove newly added Albanian until description available 2015-02-15 23:14:52 -05:00
gorhill ba2962bad6 opera-specific package 2015-02-09 15:23:27 -05:00
gorhill 3b3fcef9a0 Vietnamese description now available 2015-01-26 08:38:19 -05:00
Deathamns 4e271aebb3 Include LICENSE.txt into extension packages 2015-01-13 07:29:18 +01:00
gorhill 8ea558e41e Opera requires detailed description 2014-12-16 11:16:44 -05:00
gorhill 21b5709fbb fixed paths 2014-12-16 10:07:47 -05:00
gorhill 4527252a03 fixed Opera script 2014-12-13 17:11:22 -05: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 5b79bf3536 Work on vendor API abstraction, and near complete Safari support 2014-11-09 17:39:12 +01:00