Skip to content

Browser extension for opting out from the sale and sharing of personal information per the California Consumer Privacy Act and other privacy laws

License

Notifications You must be signed in to change notification settings

eligrey/optmeowt-browser-extension

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

289 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OptMeowt 🐾

OptMeowt ("Opt Me Out") is a browser extension for sending Do Not Sell signals to websites per the Global Privacy Control draft spec.

How does OptMeowt work?

OptMewot sends Do Not Sell signals to all domains a user visits when browsing the web. Such signals must be respected for California consumers per the California Consumer Privacy Act (CCPA), Regs Section 999.315(d). However, many companies respect such signals even when they are sent from outside of California.

OptMeowt currently sends Do Not Sell signals using five methods:

  1. A new HTTP Do Not Sell header we are developing in a proposed specification effort at the W3C.
  2. The existing DNT header, which is interpreted by some publishers as a Do Not Sell header.
  3. The IAB CCPA Compliance Framework for Publishers & Technology Companies, implemented in a first party cookie.
  4. Third party cookies of ad networks participating in the DAA's CCPA Opt Out Tool for the Web.
  5. Custom headers and cookies used by individual websites maintained and updated in a Do Not Sell list.

Customizing which Sites Receive Do Not Sell Signals Every domain a user visits will be automatically added to a domain list and will receive a Do Not Sell signal by default. However, users can exclude domains that should not receive a Do Not Sell signal. This functionality is available by accessing the domain list from the extension's popup window.

Installing and Running OptMeowt

OptMeowt works on any Chromium-based browser. In addition to Chrome, it should run in Brave, Edge, Opera, and Vivaldi. In the future we hope to support Firefox and Safari as well. There are two main ways you can install OptMeowt on your computer:

1. Install OptMeowt via the Chrome Web Store

  1. You can simply add OptMeowt to your browser by donwloading the extension from the Chrome Web Store using this link.
  2. Click Add to Chrome to install OptMeowt.

2. Install OptMeowt as an unpacked extension on Chrome as follows:

  1. Clone this repo or download a zipped copy and unzip it.
  2. Follow these steps to install npm if you do not have it already installed here.
  3. Install the Grunt command line tool with this command if you haven't done this already. npm install -g grunt-cli
  4. Open your terminal or command line and run the following commands:
    cd optmeowt-browser-extension
    npm i
    grunt
  5. In Chrome, navigate to the extensions page at chrome://extensions/.
  6. If you have not done so yet, enable Developer mode with the slider on the top right corner of the extension page.
  7. Click the Load unpacked button in the top left of the page.
  8. Navigate to where you unzipped the OptMeowt folder and open up the src folder. Note: You do not need to click on the manifest.json file in Chrome, though other browsers may require this.
  9. Click to finalize the install.

You did it! You have installed OptMeowt. You can use it via the icon next to the search bar.

Files and Directories in the Repo

  • src/: Contains the main contents of the OptMeowt browser extension.
  • src/assets: Contains the graphical elements of the extension, including the logos and button images.
  • src/libs: Contains all of the libraries used in the browser extension.
  • src/options: Contains the UI elements and scripts for the supplemental options page.
  • src/popup: Contains the UI elements and scripts for the popup inside the extensions bar.
  • src/json: Contains the JSON configuration files for OptMeowt's Do Not Sell cookies and headers.
  • src/json/cookies_3p.json: Contains the 3rd party opt out cookies collected from various ad networks (especially those set by the DAA's CCPA Opt Out Tool for the Web).
  • src/json/cookies_usercustom.json: JSON file where users can place their own custom opt out cookies to be used by OptMeowt.
  • src/json/headers.json: Contains the opt out HTTP header specs used by OptMeowt.
  • src/background.html: OptMeowt's background page. Launches all critical extension scripts and libraries.
  • src/background.js: This is the main script running OptMeowt. It controls all of the major backend, regarding whether the extension is on/off, sending the Do Not Sell signal, etc.
  • src/contentScript.js: This is the main supplemental script that passes data to background.js and runs on every webpage loaded.
  • src/cookie_lists_json.js: Handles placing all of the opt out cookies stored in cookies_3p.json and cookies_usercustom.json. This currently runs on OptMeowt's install or on an extension refresh.
  • src/dom.js: This is a JS file that implements the functionality of setting a DOM GPC signal to an outgoing request
  • src/domainlist.js: This is the main JS file that allows the extension to communicate with the domain list stored in the browser's local storage.
  • src/manifest.json: This provides the browser with metadata about the extension, regarding its name, permissions, etc.
  • src/usprivacy.js: Handles placing and updating 1st party opt out cookies (namely the IAB usprivacy string) for each site intended to receive Do Not Sell signals.
  • ui-mockup: Contains PDF and XD files demonstrating the preliminary mockup and analysis of OptMeowt.

Third Party Libraries

OptMeowt uses the following third party libraries. We thank the developers.

Developer Guide

  • When contibuting, it is important to note that we manage all package dependencies with npm. Thus, it is recommended to use the npm i command to install packages.
  • In the event that you install a new dependency, you need to update Grantfile.js file with a new task of the form:
    task: { expand: true, cwd: "./node_modules/..../", src: "*", dest: "./src/libs-js" } depending on whether you need the js files or the css files of the newly installed library.
  • When viewing your browser's console on a site you are sending GPC signals to, a 404 error regarding the site's GPC status file (/.well-known/gpc.json) may be shown. Note that this is perfectly normal, and will occur frequently (1) on sites that do not support GPC and (2) may even occur on sites that do respect GPC simply if the website does not host such a /.well-known/gpc.json file.

FAQ \ Known quirks \ Reporting bugs

If you have questions about OptMeowt's functionality, or believe you may have found a bug, please check out our FAQ \ Known quirks page on the Wiki above to see if we have already addressed the issue. If you cannot find what you are looking for, please feel free to open an issue and we will address it as soon as we can! We appreciate any input from all of our users!

More Information

Visit our site to learn more.

About

Browser extension for opting out from the sale and sharing of personal information per the California Consumer Privacy Act and other privacy laws

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages

  • CSS 63.3%
  • JavaScript 35.3%
  • HTML 1.4%