Add xhrInterceptor utility

Some features would benefit from being able to listen to calls made by
the Community Console client to the API. This way, the extension
wouldn't need to make additional calls to the API, since it can directly
get all the information from the current view via the xhrInterceptor.

This change adds a script which is injected into the Community Console
and acts as the interceptor. The src/common/xhrInterceptors.json5 file
defines which calls should be intercepted, and which data (the request
body or the response body) should be retrieved, and when the
xhrInterceptor finds that an API call matches one of those definitions,
it dispatches an event with the name defined in the json5 file and the
prefix "TWPT_". Then, content scripts can listen for these events in
order to work with the data provided in the event details.

Bug: 6
Change-Id: Iea4aeb1f9db84f2c013d82ec4155c59617b8f9f0
6 files changed
tree: b1c1708bc20321ffaaa37379f224439bb5849269
  1. .clang-format
  2. .editorconfig
  3. .github/
  4. .gitignore
  5. .gitreview
  6. .zuul.yaml
  7. LICENSE
  8. Makefile
  9. OWNERS
  10. README.md
  11. docs/
  12. package-lock.json
  13. package.json
  14. playbooks/
  15. roles/
  16. src/
  17. tagRelease.bash
  18. templates/
  19. tools/
  20. webpack.config.js
README.md

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.