fune/browser/extensions/webcompat/experiment-apis/trackingProtection.json
Thomas Wisniewski 02c17994ff Bug 1624914 - Work around Google Trends sub-frame ETP breakage; r=johannh,denschub,webcompat-reviewers
Google Trends subframes are currently broken by dFPI protections, as they
expect the Google NID cookie to be present as per their set-cookie
response header, but it is being blocked.

This patch adds a new custom SmartBlock-style shim which:
- listens for requests made for Google Trends subframes.
- remembers their set-cookie response header.
- redirects the request right back to the same URL.
- subsequently passes along the saved cookie, preventing the breakage.

Differential Revision: https://phabricator.services.mozilla.com/D123372
2021-08-25 15:37:09 +00:00

100 lines
2.7 KiB
JSON

[
{
"namespace": "trackingProtection",
"description": "experimental API allow requests through ETP",
"functions": [
{
"name": "isDFPIActive",
"type": "function",
"description": "Returns whether dFPI is active for private/non-private browsing tabs",
"parameters": [{
"type": "boolean",
"name": "isPrivate"
}],
"async": true
},
{
"name": "shim",
"type": "function",
"description": "Set specified URL patterns as intended to be shimmed",
"parameters": [
{
"name": "allowlistId",
"description": "Identfier for the allow-list, so it may be added-to or revoked",
"type": "string"
},
{
"name": "patterns",
"description": "Array of match patterns",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "notHosts",
"description": "Hosts on which to not shim these patterns",
"type": "array",
"optional": true,
"items": {
"type": "string"
}
}
]
},
{
"name": "allow",
"type": "function",
"description": "Set specified URL patterns as intended to be allowed through the content blocker for the specified top hosts",
"parameters": [
{
"name": "allowlistId",
"description": "Identfier for the allow-list, so it may be added-to or revoked",
"type": "string"
},
{
"name": "patterns",
"description": "Array of match patterns",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "hosts",
"description": "Hosts to allow the patterns on",
"type": "array",
"items": {
"type": "string"
}
}
],
"async": true
},
{
"name": "revoke",
"type": "function",
"description": "Revokes the given allow-list entirely (both shims and allows)",
"parameters": [
{
"name": "allowListId",
"type": "string"
}
],
"async": true
},
{
"name": "wasRequestUnblocked",
"type": "function",
"description": "Whether the given requestId was unblocked by any allowList",
"parameters": [
{
"name": "requestId",
"type": "string"
}
],
"async": true
}
]
}
]