WebScience is an open-source library for building browser-based research studies, including on Rally.
The primary contributors to WebScience are researchers at the Princeton University Center for Information Technology Policy and the Mozilla Rally team.
The easiest way to get started is with the Rally + WebScience study template, which has already been configured to integrate the WebScience library.
If you would prefer to build a browser extension with WebScience from scratch, we recommend the following steps:
package.json
file and npm install
. WebScience is available on npm as the package @mozilla/web-science
.@rollup/plugin-node-resolve
, @rollup/plugin-commonjs
, and @mozilla/web-science/rollup-plugin
to integrate the library into your bundled extension.Using WebScience in your study extension is easy. At the start of the background script where you want to use WebScience, just add:
import * as webScience from "@mozilla/web-science";
You will then be able to use the WebScience API within the background script (e.g., webScience.pageNavigation...
).
You can also selectively import components of the WebScience API, if you prefer. Just add, for example:
import { pageNavigation, socialMediaLinkSharing } from "@mozilla/web-science";
You will then be able to use those components of the API (e.g., pageNavigation...
).
Documentation for the latest release of WebScience is available at https://mozilla-rally.github.io/web-science/jsdocs/. The documentation is automatically generated from JSDoc annotations in the WebScience implementation.
Module | No Breaking Changes Planned | No Known Bugs | Good Documentation | Good Test Coverage | Browser Support |
---|---|---|---|---|---|
debugging |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
events |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
id |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
idle |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
inline |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
linkExposure |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox |
linkResolution |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox |
matching |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
messaging |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
pageManager |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
pageNavigation |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
pageText |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
pageTransition |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox |
permissions |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
randomization |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
scheduling |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
socialMediaActivity |
:x: #23 | :white_check_mark: | :white_check_mark: | :x: | Firefox |
socialMediaLinkSharing |
:x: #17 | :white_check_mark: | :white_check_mark: | :x: | Firefox |
storage |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
timing |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |
userSurvey |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox |
workers |
:white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | Firefox, Chrome |