Skip to content

Commit

Permalink
Merge pull request #132 from GoogleChromeLabs/develop
Browse files Browse the repository at this point in the history
v0.2.0
  • Loading branch information
Sayed Taqui authored Sep 8, 2023
2 parents 0c953bb + 6b8440c commit 4ed1eef
Show file tree
Hide file tree
Showing 144 changed files with 20,436 additions and 9,952 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/lint-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ jobs:

- name: Install dependencies
run: npm ci
env:
PUPPETEER_SKIP_DOWNLOAD: true

- name: JS Lint
run: npm run lint:js
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/tests-unit-js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ jobs:

- name: Install dependencies
run: npm ci
env:
PUPPETEER_SKIP_DOWNLOAD: true

- name: Setup Jest cache
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,7 @@ out

# tsc output
*.tsbuildinfo

#puppeteer artifact
tmp

21 changes: 20 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,23 @@

**Chore**

- Add command for test coverage report [PR#78](https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/78)
- Add command for test coverage report [PR#78](https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/78)

### 0.2.0

## Cookies

- Relocate info icon from matrix to cookie insights on landing page https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/121
- Feature: Add a settings page and control the number of tabs being processed https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/128
- Feature: Add option to process single or multiple tab for better performance https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/136

## CLI

- Feature: CLI tool to analyze websites and sitemap https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/123
- Debounce the toggling functionality of table sorting https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/125
- Fix: Missing platform and description https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/129
- Improvements in the CLI output https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/130
- Feature: Add optional flag to skip tech analysis https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/137

## Privacy Sandbox API
- Restructure menu items and add more info cards https://github.com/GoogleChromeLabs/ps-analysis-tool/pull/131
45 changes: 26 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

3. Mitigating workarounds, by ensuring developers have a well-lit path to the new capabilities of the platform, and avoid pursuing tracking via other means.

Tracks #2 and #3 bring significant changes to how the web operates today, and the purpose of this tool is to shed light, provide insights, and helping you to learn and understand the changes that are happening regarding the deprecation of 3P cookies, and the potential impact on the aspects of your site or product built using cookies.
Tracks #2 and #3 bring significant changes to how the web operates today, and the purpose of this tool is to shed light, provide insights, and help you to learn and understand the changes that are happening regarding the deprecation of 3P cookies, and the potential impact on the aspects of your site or product built using cookies.

# Browsing Session Analyses

Expand All @@ -44,15 +44,15 @@ The features and capabilities of this tool help you (developers) with the transi
## Cookie Data Manipulation and Analysis
🚧 Work in Progress 🚧

DevTools provides access to lots of information regarding every functional aspect of the browser, including cookies. This extension expands a bit the capabilities of DevTools and providing additional ways to slice and dice cookie data, making it easier for everyone to understand the behaviors of cookies on different scenarios.
DevTools provides access to lots of information regarding every functional aspect of the browser, including cookies. This extension expands a bit the capabilities of DevTools and provides additional ways to slice and dice cookie data, making it easier for everyone to understand the behaviors of cookies in different scenarios.

<img width="946" alt="Screenshot 2023-08-21 at 1 41 13 PM" src="https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/506089/e20cb6d0-f682-4c20-98c7-3b5e69be32df">


## Frame Overlays
🚧 Work in Progress 🚧

Cookies are used as a state management mechanism to power varying features and capabilities of sites. For example, a embedded video component from some 3P provider could set and manipulate 3P cookies to serve authenticated videos without users having to re-authenticate repeatedly. This extension provides a frame overlay capability, making it easy to associate, when possible, components on a web page and the set of cookies that are associated with it.
Cookies are used as a state management mechanism to power varying features and capabilities of sites. For example, an embedded video component from some 3P provider could set and manipulate 3P cookies to serve authenticated videos without users having to re-authenticate repeatedly. This extension provides a frame overlay capability, making it easy to associate, when possible, components on a web page and the set of cookies that are associated with it.

## Reporting

Expand All @@ -64,53 +64,60 @@ This tool provides capabilities to make it easy for users to report breakages, a

🚧 Work in Progress 🚧

The final goal of this tool is to make it easy to understand the role of 3P cookies on critical user journeys all the relevant aspects of Privacy Sandbox and the phasin out of 3P cookies. As you use the tool to analyze and debug your use cases, you will encounter links to documentation and other sources of information to support your learning and understanding as you navigate the transition to a more private web.
The final goal of this tool is to make it easy to understand the role of 3P cookies on critical user journeys all the relevant aspects of Privacy Sandbox and the phasing out of 3P cookies. As you use the tool to analyze and debug your use cases, you will encounter links to documentation and other sources of information to support your learning and understanding as you navigate the transition to a more private web.

# Usage instructions

🚧 This [Chrome Extension](https://developer.chrome.com/docs/extensions/mv3/) is currently being developed and the functionality is evolving rapidly. 🚧

The Chrome extension provides capabilities surfaced via the extension pop up, the Side Panel, and as Devtools panel. And the CLI implementation parses a sitemap provided as input, and outputs a JSON file listign all cookies set while navigating through the URLs in the sitemap. Follow the following steps to get the extension installed in your browser.
The Chrome extension provides capabilities surfaced via the extension pop-up, the Side Panel, and as Devtools panel. The CLI implementation parses a sitemap provided as input and outputs a JSON file listing all cookies set while navigating through the URLs in the sitemap. Follow the following steps to get the extension installed in your browser.

- Clone this Cookie Analysis Tool Repository
- `npm install` Install all dependencies

### Extension (from source)

- `npm run dev` or `npm run build` to genrate a build in `/dist/extension`
- Click on "Load Unpacked" button on `chrome://extensions` and upload `dist/extension` folder
- `npm run dev` or `npm run build` to generate a build in `/dist/extension`
- Turn on "Developer mode" in `chrome://extensions` to [load the unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/development-basics/#load-unpacked)
- Click on the "Load Unpacked" button and upload the `dist/extension` folder

### CLI

- `npm run cli:build` to genrate a build in `/dist/cli`.
- Run the cli, providing a URL or a sitemap as input.
- E.g. `npm run cli -- -s https://<example.com>/sitemap_index.xml\`.
- E.g. `npm run cli -- -u https://bbc.com`.

### Unpacked Extension (zip file)
### Unpacked Extension (from zip file)

- Download the extension zip file from the [latest release](https://github.com/GoogleChromeLabs/ps-analysis-tool/releases) and unzip it.
- Alternatively, you can download the extension zip file from the [latest release](https://github.com/GoogleChromeLabs/ps-analysis-tool/releases) and unzip it.
- Turn on "Developer mode" in `chrome://extensions` to [load the unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/development-basics/#load-unpacked)
- Click the "Load unpacked" button and select the unzipped extension folder.



### CLI

- `npm run cli:build` to genrate a build in `/dist/cli`.
- Run the CLI, providing a URL or a sitemap as input.
- E.g. `npm run cli -- -s https://example.com/sitemap_index.xml`.
- E.g. `npm run cli -- -u https://bbc.com`.
- Please note that the dependency (Wappalyzer), which analyzes page technologies, may require permission to use its instance of Chromium. If this happens, you have the option to skip the technology analysis by using the `nt` flag for uninterrupted analysis of cookies.
- E.g. `npm run cli -- -u https://bbc.com -nt`.



# Call to Action

The goal of this tool is to assist users on getting knowledge and insights regarding [the upcoming deprecation of the way in which 3P cookies work](https://privacysandbox.com/open-web/#the-privacy-sandbox-timeline), and on the status an behaviors of the new Privacy Sandbox APIs. You can use the tool to analyze your site(s), your browsing experience, detect and report breakages, get support from Google on fixes, and, if you are developer of solutions that require cookie capabilities being deprecated, learn how to make them happen leveraging the new platform APIs that allow you to achieve the same goals in a privacy-preserving way.
The goal of this tool is to assist users in getting knowledge and insights regarding [the upcoming deprecation of the way in which 3P cookies work](https://privacysandbox.com/open-web/#the-privacy-sandbox-timeline), and the status and behaviors of the new Privacy Sandbox APIs. You can use the tool to analyze your site(s), and your browsing experience, detect and report breakages, get support from Google on fixes, and, if you are a developer of solutions that require cookie capabilities being deprecated, learn how to make them happen leveraging the new platform APIs that allow you to achieve the same goals in a privacy-preserving way.

If you are a **first-party site developer**, you are responsible for the creation and maintenance of websites. A significant part of your work involves auditing and managing third-party dependencies to ensure that your websites run smoothly and securely. Leverage the guidance and the tooling available to help you understand the changes to third-party cookie use cases, how to integrate Privacy Sandbox APIs into your solutions, and how to troubleshoot issues that may arise.

If you are a **third-party service developer using valid cookie use cases**, you are responsible for creating and maintaining services that are integrated into other websites as third-party dependencies. If your technologies rely on cookies for various functions, such as maintaining user sessions or tracking user preferences, leverage the guidance and tooling provided to help you stay informed about the effective and responsible use of cookies.

If you are a **third-party service provider transitioning away from cookies**, you are responsible for developing third-party services that rely on cookies (such as tracking, data storage, or user session management), which need to transition to alternate methods due to evolving regulations and platform changes. Leverage the guidance and tooling available to help you integrate Privacy Sandbox APIs into your solutions, and helps troubleshoot any issues that may arise.
If you are a **third-party service provider transitioning away from cookies**, you are responsible for developing third-party services that rely on cookies (such as tracking, data storage, or user session management), which need to transition to alternate methods due to evolving regulations and platform changes. Leverage the guidance and tooling available to help you integrate Privacy Sandbox APIs into your solutions, and help troubleshoot any issues that may arise.

If you are a **Website owners or technology leader**, you are responsible for technical and business decision making, and you can leverage the guidance and tooling available to get a thorough understanding of the transformative shift that is taking place for 3P Cookies and the potential impact on user experience and privacy.
If you are a **Website owner or technology leader**, you are responsible for technical and business decision-making, and you can leverage the guidance and tooling available to get a thorough understanding of the transformative shift that is taking place for 3P Cookies and the potential impact on user experience and privacy.

Ultimately, the web ecosystem, together, will navigate successfully this crucial transition towards a more private web platform. Let's make it happen!


# Contributing
If you have requests for features you would like to see in this tool, please file an Feature Request or join as a contributor! Please refer to our contribution [guidelines](docs/CONTRIBUTING.md) and [code of conduct](docs/code-of-conduct.md).
If you have requests for features you would like to see in this tool, please file a Feature Request or join as a contributor! Please refer to our contribution [guidelines](docs/CONTRIBUTING.md) and [code of conduct](docs/code-of-conduct.md).

Another valuable form of contributing is by reporting breakages, proposing features, and engage in community discussions.
Another valuable form of contributing is by reporting breakages, proposing features, and engaging in community discussions.
16 changes: 8 additions & 8 deletions data/PSInfo.json
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
{
"private-state-token": {
"name": "Private State Token",
"description": "Allows websites and services to evaluate a user's authenticity without needing to know the user's identity. With this API, a website/service can issue a batch of Private State Tokens (renamed to Private state tokens from Trust Tokens) to a user's browser. The tokens are stored on the user's browser and can then be “redeemed” by other sites and services as a signal of the user's authenticity.",
"description": "Allows websites and services to evaluate a user's authenticity without needing to know the user's identity. With this API, a website/service can issue a batch of Private State Tokens (renamed to Private state tokens from Trust Tokens) to a user's browser. The tokens are stored on the users browser and can then be “redeemed” by other sites and services as a signal of the user's authenticity.",
"proposal": "https://github.com/WICG/trust-token-api",
"publicDiscussion": "https://github.com/WICG/trust-token-api/issues",
"videoOverview": "https://www.youtube.com/watch?v=bXB1Iwq6Eq4",
"devDocumentation": "https://developer.chrome.com/docs/privacy-sandbox/trust-tokens/"
},
"topics": {
"name": "Topics",
"description": "The Topics API is a Privacy Sandbox mechanism designed to preserve privacy while allowing a browser to share information with third parties about a user's interests. It enables interest-based advertising (IBA) without having to resort to tracking the sites a user visits.",
"description": "Provide a way for advertising to reach users based on interests inferred from the sites or apps the user visits, without needing to know the specific sites or apps the user has visited",
"proposal": "https://github.com/patcg-individual-drafts/topics",
"publicDiscussion": "https://github.com/patcg-individual-drafts/topics/issues",
"videoOverview": "https://youtu.be/hEBzWuXjeTQ",
"devDocumentation": "https://developer.chrome.com/docs/privacy-sandbox/topics/"
},
"protected-audience": {
"name": "Protected Audience (FLEDGE)",
"description": "The Protected Audience API is a Privacy Sandbox proposal to serve remarketing and custom audience use cases, designed so third parties cannot track user browsing behavior across sites.",
"description": "A proposal to serve remarketing and custom audience use cases by allowing custom defined interested groups to be stored on-device and allowing an on-device auction that then matches appropriate ads with people in a desired interest group.",
"proposal": "https://github.com/WICG/turtledove",
"publicDiscussion": "https://github.com/WICG/turtledove/issues",
"videoOverview": "https://www.youtube.com/watch?v=HkvmYKqnytw",
"devDocumentation": "https://developer.chrome.com/docs/privacy-sandbox/fledge-api/"
},
"attribution-reporting": {
"name": "Attribution Reporting",
"description": "The Attribution Reporting API is a Privacy Sandbox proposal to enable advertisers to measure the effectiveness of their ads without compromising user privacy.",
"description": "Allow the recording and matching of ad events with conversion events to occur on-device. </br> Event-level: Determine the effectiveness of specific ad interactions to help drive optimization. </br>Summary Reporting: Allows for more detail about the overall conversions (e.g. region, revenue, time of day, etc) that their advertising has delivered, while minimizing details about individual conversions.",
"proposal": "https://github.com/WICG/attribution-reporting-api",
"publicDiscussion": "https://github.com/WICG/attribution-reporting-api/issues",
"videoOverview": "https://www.youtube.com/watch?v=UGA74CIcom8",
"devDocumentation": "https://developer.chrome.com/docs/privacy-sandbox/attribution-reporting/"
},
"first-party-sets": {
"name": "First-Party Sets",
"description": "The First-Party Sets API is a Privacy Sandbox proposal to enable browsers to group multiple websites into a single first-party context, allowing them to share information with each other.",
"related-website-sets": {
"name": "Related Website Sets",
"description": "A new web platform mechanism that would allow a company that owns multiple sites to declare a collection of related domains as being in a Related Website Sets. Sites that are part of a Related Website Set would be able to access cookies across the set of included domains",
"proposal": "https://github.com/WICG/first-party-sets",
"publicDiscussion": "https://github.com/WICG/first-party-sets/issues",
"videoOverview": "https://www.youtube.com/watch?v=cNJ8mZ-J3F8",
Expand All @@ -49,7 +49,7 @@
},
"chips": {
"name": "Cookies Having Independent Partitioned State (CHIPS)",
"description": "CHIPS is a Privacy Sandbox proposal that will allow developers to opt a cookie into \"partitioned\" storage, with separate cookie jars per top-level site.",
"description": "A new way to enable 3rd party developers to access cookies on sites where their services are embedded on a per-site basis (meaning a different cookie on each site), restricting the ability to track users across sites.",
"proposal": "https://github.com/privacycg/CHIPS",
"publicDiscussion": "https://github.com/privacycg/CHIPS/issues",
"videoOverview": "",
Expand Down
Loading

0 comments on commit 4ed1eef

Please sign in to comment.