Closed Bug 1509047 Opened 10 months ago Closed 10 months ago

Implement the storage access API prompting heuristics

Categories

(Firefox :: Tracking Protection, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
Firefox 65
Tracking Status
firefox65 + fixed

People

(Reporter: ehsan, Assigned: ehsan)

References

Details

(Keywords: dev-doc-complete)

Attachments

(6 files)

We'd like to implement a set of heuristics for the storage access API to enable the browser to issue short-term permissions for sites requesting storage access without showing a doorhanger permission prompt initially.

These heuristics are defined here: https://docs.google.com/document/d/1NzpUbvVDAchXzl1CSqe4vMz4iLk1zmctFavQPg9MWJ4/edit
Depends on: 1503074
Keywords: leave-open
Pushed by eakhgari@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f8fc57f3ab64
Part 1: Add a permission manager API for enumerating all permissions with a type prefix r=nika
Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7f46f3f93ec7
Part 1: Add a permission manager API for enumerating all permissions with a type prefix r=nika
This was backed out by mistake. please ignore.
Flags: needinfo?(ehsan)
If this bug is needed for 65 nightly to beta merge, I'd like to track it for 65.
Pushed by eakhgari@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1aa87e9e3c71
Part 2: Add an API for measuring the number of unique origins visited in the past 24 hours r=johannh
https://hg.mozilla.org/integration/autoland/rev/cc9d468d6ba6
Part 3: Add support for automatically granting storage access permissions on a temporary session-based basis on the Gecko side r=baku
https://hg.mozilla.org/integration/autoland/rev/37172d2d6f99
Part 4: Add support for PermissionPromptPrototype.onBeforeShow() cancelling a prompt r=johannh
https://hg.mozilla.org/integration/autoland/rev/7bfa4179a341
Part 5: Add heuristics to the storage access API for automatically granting temporary session-scoped storage access without displaying a doorhanger prompt r=johannh
https://hg.mozilla.org/integration/autoland/rev/53f6c4e1f112
Part 6: Add an automated test for the heuristics for the automatic grants of temporary access in the storage access API r=baku
Backed out 5 changesets (Bug 1509047) for ES Lint failure.

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=53f6c4e1f112024f662351dd346a966f0fb77f8e

Backout link: https://hg.mozilla.org/integration/autoland/rev/0f4be93319f6df5739f29fed76288e0861a5b7d1

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=214521299&repo=autoland&lineNumber=72

[task 2018-11-29T01:19:54.938Z] creating build
[task 2018-11-29T01:19:54.938Z] creating build/temp.linux-x86_64-2.7
[task 2018-11-29T01:19:54.938Z] creating build/temp.linux-x86_64-2.7/psutil
[task 2018-11-29T01:19:54.938Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
[task 2018-11-29T01:19:54.938Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_posix.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o
[task 2018-11-29T01:19:54.938Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_linux.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_linux.o
[task 2018-11-29T01:19:54.938Z] creating build/lib.linux-x86_64-2.7
[task 2018-11-29T01:19:54.938Z] creating build/lib.linux-x86_64-2.7/psutil
[task 2018-11-29T01:19:54.938Z] x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/psutil/_psutil_common.o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o build/temp.linux-x86_64-2.7/psutil/_psutil_linux.o -o build/lib.linux-x86_64-2.7/psutil/_psutil_linux.so
[task 2018-11-29T01:19:54.938Z] building 'psutil._psutil_posix' extension
[task 2018-11-29T01:19:54.938Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
[task 2018-11-29T01:19:54.938Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_posix.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o
[task 2018-11-29T01:19:54.938Z] x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/psutil/_psutil_common.o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o -o build/lib.linux-x86_64-2.7/psutil/_psutil_posix.so
[task 2018-11-29T01:19:54.938Z] copying build/lib.linux-x86_64-2.7/psutil/_psutil_linux.so -> psutil
[task 2018-11-29T01:19:54.938Z] copying build/lib.linux-x86_64-2.7/psutil/_psutil_posix.so -> psutil
[task 2018-11-29T01:19:54.938Z] 
[task 2018-11-29T01:19:54.938Z] Error processing command. Ignoring because optional. (optional:packages.txt:comm/build/virtualenv_packages.txt)
[task 2018-11-29T01:25:48.902Z] TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/toolkit/components/antitracking/test/browser/browser_storageAccessDoorHanger.js:48:11 | 'ALLOW' is assigned a value but never used. (no-unused-vars)
[task 2018-11-29T01:25:48.902Z] TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/toolkit/components/antitracking/test/browser/browser_storageAccessDoorHanger.js:49:11 | 'ALLOW_ON_ANY_SITE' is assigned a value but never used. (no-unused-vars)
[taskcluster 2018-11-29 01:25:49.287Z] === Task Finished ===
[taskcluster 2018-11-29 01:25:49.287Z] Unsuccessful task run with exit code: 1 completed in 409.977 seconds
Flags: needinfo?(ehsan)
Pushed by eakhgari@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/33e74171331a
Part 2: Add an API for measuring the number of unique origins visited in the past 24 hours; r=johannh
https://hg.mozilla.org/integration/mozilla-inbound/rev/913a77710ba8
Part 3: Add support for automatically granting storage access permissions on a temporary session-based basis on the Gecko side; r=baku
https://hg.mozilla.org/integration/mozilla-inbound/rev/b51ddda4b7ca
Part 4: Add support for PermissionPromptPrototype.onBeforeShow() cancelling a prompt; r=johannh
https://hg.mozilla.org/integration/mozilla-inbound/rev/cb7e6dc0469e
Part 5: Add heuristics to the storage access API for automatically granting temporary session-scoped storage access without displaying a doorhanger prompt; r=johannh
https://hg.mozilla.org/integration/mozilla-inbound/rev/e54c1b4fa9c6
Part 6: Add an automated test for the heuristics for the automatic grants of temporary access in the storage access API; r=baku
Status: ASSIGNED → RESOLVED
Closed: 10 months ago
Flags: needinfo?(ehsan)
Keywords: leave-open
Resolution: --- → FIXED
Target Milestone: --- → Firefox 65
Any chance you could update the storage access API docs please, Steven?  Thanks!
Flags: needinfo?(senglehardt)
Keywords: dev-doc-needed
Depends on: 1511249
This bug has created a regression in bug 1511818
Flags: needinfo?(ehsan)
Being needinfo'ed in one bug is enough.  :-)
Flags: needinfo?(ehsan)
> Any chance you could update the storage access API docs please, Steven?  Thanks!

The docs have been updated to reflect the heuristics.
Flags: needinfo?(senglehardt)
You need to log in before you can comment on or make changes to this bug.