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

Etag^ #101 #105

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
46260a9
Add twitchcdn.net to the mdfp list
cowlicks May 10, 2018
8da3cda
Merge pull request #35 from cowlicks/contentscript-injection
cowlicks May 10, 2018
781f28b
Merge pull request #37 from cowlicks/twitch-mdfp
cowlicks May 10, 2018
11c32e6
ooopsie Commit version change for 2018.5.10
cowlicks May 11, 2018
7e0d7be
add an npm install script
cowlicks May 12, 2018
4c6d600
Add make npm_install
cowlicks May 12, 2018
becfb00
Update dev dependencies in package.json
cowlicks May 14, 2018
6870374
Add a script with helpful variables.
cowlicks May 14, 2018
c42b0b6
use source_me.sh in npm install script
cowlicks May 14, 2018
c65553f
Add script to run tests
cowlicks May 14, 2018
8bb77e9
use source_me in release.sh
cowlicks May 14, 2018
67104bd
Add make test target
cowlicks May 14, 2018
926d11a
Add a .travis.yml file
cowlicks May 14, 2018
e192cb8
Update apt to try to get recent npm & node
cowlicks May 14, 2018
a906b9d
Set node_js version in .travis.yml
cowlicks May 14, 2018
c63ec1b
Assert failing test breaks ci
cowlicks May 14, 2018
7cc58db
Add travis badge to readme
cowlicks May 14, 2018
c3ffb61
Remove test that failing test fails ci
cowlicks May 14, 2018
34157c9
Merge pull request #44 from cowlicks/travis-ci
cowlicks May 14, 2018
fe5c597
Add a GET_DEBUG_LOG constant
cowlicks May 11, 2018
267eae4
log when popup is opened and closed
cowlicks May 11, 2018
ffb0b19
pass sendResponse to messageHandler functions
cowlicks May 11, 2018
6e3061f
Add a GET_DEBUG_LOG message handler.
cowlicks May 11, 2018
5b4617f
Add GET_DEBUG_LOG getter to popup
cowlicks May 11, 2018
f46739b
connect debug function to debug button
cowlicks May 11, 2018
be7c561
Add prettyLog function
cowlicks May 14, 2018
cf59375
Add prettyLog method to possum
cowlicks May 14, 2018
39453ac
Send prettyLog to popup for debugging instead
cowlicks May 14, 2018
8b89981
Print debugLog into console
cowlicks May 14, 2018
16efe38
Restore debug link to github issues
cowlicks May 14, 2018
4303bc6
Merge pull request #42 from cowlicks/expose-debug-log
cowlicks May 15, 2018
d0ca0e7
Add notes about Q&A to release process
cowlicks May 15, 2018
467e166
style fixes
May 16, 2018
492f665
Add issue template
cowlicks May 16, 2018
cc6aa19
Merge pull request #49 from cowlicks/issue_template
cowlicks May 16, 2018
8cf3ca6
Update to version 2018.5.16
cowlicks May 16, 2018
e29d583
Merge pull request #48 from b-meson/docs-readme
cowlicks May 16, 2018
b361dd4
Merge branch 'master' of github.com:cowlicks/privacypossum
cowlicks May 16, 2018
f0d63ee
Workaround for String.prototype.endsWith
cowlicks May 17, 2018
a1e998f
Add test case from citibank test page
cowlicks May 17, 2018
e83ca2e
Try and if we keep failing, return null
cowlicks May 17, 2018
a9f3ff4
Merge pull request #50 from cowlicks/citibank
cowlicks May 17, 2018
e5aa8c6
Fail gracefully getting data if it is missing
cowlicks May 17, 2018
e845365
Merge pull request #52 from cowlicks/storage-fails-gracefully
cowlicks May 17, 2018
f86ec5f
rename DomainStore -> Store
cowlicks May 17, 2018
f2fd4b4
add makeFakeDisk shim function
cowlicks May 17, 2018
6176d09
switch to chrome.storage.local
cowlicks May 17, 2018
0fdae20
Indentation fix
cowlicks May 17, 2018
862163c
Merge pull request #54 from cowlicks/storage
cowlicks May 17, 2018
32f982d
Upgrade to version 2018.5.17
cowlicks May 17, 2018
c3fbaee
Start tracking etags by host + pathname
cowlicks May 18, 2018
8ce453b
cache -> unknownEtagCache
cowlicks May 24, 2018
4562500
make diskMap.loadKeys return keys
cowlicks May 24, 2018
ca909f3
Add newEtagHeaderFunc and use it.
cowlicks May 24, 2018
b21f75a
unknownEtagCache -> unknownEtags
cowlicks May 24, 2018
b342efd
Switch to caching ETAG_SAFE headers
cowlicks May 24, 2018
30f45d6
Switch back to using href (not just host + path)
cowlicks May 24, 2018
faa7f79
Add matchAboutBlank to chrome.tabs.executeScript
cowlicks May 24, 2018
5ff1317
Merge pull request #59 from cowlicks/matchaboutblank
cowlicks May 24, 2018
3ea1a03
Merge pull request #58 from cowlicks/etag-clean-up
cowlicks May 24, 2018
18fd949
Update version in manifest.json
cowlicks May 24, 2018
243da2d
Add githubusercontent prefixes to mdfp list
cowlicks May 29, 2018
bd87314
Add tests for githubusercontent stuff
cowlicks May 29, 2018
e7f60dd
Add initial reasons/referer.js
cowlicks May 30, 2018
b3db5c7
Add test/reasons/referer_test.js
cowlicks May 30, 2018
08eba0c
Add privacy policy
krathalan May 30, 2018
ab799f1
Merge pull request #65 from krathalan/privacy-policy
cowlicks May 30, 2018
ed62e24
Merge pull request #64 from cowlicks/githubusercontent-mdfp
cowlicks May 30, 2018
c114e3a
Continue building out Referer class
cowlicks May 31, 2018
12816b6
Build out tests for Referer class
cowlicks May 31, 2018
eda04f3
Add a headers.mutated check in headers func
cowlicks May 31, 2018
3856708
update version to 2018.5.31
cowlicks May 31, 2018
1cc9aee
Add reasons/referer.js to manifest & popoup
cowlicks Jun 1, 2018
0436d05
Add logging to Referer, remove cruft
cowlicks Jun 1, 2018
614000c
Use Referer in reasons/headers.js
cowlicks Jun 1, 2018
427696d
Add checkOnHeadersReceived to webrequests.js
cowlicks Jun 1, 2018
ba78139
Add shortCircuit to referer redirect
cowlicks Jun 5, 2018
945e900
refactoring constants usage
cowlicks Jun 5, 2018
a07f16e
Update header check with referer
cowlicks Jun 5, 2018
6b6cb4e
Merge pull request #66 from cowlicks/referer
cowlicks Jun 5, 2018
52d211a
add raw.githubusercontent.com
cowlicks Jun 5, 2018
8906e78
Merge pull request #68 from cowlicks/add-camo-githubusercontent
cowlicks Jun 5, 2018
9d4c669
Version 2018.6.6
cowlicks Jun 6, 2018
f905256
version bump to 2018.6.10
cowlicks Jun 10, 2018
9215ce1
Add note about referer blocking to readme
cowlicks Jun 15, 2018
c6d1b85
Remove accidentally pasted text from README.md
ComodoHacker Jun 30, 2018
bf17cf7
Merge pull request #73 from ComodoHacker/patch-1
cowlicks Jul 2, 2018
c70c747
Add test for bug.
cowlicks Jul 2, 2018
89369cd
refactor getCurrentData to ignore discarded tabs
cowlicks Jul 2, 2018
13cc06c
Add getAllFrames.clear to clear stuff.
cowlicks Jul 2, 2018
86f6834
Merge branch 'master' of github.com:cowlicks/privacypossum
cowlicks Jul 2, 2018
72958b2
fix lint issues
cowlicks Jul 2, 2018
d2eded0
Merge pull request #74 from cowlicks/dont-check-discarded-tabs
cowlicks Jul 3, 2018
4709d1d
Merge pull request #75 from cowlicks/lint
cowlicks Jul 3, 2018
07fc5d1
Ignore when fingerprinting method wrapping fails.
cowlicks Jul 3, 2018
5182417
Merge pull request #77 from cowlicks/gh-69-nice
cowlicks Jul 8, 2018
0e7bf2f
update release steps in README
cowlicks Jul 8, 2018
d59ad0d
Merge pull request #80 from cowlicks/cowlicks-patch-1
cowlicks Jul 8, 2018
ce61cf6
Update to version 2018.7.8
cowlicks Jul 8, 2018
3e97697
Add react libraries
cowlicks Jul 10, 2018
437a912
Add react & react-dom shims
cowlicks Jul 10, 2018
57de617
Add react libraries to popup
cowlicks Jul 10, 2018
6fdbdd7
Change to react production build
cowlicks Jul 12, 2018
1ba1246
Replace popup html code with React
cowlicks Jul 10, 2018
99325c6
Ignore external dependencies when linting
cowlicks Jul 12, 2018
2874322
Add popup_component.js with react stuff
cowlicks Jul 12, 2018
378a6bc
Use popup_component.js in popup.html
cowlicks Jul 12, 2018
3113e52
Use popup_component.js in popup.js
cowlicks Jul 12, 2018
18a639e
Fix tests from adding react stuff
cowlicks Jul 11, 2018
98aa053
Remove unused html in popup.html
cowlicks Jul 12, 2018
f753344
Remove unused css from popup.css
cowlicks Jul 12, 2018
6b0d958
Merge pull request #81 from cowlicks/reactjs
cowlicks Jul 12, 2018
6c31e39
Allow setting on our fingerprinting descriptors
cowlicks Jul 15, 2018
2482cec
Add more tests for fingerprint wrapping
cowlicks Jul 15, 2018
9bb4498
Merge pull request #82 from cowlicks/gh-72
cowlicks Jul 15, 2018
d2283b4
Update to version 2018.7.15
cowlicks Jul 15, 2018
5314732
Fix typo in popup
cowlicks Jul 17, 2018
1c94dcb
Add a note about React and ReactDOM dependencies.
cowlicks Jul 18, 2018
2d308bf
Fix a typo in the README: "inco_mm_ing"
Jul 21, 2018
bfc0a5c
Merge pull request #84 from labdsf/patch-1
cowlicks Jul 24, 2018
89b6c47
Syntax highlighting
theel0ja Jul 24, 2018
becb008
Add fingercounting init function
cowlicks Jul 24, 2018
8b163fa
Add contentscripts to inject, fix test
cowlicks Jul 24, 2018
5d62da6
Put FP script in make funcion, make requireable.
cowlicks Jul 24, 2018
0ac5827
Use makeFingerCounting in contentscript injection.
cowlicks Jul 24, 2018
fea21a4
rm fingercounting from web_accessible_resources
cowlicks Jul 24, 2018
f2ababa
Remove web_accessible directory.
cowlicks Jul 24, 2018
d332fc7
Make injector into intialize_contentscripts
cowlicks Jul 24, 2018
9e72650
Reflect file moves in the code.
cowlicks Jul 24, 2018
cc523c2
fix missed instance of web_accessible
cowlicks Jul 24, 2018
a46a37d
Merge pull request #85 from theel0ja/patch-1
cowlicks Jul 24, 2018
6c750f7
better names in contentscript initializer
cowlicks Jul 25, 2018
1cb2b83
revokeObjectURL
cowlicks Jul 25, 2018
ebf4e75
Rm unneeded data attr getting from script tag
cowlicks Jul 27, 2018
76ee190
Fix two incorrect names in init_contentscripts
cowlicks Jul 27, 2018
2087719
Fix eslint problems in fingercounting_test
cowlicks Jul 27, 2018
a13120f
Fix bug with script property access in Firefox
cowlicks Jul 27, 2018
4330975
Merge pull request #86 from cowlicks/no-web-access
cowlicks Jul 28, 2018
0706090
Bump version to 2018.7.2018
cowlicks Jul 29, 2018
7566212
Add reverb.com to the mdfp list
cowlicks Aug 12, 2018
08963a2
Merge pull request #94 from cowlicks/gh-91
cowlicks Aug 13, 2018
d997cd8
Update issue_template.md
usernamealreadyis Aug 31, 2018
4e2827a
Merge pull request #1 from GistIcon/tag
usernamealreadyis Aug 31, 2018
cf65012
Add files via upload
usernamealreadyis Aug 31, 2018
f3ca48c
Merge pull request #3 from GistIcon/vf"£
usernamealreadyis Aug 31, 2018
c300ae1
Create CNAME
usernamealreadyis Sep 5, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
If you are reporting a bug, then providing the following is helpful:
* browser name and version
* privacy possum version

