Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consolidate code and conditional build #191

merged 17 commits into from Aug 4, 2018


Copy link

@matatk matatk commented Aug 4, 2018

This massively re-organises the code around ES6 modules, to make it much simpler when built, so that:

  • Things like the injector are much simpler.
  • It’s easier to add/remove code.
  • It’s easy to do cross-browser behavioural differences and not include code/data that needn’t be.

Fixes #189

matatk added 17 commits Jul 30, 2018
* This just-about works on Firefox; need to do build environment
  variables next, and a lot of clean-up. It's a mess for any browser
  other than Firefox. Also the code that represents the entry points
  should be named appropriately (e.g. '_content.js'?) and all of the
  filenames need looking at. Finally, the names of exports should be
  looked at---should they be hardcoded, or default?
* Updated tests to use rollup-generated test code (much simpler; very
  neat and easy :-)).
* Had to disable linting the build/ dir afterwards (due to semicolons
  etc.); would like to re-enable that.
* This ignores and removes certain scripts. In future it would be neater
  for them to be generated and go directly to their build directories,
  rather than stop over in src/static/.
* Also ensure rollup is run before a quick or a normal build.
* Set open_at_install on the sidebar to false, so that the starting
  state is always known (need to use this approach until isOpen() is fixed
  to propogate user input blessedness for event handling).
* Set minimum required Firefox version to 62 as required (partly
  addresses #190).
* Use Firefox Developer Edition for testing (due to the requirement for
  Firefox 62).
* Also open the Browser Console by default when using web-ext.
* Update deps.
* Update build script to use the plugin.
* Test the plugin in the code. This appears to've uncovered a bug with
  terser: terser/terser#92
* Thanks for the help on terser/terser#92 :-)
* Remove loadsa script inclusions from manifests.
* Create cross-browser compatibility script and import.
* Create cross-browser specialPages script and import.
* Remove now-defo-unused code from build script.
* Increase terser compress passes to two to avoid dangling strings.
* Factor out Logger.
* Give all default exports their names back.
* Remove redundant ".js" suffixes from imports.
* Remove options-change logging (debugging info).
* Rename contrast.js to contrastChecker.js to reflect name.
* Reinstate the content script injector. This always has to be imported,
  but can return null on Firefox.
* Set terser's `conditionals` compressor option so that simple tests for
  one browser can be filtered out.
Alas the output after rollup and terser was a bit wonky. Experimenting
with two spaces for now, as whilst I doubt it will be sufficiently
readable, it might take up less space in browser inspector windows, so
may be good; will see...
* Remove interface defaultSettings from Chrome and Edge.
* Remove debugging info.
* Remvoe some but not all debugging things; trying to figure out why
  Opera is not showing the browserAction toolbar button sometimes.
@matatk matatk merged commit 22fef45 into master Aug 4, 2018
2 checks passed
2 checks passed
continuous-integration/travis-ci/pr The Travis CI build passed
continuous-integration/travis-ci/push The Travis CI build passed
@matatk matatk deleted the consolidate-code-and-conditional-build branch Aug 4, 2018
@@ -210,6 +210,7 @@ Changes
- 2.4.0 - in development
- Show the current keyboard commands on the splash page and allow the user to update them on Chrome and Opera. \[[\#187](\]
- Offer an optional sidebar instead of the pop-up on Firefox and Opera. \[[\#188](\]
- Massive re-organisation of the code to make it easier to manage and accommodate and take advantage of cross-browser differences. \[[\#191](\]

This comment has been minimized.


MarkWithall Aug 6, 2018

This seems to have a tab, whereas the rest has spaces.

This comment has been minimized.


matatk Aug 6, 2018
Author Owner

Oops; good catch; thanks :-). I usually remember to replace them. Should probably reformat the whole list, but as it gets longer, the task gets less desirable... :-)

@matatk matatk mentioned this pull request Aug 8, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.