Skip to content

privacyone/privacy-master-controller

Repository files navigation

Privacy Master Controller

Shield

Privacy Master Controller (PMC) is, on the surface level, an interface within Breeze for quick access to useful privacy and security settings and information as well as a gateway to Dashboard.

Description

This is an integrated browser extension used to control global settings of internal privacy and security extensions* within Breeze as well as display the count of tracking attempts blocked per site. Users can access these features, including Dashboard, using the popup interface.

* In further text, any mention of other extensions will refer to their respective implementation explained in Supporting Extensions.

Interface

Popup

Popup Elements

  1. Tracking attempts blocked on this site Displays the current amount of blocked elements by uBlock, Privacy Badger and ClearURLs for the tab the popup is opened on.

  2. Master Toggle Displays and controls the state of PMC. The state is defined as "in-use" if at least one toggle is active, "off" otherwise. If toggled while being "in-use", it will deactivate all active toggles. If toggled while "off", it will activate all three toggles. Initiates a 1s tab refresh timer upon being toggled.

  3. Privacy, Security and Cosmetic Toggles

    A 3s tab refresh timer is initiated upon any of the three being toggled.

  4. View Dashboard
    Opens Dashboard (located at breeze://dashboard ) in a new tab.

Integration into Breeze

PMC is installed during the build phase of Breeze.
This repository is used as a submodule in the Breeze core repository.

The following patches are used for its integration:

  • pmc-installer.patch
    Sets PMC to be installed during the build process as an integrated extension, sets the appropriate tooltip and disables right-click interaction.

  • pmc-positioning.patch
    Sets the position of the PMC browser action [2] to be on the left side of the omnibox.

    Browser Action

Permissions

Although Breeze users will not be prompted to acknowledge and accept the use of these permissions by PMC as they would with regular (e.g. Chrome Webstore) extensions due to it being an integrated extension, it is still imperative to make privacy-related information crystal clear. These are the permissions [3] required by PMC for it to work as intended:

"permissions": [
  "storage",
  "tabs",
  "management",
  "browsingData"
],

These permissions allow access to their respective APIs which PMC uses in the following way:

storage [4]

  • Save and load toggle values for the popup menu initialization.
  • Monitor changes to toggle values for global synchronization of the popup menu.

tabs [5]

  • Perform tab queries to relay information to and from internal privacy and security extensions based on tab IDs.
  • Communicate with PMC's content script [6] responsible for aggregating and providing block count information for each eligible tab to the popup.
  • Create a new tab (View Dashboard).

management [7]

  • Enable/Disable internal privacy and security extensions

browsingData [8]

  • Delete cache and cacheStorage data for a specified host. (This happens when the aforementioned delayed refresh upon toggle interaction is initiated. The host is the page that was in the "background" while the toggle interaction occurred.)

References

[1] uBlock Wiki: Filter lists

[2] Chrome Developers API Reference: chrome.browserAction

[3] Chrome Developers API Reference: Declare permissions

[4] Chrome Developers API Reference: chrome.storage

[5] Chrome Developers API Reference: chrome.tabs

[6] Chrome Developers API Reference: Content scripts

[7] Chrome Developers API Reference: chrome.management

[8] Chrome Developers API Reference: chrome.browsingData

License

See LICENSE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •