You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+36-8Lines changed: 36 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,35 @@ GPC Privacy Choice is developed and maintained by **Eliza Kuller (@ekuller)**, *
42
42
- Sebastian Zimmeck, [Improving Internet Privacy with Global Privacy Control (GPC)](https://sebastianzimmeck.de/SaTC_PI_Meeting_2022_Poster_GPC_Zimmeck.pdf), 5th NSF Secure and Trustworthy Cyberspace Principal Investigator Meeting (2022 SaTC PI Meeting), Arlington, Virginia, USA, June 2022
43
43
- Eliza Kuller, Chunyue Ma, Isabella Tassone, Sebastian Zimmeck, [Making Online Privacy Choice Mechanisms Effective and Usable](http://summer21.research.wesleyan.edu/2021/07/22/balancing-usability-and-active-choice-while-developing-privacy-permission-schemes/), Summer Research 2021 Poster Session, Wesleyan University, Online, July 2021
44
44
45
-
## 2. Privacy Choice Schemes
45
+
## 2. Quick DEV Guide
46
+
47
+
In order to set up the environment for our artifact, you should have Git installed.
48
+
49
+
1. Clone this repo: `git clone https://github.com/privacy-tech-lab/gpc-privacy-choice.git`.
50
+
51
+
2. In the `src` folder, create a `config.js` file. If you not wish to set up a Firebase backend and only want to observe the frontend UI, you can copy the following information into the required config file and use the provided Prolific ID (5f473753tbf20b123d695213) and password (12345).
Alternatively, if you wish to set up your own Firebase backend, I recommend looking at our [Full Developer's Guide to Implement GPC Privacy Choice](https://github.com/privacy-tech-lab/gpc-privacy-choice#5-developers-guide-to-implement-gpc-privacy-choice) for more in-depth instructions.
67
+
68
+
3. To test the extension from a local repo, open the browser (Chrome, Brave, etc) and find the manage extension options from settings.
69
+
4. Turn on developer mode, and then click the `Load unpacked` button. Select the folder `gpc-privacy-choice/src` from your files.
70
+
5. The extension should now be loaded and you should see the registration page pop up on the browser. In order to access the extension, supply a string formatted as a valid Prolific ID (you may use 5f473753tbf20b123d695213 for testing purposes). You also need to supply the password you created above. The registration process should start.
71
+
6. You may switch between schemes by manually setting it in line 741 of the `background.js` file of the repository, where there is a list of what number corresponds to which scheme. See [Privacy Choice Schemes](https://github.com/privacy-tech-lab/gpc-privacy-choice#3-privacy-choice-schemes) for full descriptions of each scheme.
72
+
73
+
## 3. Privacy Choice Schemes
46
74
47
75
The GPC Privacy Choice extension includes nine schemes for enabling GPC signals on websites. Which scheme a user is assigned upon installation of the extension is intentionally set within the extension (see `background.js`).
48
76
@@ -129,7 +157,7 @@ Although – to some extent – it depends on what you want, there are certain g
129
157
- In order to set the browser extension to your scheme, you'll need to link it to a scheme **number** in `background.js`.
130
158
- You will also need to create a collection for your scheme in firebase. You can do this by working in `background.js` to change the collection name, and then developing your firebase security rules to accept that collection name.
131
159
132
-
## 3. Data Collection
160
+
## 4. Data Collection
133
161
134
162
**NOTE: Please make sure that you have your users' consent to collect their data. If you are at a university, you may need IRB approval or a determination that your research is exempt.**
135
163
@@ -228,7 +256,7 @@ The Mute Interaction History covers schemes where the **Snooze** button is prese
228
256
<imgwidth="600"alt="Mute Interaction History screenshot."src="https://user-images.githubusercontent.com/54873610/169371757-e957143b-e7a2-4973-9bf4-e11c87e825d7.png">
229
257
</p>
230
258
231
-
## 4. Developer's Guide to Implement GPC Privacy Choice
259
+
## 5. Full Developer's Guide to Implement GPC Privacy Choice
232
260
233
261
**NOTE: In order to create a Firebase project, you need 'Cloud Resource Manager project creation' to be enabled. This may be disabled if you are using an institutional account.**
234
262
@@ -257,15 +285,15 @@ Follow the instructions to implement the GPC Privacy Choice browser extension fo
257
285
7. Reviewer may switch between schemes by manually setting it in line 741 of the `background.js` file of the repository, where there is a list of what number corresponds to which scheme.
258
286
8. The best way to deploy GPC Privacy Choice, for example, to participants in a research study, is via the [Chrome Web Store](https://chrome.google.com/webstore/category/extensions).
259
287
260
-
## 5. GPC Privacy Choice Architectural Overview
288
+
## 6. GPC Privacy Choice Architectural Overview
261
289
262
290
The extension makes use of [Manifest V3](https://developer.chrome.com/docs/extensions/mv3/intro/).
Here are the most important files and directories:
271
299
@@ -304,7 +332,7 @@ Here are the most important files and directories:
304
332
-`src/updateSignal.js`: Updates the status of whether a GPC signal is sent or not on any given site.
305
333
-`src/util.js`: Provides utility functions for `background.js`.
306
334
307
-
## 7. Third Party Libraries
335
+
## 8. Third Party Libraries
308
336
309
337
The GPC Privacy Choice extension uses the following third party libraries. We thank the developers.
310
338
@@ -316,7 +344,7 @@ The GPC Privacy Choice extension uses the following third party libraries. We th
316
344
317
345
The Dolphin logo is used under the CC-BY 4.0 license copyright Twitter, Inc.
318
346
319
-
## 8. Known Issues
347
+
## 9. Known Issues
320
348
321
349
-**Only header-based GPC signals**: Our extension is sending [header-based GPC signals](https://globalprivacycontrol.github.io/gpc-spec/#the-sec-gpc-header-field-for-http-requests). However, we [did not implement DOM-based GPC signals](https://globalprivacycontrol.github.io/gpc-spec/#javascript-property-to-detect-preference).
322
350
-**The GPC choice banner UI may not display well on certain sites**: Due to lack of control on the styling of injected HTML, the banner UI may vary on certain sites. We have tried our best to ensure UI consistency. Based on our testing during the development phase, the UI consistency is only not well maintained on a small set of sites, and the functionalities of the banner are not affected.
@@ -328,7 +356,7 @@ The Dolphin logo is used under the CC-BY 4.0 license copyright Twitter, Inc.
328
356
-**In rare instances browser updates may require re-registration**: For already registered users, upon browser updates, the extension may display the user registration page again. No data may be collected on Firebase until the user re-registers. If the user re-registers, a second Firebase ID will be created and data will be collected from that moment on under that Firebase ID. Data for the same user under different Firebase IDs can be combined in the post-processing stages.
329
357
-**Scheme 7 does not send GPC Signals.** It is a front-end implementation only.
330
358
331
-
## 9. Thank You!
359
+
## 10. Thank You!
332
360
333
361
<palign="center"><strong>We would like to thank our financial supporters!</strong></p><br>
0 commit comments