A collection of shared JavaScript and HTML projects that are used within our Browsers.
A library of features/protections that are executed within our browsers.
Features have a deep integration with privacy-configuration, to allow dynamic enabling or disabling of features at runtime.
This project contains a set of isolated JavaScript applications that end up being embedded directly into our browsers. A 'special page' can be as simple as a single-screen, or as complex as a New Tab Page.
This project serves as an abstraction layer for seamless web-to-native and native-to-web communications, inspired by the JSON-RPC format.
The module provides three core methods: notify for fire-and-forget messages, request for asynchronous request-response
interactions, and subscribe for handling push-based data updates.
Utilities to automatically generate TypeScript types from JSON Schema files.
Consider using nvm to manage node versions, after installing in the project directory run:
nvm use
From the top-level root folder of this npm workspace, you can run the following npm commands:
Install dependencies:
Will install all the dependencies we need to build and run the project:
npm install
Build all workspaces:
Use this to produce the same output as a release. The build directory will be populated with
various artifacts.
npm run buildTip
You can run the build command from within any sub-project too, the artifacts will always be
lifted out to the root-level build folder.
Run unit tests for all workspaces:
npm run test-unitRun integration tests for all workspaces:
npm run test-intRun extended integration tests for all workspaces:
npm run test-int-xClean tree and check for changes:
npm run test-clean-treeGenerate documentation using TypeDoc:
npm run docsGenerate and watch documentation using TypeDoc:
npm run docs-watchCompile TypeScript files:
npm run tscWatch and compile TypeScript files:
npm run tsc-watchLint the codebase using ESLint:
npm run lintLint and automatically fix issues:
npm run lint-fixServe integration test pages on port 3220:
npm run serveServe special pages on port 3221:
npm run serve-special-pages