If a website is broken, please provide the URL and describe the problem.

If you would like to be extra helpful, and know how to access the Javascript console for the extension, please provide a debug log. The debug log may contain information about your browsing, such as URLS. Please read through it and redact information as you see fit.

You can access the debug log from the popup console by running `popup.debug()`, or from the extension's background page by running `possum.prettyLog()`.*=/
5 changes: 5 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
language: node_js
node_js:
- "10"
install: make npm_install
script: make test
8 changes: 7 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
test:
./scripts/test.sh

npm_install:
./scripts/npm_install.sh

psl:
./scripts/getpsl.py > src/js/domains/psl.js

release:
./scripts/release.sh

.PHONY: psl release
.PHONY: test npm_install psl release
3 changes: 3 additions & 0 deletions PRIVACY_POLICY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Privacy Policy

Privacy Possum does not collect or send data to any server.
57 changes: 32 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[![Build Status](https://travis-ci.org/cowlicks/privacypossum.svg?branch=master)](https://travis-ci.org/cowlicks/privacypossum)

![logo](/src/media/logo-med256.png)

Install for [Chrome](https://chrome.google.com/webstore/detail/privacy-possum/ommfjecdpepadiafbnidoiggfpbnkfbj) and for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/).
Expand All @@ -7,14 +9,14 @@ Companies gobble up data about you to create an asymmetry of information that th
Their profit comes from your informational disadvantage.
Privacy Possum monkey wrenches common commercial tracking methods by reducing and falsifying the data gathered by tracking companies.

# Current features
# Current Features

* blocks cookies that let trackers uniquely identify you across websites
* blocks `refer` headers that reveal your browsing location
* blocks `etag` tracking which leverages browser caching to uniquely identify you
* blocks browser fingerprinting which tracks the inherent uniqueness of your browser
* Blocks cookies that let trackers uniquely identify you across websites
* Blocks `refer` headers that reveal your browsing location
* Blocks `etag` tracking which leverages browser caching to uniquely identify you
* Blocks browser fingerprinting which tracks the inherent uniqueness of your browser

# Threat model
# Threat Model

__Privacy Possum does not have a threat model.__ Weird huh? We prioritize costing tracking companies money over protecting you. When considering some anti-tracking measure we do not ask "Is it possible to circumvent this?". Instead we ask "Is it cost-effective for a tracking company to circumvent this?". If the answer is "yes, no" we accept it.

Expand All @@ -23,20 +25,20 @@ Tracking companies are growing, they own more infrastructure, and make more mone
We think tackling the problem from an economic angle is extremely important, and will ultimately help shift the internet into more private place.


# Related projects
# Related Projects

## Why not Privacy Badger?

[Privacy Badger](https://github.com/EFForg/privacybadger) is another privacy focussed browser extension maintained by the Electronic Frontier Foundation.
[Privacy Badger](https://github.com/EFForg/privacybadger) is another privacy focused browser extension maintained by the Electronic Frontier Foundation.
I worked for the EFF on the project full time for 6 months, and found that it's current privacy benefits to be limited.
Adding new privacy protections was difficult, or impossible with the current architecture.
And the project maintainers were not interested in fixing these issues.

Comparisons with other anti-tracking projects can be found [here](docs/).

# Tracker blocking
# Tracker Blocking

## browser fingerprinting
## Browser Fingerprinting

Sites can inspect aspects of your browser itself to determine its uniqueness, and therefore track you. This tracking technique is widely used.

Expand All @@ -46,15 +48,15 @@ For example [many sites](https://publicwww.com/websites/cdn.jsdelivr.net%2Fnpm%2

Fingerprinting usually aggregates information across many esoteric browser API's, so we watch for this behavior. When we detect it, we block it.

However many sites load first party fingerprinting code alongside other neccessary code, like on reddit.com, so we can't simply block the script, or it will break the page. Instead when we see first party fingerprinting, we inject random data to spoil the fingerprint. Visit [valve.github.io/fingerprintjs2](https://valve.github.io/fingerprintjs2/) to see this. "get your fingerprint" multiple times, and see it change each time.
However many sites load first party fingerprinting code alongside other necessary code, like on reddit.com, so we can't simply block the script, or it will break the page. Instead when we see first party fingerprinting, we inject random data to spoil the fingerprint. Visit [valve.github.io/fingerprintjs2](https://valve.github.io/fingerprintjs2/) to see this. "get your fingerprint" multiple times, and see it change each time.

## cookie tracking
## Cookie Tracking

Most online tracking happens through cookies.

Privacy Possum blocks all 3rd party cookies.

## etag tracking
## Etag Tracking

Etags are a well known tracking vector, commonly used in lieu of cookies.

Expand All @@ -65,10 +67,15 @@ We detect and block third party etags as follows:
- If they are different, do not allow etags for this url now or in the future.

Chrome withholds the `if-none-match` headers from `onBeforeSendHeaders` (https://developer.chrome.com/extensions/webRequest#Life_cycle_of_requests).
So we can't prevent the browser from revealing some data via sending cache information, we are only able to intercept incomming etags from sources that are not already cached.
So we can't prevent the browser from revealing some data via sending cache information, we are only able to intercept incoming etags from sources that are not already cached.

## Referer headers

Referer headers are not exactly used for tracking themselves. But they are used in conjunction with other methods to track you. So we block them, and use a simple algorithm to unblock them when this causes problems.
* Block `referer` headers to 3rd party sources
* If the source responds with bad status code, we retry with the header added back in

## 301 moved permanent redirect tracking
## 301 Moved Permanent Redirect Tracking

If you visit a site, it might load a resource that has a 301 redirect. The resource can redirect you to url that is *unique* to you. Then, the next time you see the original resource, your browser will load the unique url from the cache, and fetch the resource from there. Making you uniquely identified.

Expand All @@ -79,25 +86,25 @@ One solution to this would be to use cached 301 redirects from 3rd party sources
However we have not found a way to disable the cache like this in chrome's extension api. It is possible to intercept the redirect, but if you redirect back to the original url, you fetch from the cache again.
One hack to disable the cache is to append a dummy query parameter, like `?` or `&`. With this you can re-try the url redirect to determine if it is unique per request.

If this tests positive for a tracking redirect, we can't simply bust the cache everytime by appending dummy query parameters because we'd end up with urls like `https://foo.com/?&&&&&&&&&&&&&&&....`.
If this tests positive for a tracking redirect, we can't simply bust the cache every time by appending dummy query parameters because we'd end up with urls like `https://foo.com/?&&&&&&&&&&&&&&&....`.

The next best solution would be to just block the request. This is yet to be implemented.

# developing
# Development

## dependencies
## Dependencies

The packaged extension contains *no* external dependencies. However we maintain our own copy of Mozilla's Public Suffix List, and Privacy Badger's Multi-domain First Parties list. These are used to determine if a given domain is "first party" or "third party".
The packaged extension contains *no* external dependencies. However we have several local dependencies we manually update for development purposes. First, wemaintain our own copy of Mozilla's Public Suffix List, and Privacy Badger's Multi-domain First Parties list. These are used to determine if a given domain is "first party" or "third party". We also have a copy of React and ReactDOM.

There are dependencies for development. These are all installed by running `npm install` inside `src/js`.

## module system
## Module System

We use a lightweight implementation of nodes `require` function to implement modules without requiring a compilation step between running in the browser, and running in node.

For this to work, we wrap each module in code like this (from `src/js/reasons/utils.js`):

```
```js
"use strict";

[(function(exports) {
Expand All @@ -111,20 +118,20 @@ Object.assign(exports, {sendUrlDeactivate, ...});
Note the path to this module must be passed in as a string to the `define` function.
Exported stuff is assigned to properties on `exports` just like in node.

## releasing
## Releases

* edit the manifest.json version number to the form year.month.day with no leading zeros.
* save and commit
* run release.sh, this tags the repo with the manifest version and builds a zip file
* run `make release`, this tags the repo with the manifest version and builds a zip file
* test the zip file in a fresh instances of supported browsers.
- for chrome run `google-chrome --user-data-dir=$(mktemp -d)` install the zip by dragging it to the chrome://extensions/ page.
- for firefox run `firefox --profile $(mktemp -d) --no-remote --new-instance`. Go to `about:debugging` and click load temporary addon. Navigate to the zip file.
- visit https://valve.github.io/fingerprintjs2/ https://reddit.com/
- Do some basic Q&A tests, visit https://valve.github.io/fingerprintjs2/ https://reddit.com/ https://twitch.tv/ https://duckduckgo.com/
* upload the zip.
- for chrome visit https://chrome.google.com/webstore/developer/edit/ommfjecdpepadiafbnidoiggfpbnkfbj record any other edits to the chrome store profile in this repo
- for firefox visit https://addons.mozilla.org/en-US/developers/addon/privacy-possum/edit
* notify users

## testing
## Testing

From inside `src/js/` run `npm test`. To check coverage run `npm run cover`.
1 change: 1 addition & 0 deletions docs/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
gisticon.privacypossum.io
Binary file not shown.
7 changes: 7 additions & 0 deletions scripts/npm_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
source $(git rev-parse --show-toplevel)/scripts/source_me.sh

pushd ${js_dir} > /dev/null
trap "popd > /dev/null" EXIT

npm install
7 changes: 3 additions & 4 deletions scripts/release.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
toplevel=$(git rev-parse --show-toplevel)
src_dir=${toplevel}/src
#!/usr/bin/env bash
source $(git rev-parse --show-toplevel)/scripts/source_me.sh
manifest=${src_dir}/manifest.json
today=$(date '+%Y.%-m.%-d')
out_file=${toplevel}/possum.zip
Expand All @@ -13,8 +13,7 @@ fi
echo "tagging version: \"${today}\""
git tag ${today}

pushd ${toplevel}/src > /dev/null

pushd ${src_dir} > /dev/null
trap "popd > /dev/null" EXIT

echo "packaging extension to: ${out_file}"
Expand Down
7 changes: 7 additions & 0 deletions scripts/source_me.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
# Load this by running
# `source $(git rev-parse --show-toplevel)/scripts/source_me.sh`
# in a script.
toplevel=$(git rev-parse --show-toplevel)
src_dir=${toplevel}/src
js_dir=${src_dir}/js
7 changes: 7 additions & 0 deletions scripts/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
source $(git rev-parse --show-toplevel)/scripts/source_me.sh

pushd ${js_dir} > /dev/null
trap "popd > /dev/null" EXIT

npm test
11 changes: 9 additions & 2 deletions src/js/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ const FINGERPRINTING = 'fingerprinting',
BLOCK = 'block',
HEADER_DEACTIVATE_ON_HOST = 'header_deactivate_on_host';

const FINGERPRINTING_PATH = '/js/contentscripts/injector.js';
const CONTENTSCRIPTS = new Set([
'/js/bootstrap.js',
'/js/contentscripts/fingercounting.js',
'/js/initialize_contentscripts.js',
]);

const etag = {
ETAG_TRACKING: 'etag_tracking',
Expand All @@ -72,6 +76,8 @@ const POPUP = 'popup';

const REMOVE_ACTION = 'remove_action';

const GET_DEBUG_LOG = 'get_debug_log';

Object.assign(exports, {
DISK_NAME,
responses,
Expand All @@ -85,7 +91,7 @@ Object.assign(exports, {
request_methods,
header_methods,
FINGERPRINTING,
FINGERPRINTING_PATH,
CONTENTSCRIPTS,
USER_HOST_DEACTIVATE,
USER_URL_DEACTIVATE,
BLOCK,
Expand All @@ -95,6 +101,7 @@ Object.assign(exports, {
TAB_DEACTIVATE_HEADERS,
POPUP,
REMOVE_ACTION,
GET_DEBUG_LOG,
});

})].map(func => typeof exports == 'undefined' ? define('/constants', func) : func(exports));
Loading