privacytests / privacytests.org

Source code for privacytests.org. Includes browser testing code and site rendering.
https://privacytests.org
MIT License
798 stars 23 forks source link

Replication issue #68

Open basille opened 2 years ago

basille commented 2 years ago

Hi, here's a summary of our discussion on Twitter about my efforts to replicate the privacy tests on my own system — with the intent to test my browser (Firefox) with a series of privacy add-ons (Privacy Badger, ClearURLs, Decentraleyes, Smart Referer…).

Working with Tuesday's version (de670f0557bac3dd873af713b4fc236427ae55dd), I started with:

npm install

which I believe worked successfully. Then tried:

node index config/firefox.yaml 

which resulted in a new window of Firefox with no themes and add-ons, and the following output:

List of browsers to run: [ { browser: 'firefox', incognito: false } ]

creating driver: { browser: 'firefox', incognito: false }
firefox version found: 93.0
loading https://arthuredelstein.net/browser-privacy/tests/fingerprinting.html
loading https://arthuredelstein.net/browser-privacy/tests/https.html
loading https://arthuredelstein.net/browser-privacy/tests/misc.html
loading https://arthuredelstein.net/browser-privacy/tests/supercookies.html?mode=write&default=6399145799200074
loading https://arthuredelstein.net/browser-privacy/tests/supercookies.html?mode=read&blob=blob%3Ahttps%3A%2F%2Farthuredelstein.net%2F62f4bd2f-7fef-49d4-a352-464d765436c4&fetch cache=6399145799200074&iframe cache=6399145799200074&image cache=6399145799200074&favicon cache=6399145799200074&font cache=6399145799200074&CSS cache=6399145799200074&locks=Error%3A%20Unsupported&TLS Session ID=04306e028be7ab5eb063003f0ddb54c0e2293ca81e1d0f9e747749eef34947de&prefetch cache=6399145799200074&Web SQL Database=Error%3A%20Unsupported&H3 connection=Error%3A%20NetworkError%20when%20attempting%20to%20fetch%20resource.
loading https://arthuredelstein.github.io/privacytests.org/tests/supercookies.html?mode=read&blob=blob%3Ahttps%3A%2F%2Farthuredelstein.net%2F62f4bd2f-7fef-49d4-a352-464d765436c4&fetch cache=6399145799200074&iframe cache=6399145799200074&image cache=6399145799200074&favicon cache=6399145799200074&font cache=6399145799200074&CSS cache=6399145799200074&locks=Error%3A%20Unsupported&TLS Session ID=04306e028be7ab5eb063003f0ddb54c0e2293ca81e1d0f9e747749eef34947de&prefetch cache=6399145799200074&Web SQL Database=Error%3A%20Unsupported&H3 connection=Error%3A%20NetworkError%20when%20attempting%20to%20fetch%20resource.
loading https://arthuredelstein.net/browser-privacy/tests/navigation.html?mode=write&default=16569129864526966
loading https://arthuredelstein.net/browser-privacy/tests/navigation.html?mode=read&sessionStorage=16569129864526966&window.name=16569129864526966&document.referrer=https%3A%2F%2Farthuredelstein.net%2F&ServiceWorker=16569129864526966
loading https://arthuredelstein.github.io/privacytests.org/tests/navigation.html?mode=read&sessionStorage=16569129864526966&window.name=16569129864526966&document.referrer=https%3A%2F%2Farthuredelstein.net%2F&ServiceWorker=16569129864526966
loading https://arthuredelstein.net/browser-privacy-params/?controlParam=controlValue&fbclid=08597703265170131&gclid=08597703265170131&msclkid=08597703265170131&mc_eid=08597703265170131&dclid=08597703265170131&oly_anon_id=08597703265170131&oly_enc_id=08597703265170131&_openstat=08597703265170131&vero_conv=08597703265170131&vero_id=08597703265170131&wickedid=08597703265170131&yclid=08597703265170131&__s=08597703265170131&rb_clickid=08597703265170131&s_cid=08597703265170131&ml_subscriber=08597703265170131&ml_subscriber_hash=08597703265170131&_hsenc=08597703265170131&__hssc=08597703265170131&__hstc=08597703265170131&__hsfp=08597703265170131&hsCtaTracking=08597703265170131&mkt_tok=08597703265170131&igshid=08597703265170131
Wrote results to "out/results/20211021_155722.json".
aggregate: true
Reading from raw results file: out/results/20211021_155722.json
1
(node:5345) UnhandledPromiseRejectionWarning: TypeError: (item.description ?? "").replaceAll is not a function
    at htmlTable (/home/mathieu/Documents/Informatique/Browser privacy tests/privacytests.org/testing/render.js:31:52)
    at content (/home/mathieu/Documents/Informatique/Browser privacy tests/privacytests.org/testing/render.js:247:3)
    at Object.render (/home/mathieu/Documents/Informatique/Browser privacy tests/privacytests.org/testing/render.js:328:14)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:5345) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:5345) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

The result JSON is however produced. Finally, running the following on it:

node render out/results/20211020_205202.json 

I got the following output:

aggregate: true
Reading from raw results file: out/results/20211020_205202.json
1
(node:4500) UnhandledPromiseRejectionWarning: TypeError: (item.description ?? "").replaceAll is not a function
    at htmlTable (/home/mathieu/Documents/Informatique/Browser privacy tests/privacytests.org/testing/render.js:31:52)
    at content (/home/mathieu/Documents/Informatique/Browser privacy tests/privacytests.org/testing/render.js:247:3)
    at render (/home/mathieu/Documents/Informatique/Browser privacy tests/privacytests.org/testing/render.js:328:14)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:4500) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:4500) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.