Add XHR response modifier

- Add ResponseModifier class which is responsible for handling the
  modification of the responses intercepted by XHRProxy. The
  modifications occur by processing requests via several individual
  response modifiers sequentially, which are applied if the URL matches
  a RegEx condition and, if applicable, passes a condition based on the
  features enabled by the user.

- A sample response modifier called "demo" is included, to show how a
  simple modifier would work.

- Add mainWorldOptionsWatcher with 2 components: a server and a client,
  so main world scripts (clients) can retrieve the extension options via
  their corresponding content scripts (the servers) using an
  OptionsWatcher class instantiated by the server. This is used by the
  ResponseModifier class since it's injected into the main world because
  it's the only way to intercept requests.

Bug: twpowertools:153
Change-Id: I8a9767e1eadd60d3a0f1054669e1e1f5e7a49fbb
8 files changed
tree: 83fc44f9efc85af4871793b816f9c1d5c5713572
  1. .github/
  2. cws/
  3. docs/
  4. playbooks/
  5. roles/
  6. src/
  7. templates/
  8. tools/
  9. .clang-format
  10. .editorconfig
  11. .gitignore
  12. .gitreview
  13. .zuul.yaml
  14. i18n-config.toml
  16. Makefile
  17. OWNERS
  18. package-lock.json
  19. package.json
  21. tagRelease.bash
  22. webpack.config.js

TW Power Tools

Available in the Chrome Web Store

An extension which brings several enhancements to the Google Forums and the Community Console.

For a list of features/enhancements, check out the feature list doc.

Information for contributors

This extension is being actively developed, and everyone is welcome to make feature requests, report issues and contribute code changes.

In order to make feature requests or report issues, please do so at the Monorail Issue Tracker:

To see a more exhaustive guide on how to contribute, and information on how to contribute code changes, please read the following doc:

Beta channel

Before releasing updates to the stable channel, the newest versions are uploaded to the beta channel so they can be tested by everyone who's interested. This is another way to contribute to the project, because beta testing can make us notice bugs before they reach the stable channel.

The beta channel for Chrome is available here.