Closed Bug 1777497 Opened 3 years ago Closed 3 years ago

Add a doorhanger to the forward declared storage access API

Categories

(Core :: Privacy: Anti-Tracking, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
105 Branch
Tracking Status
firefox105 --- fixed

People

(Reporter: bvandersloot, Assigned: bvandersloot)

References

Details

Attachments

(4 files, 1 obsolete file)

No description provided.
Assignee: nobody → bvandersloot
Status: NEW → ASSIGNED

While working on this bug I bumped into a few things I would have done
differently that make it harder to misuse the site-scoped permissions.
These are just bugs waiting to happen, so I'm cleaning them up while I'm in here.

Depends on D151281

Comment on attachment 9287060 [details]
Bug 1777497, part 5 - Clean up site scope permission code, r=#anti-tracking!

Revision D152760 was moved to bug 1782526. Setting attachment 9287060 [details] to obsolete.

Attachment #9287060 - Attachment is obsolete: true
Pushed by bvandersloot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fd74aafff8a7 part 1 - Change StorageAccessPermissionRequest to allow an option specifying the top level domain, r=anti-tracking-reviewers,pbz https://hg.mozilla.org/integration/autoland/rev/a64c8ee85a42 part 2 - Make "finalChecks" callback creation easier to use flexibly, r=anti-tracking-reviewers,pbz,timhuang https://hg.mozilla.org/integration/autoland/rev/85e6b889e139 part 3 - Require a grant (auto or manual) for the requestStorageAccessUnderSite permission, r=timhuang,pbz,anti-tracking-reviewers https://hg.mozilla.org/integration/autoland/rev/cbc8344b02ac part 4 - Add doorhanger tests for the Top Level Storage Access API, r=anti-tracking-reviewers,pbz

Backed out for causing gv-junit failures.

Push with failures

Failure log

Backout link

[task 2022-08-01T22:18:45.263Z] 22:18:45     INFO -  TEST-START | org.mozilla.geckoview.test.NavigationDelegateTest#loadString
[task 2022-08-01T22:18:45.334Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: numtests=933
[task 2022-08-01T22:18:45.334Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stream=
[task 2022-08-01T22:18:45.334Z] 22:18:45     INFO -  org.mozilla.geckoview.test | Error in loadString(org.mozilla.geckoview.test.NavigationDelegateTest):
[task 2022-08-01T22:18:45.335Z] 22:18:45     INFO -  org.mozilla.geckoview.test | java.lang.AssertionError: onLocationChange should be called specified number of times
[task 2022-08-01T22:18:45.335Z] 22:18:45     INFO -  org.mozilla.geckoview.test | Expected: <1>
[task 2022-08-01T22:18:45.335Z] 22:18:45     INFO -  org.mozilla.geckoview.test |      but: was <0>
[task 2022-08-01T22:18:45.335Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
[task 2022-08-01T22:18:45.335Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.junit.Assert.assertThat(Assert.java:956)
[task 2022-08-01T22:18:45.336Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
[task 2022-08-01T22:18:45.336Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
[task 2022-08-01T22:18:45.336Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
[task 2022-08-01T22:18:45.336Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.checkThat(GeckoSessionTestRule.java:901)
[task 2022-08-01T22:18:45.337Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.assertMatchesCount(GeckoSessionTestRule.java:937)
[task 2022-08-01T22:18:45.337Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.forCallbacksDuringWait(GeckoSessionTestRule.java:1940)
[task 2022-08-01T22:18:45.338Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.forCallbacksDuringWait(GeckoSessionTestRule.java:1850)
[task 2022-08-01T22:18:45.338Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.NavigationDelegateTest.loadString(NavigationDelegateTest.kt:1316)
[task 2022-08-01T22:18:45.338Z] 22:18:45     INFO -  org.mozilla.geckoview.test |
[task 2022-08-01T22:18:45.338Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
[task 2022-08-01T22:18:45.338Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: test=loadString
[task 2022-08-01T22:18:45.338Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: class=org.mozilla.geckoview.test.NavigationDelegateTest
[task 2022-08-01T22:18:45.339Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: onLocationChange should be called specified number of times
[task 2022-08-01T22:18:45.339Z] 22:18:45     INFO -  org.mozilla.geckoview.test | Expected: <1>
[task 2022-08-01T22:18:45.339Z] 22:18:45     INFO -  org.mozilla.geckoview.test |      but: was <0>
[task 2022-08-01T22:18:45.339Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
[task 2022-08-01T22:18:45.340Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.junit.Assert.assertThat(Assert.java:956)
[task 2022-08-01T22:18:45.340Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
[task 2022-08-01T22:18:45.340Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
[task 2022-08-01T22:18:45.340Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
[task 2022-08-01T22:18:45.340Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.checkThat(GeckoSessionTestRule.java:901)
[task 2022-08-01T22:18:45.341Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.assertMatchesCount(GeckoSessionTestRule.java:937)
[task 2022-08-01T22:18:45.341Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.forCallbacksDuringWait(GeckoSessionTestRule.java:1940)
[task 2022-08-01T22:18:45.341Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.forCallbacksDuringWait(GeckoSessionTestRule.java:1850)
[task 2022-08-01T22:18:45.341Z] 22:18:45     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.NavigationDelegateTest.loadString(NavigationDelegateTest.kt:1316)
[task 2022-08-01T22:18:45.341Z] 22:18:45     INFO -  org.mozilla.geckoview.test |
[task 2022-08-01T22:18:45.342Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: current=402
[task 2022-08-01T22:18:45.342Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS_CODE: -2
[task 2022-08-01T22:18:45.342Z] 22:18:45     INFO -  Printing logcat for test:
[task 2022-08-01T22:18:45.405Z] 22:18:45     INFO -  08-01 22:18:44.303 E/GeckoSessionTestRule( 3425): test_start 1f0befec-3ff2-40ff-89cf-b127eb38b1ec loadString(org.mozilla.geckoview.test.NavigationDelegateTest)
[task 2022-08-01T22:18:45.405Z] 22:18:45     INFO -  08-01 22:18:44.303 E/GeckoSessionTestRule( 3425): before prepareStatement loadString(org.mozilla.geckoview.test.NavigationDelegateTest)
<...>
[task 2022-08-01T22:18:45.423Z] 22:18:45     INFO -  08-01 22:18:44.368 D/GeckoSession( 3425): handleMessage GeckoView:PageStop uri=null
[task 2022-08-01T22:18:45.423Z] 22:18:45     INFO -  08-01 22:18:44.369 D/GeckoViewContentDelegateParent( 3425): receiveMessage: DispatcherMessage
[task 2022-08-01T22:18:45.423Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): Error
[task 2022-08-01T22:18:45.423Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): java.lang.AssertionError: onLocationChange should be called specified number of times
[task 2022-08-01T22:18:45.423Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): Expected: <1>
[task 2022-08-01T22:18:45.423Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425):      but: was <0>
[task 2022-08-01T22:18:45.424Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
[task 2022-08-01T22:18:45.424Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.Assert.assertThat(Assert.java:956)
[task 2022-08-01T22:18:45.424Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
[task 2022-08-01T22:18:45.424Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
[task 2022-08-01T22:18:45.424Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
[task 2022-08-01T22:18:45.424Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.checkThat(GeckoSessionTestRule.java:901)
[task 2022-08-01T22:18:45.424Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.assertMatchesCount(GeckoSessionTestRule.java:937)
[task 2022-08-01T22:18:45.425Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.forCallbacksDuringWait(GeckoSessionTestRule.java:1940)
[task 2022-08-01T22:18:45.425Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.forCallbacksDuringWait(GeckoSessionTestRule.java:1850)
[task 2022-08-01T22:18:45.425Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.mozilla.geckoview.test.NavigationDelegateTest.loadString(NavigationDelegateTest.kt:1316)
[task 2022-08-01T22:18:45.425Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at java.lang.reflect.Method.invoke(Native Method)
[task 2022-08-01T22:18:45.425Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[task 2022-08-01T22:18:45.425Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[task 2022-08-01T22:18:45.426Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[task 2022-08-01T22:18:45.426Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[task 2022-08-01T22:18:45.426Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
[task 2022-08-01T22:18:45.426Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2.lambda$evaluate$0$org-mozilla-geckoview-test-rule-GeckoSessionTestRule$2(GeckoSessionTestRule.java:1465)
[task 2022-08-01T22:18:45.426Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2$$ExternalSyntheticLambda0.run(Unknown Source)
[task 2022-08-01T22:18:45.426Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
[task 2022-08-01T22:18:45.427Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
[task 2022-08-01T22:18:45.427Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1950)
[task 2022-08-01T22:18:45.427Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2022-08-01T22:18:45.427Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2022-08-01T22:18:45.427Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at android.os.Looper.loop(Looper.java:154)
[task 2022-08-01T22:18:45.427Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at android.app.ActivityThread.main(ActivityThread.java:6077)
[task 2022-08-01T22:18:45.427Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at java.lang.reflect.Method.invoke(Native Method)
[task 2022-08-01T22:18:45.427Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
[task 2022-08-01T22:18:45.428Z] 22:18:45     INFO -  08-01 22:18:44.370 E/GeckoSessionTestRule( 3425): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
[task 2022-08-01T22:18:45.428Z] 22:18:45     INFO -  08-01 22:18:44.371 D/GeckoViewContent( 3425): handleEvent: DOMWindowClose
[task 2022-08-01T22:18:45.428Z] 22:18:45     INFO -  08-01 22:18:44.371 D/GeckoViewConsole( 3425): onEvent GeckoView:WebExtension:List null
[task 2022-08-01T22:18:45.428Z] 22:18:45     INFO -  08-01 22:18:44.373 E/GeckoSessionTestRule( 3425): test_end c5ee677f-bc83-49bd-9e28-2d35f3d0f059 loadString(org.mozilla.geckoview.test.NavigationDelegateTest)
[task 2022-08-01T22:18:45.428Z] 22:18:45  WARNING -  TEST-UNEXPECTED-FAIL | org.mozilla.geckoview.test.NavigationDelegateTest#loadString | java.lang.AssertionError: onLocationChange should be called specified number of times
[task 2022-08-01T22:18:45.428Z] 22:18:45     INFO -  TEST-INFO took 142ms
[task 2022-08-01T22:18:45.429Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: numtests=933
[task 2022-08-01T22:18:45.429Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stream=
[task 2022-08-01T22:18:45.429Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
[task 2022-08-01T22:18:45.429Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: test=loadLongDataUriToplevelIndirect
[task 2022-08-01T22:18:45.429Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: class=org.mozilla.geckoview.test.NavigationDelegateTest
[task 2022-08-01T22:18:45.429Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: current=403
[task 2022-08-01T22:18:45.429Z] 22:18:45     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS_CODE: 1
[task 2022-08-01T22:18:45.429Z] 22:18:45     INFO -  TEST-START | org.mozilla.geckoview.test.NavigationDelegateTest#loadLongDataUriToplevelIndirect
Flags: needinfo?(bvandersloot)

The bug here is in the use of the PermissionManager in geckoview's navigation module. This bug was opened and will be a blocker for landing.

Flags: needinfo?(bvandersloot)
Depends on: 1782526
Pushed by bvandersloot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/620681c22b83 part 1 - Change StorageAccessPermissionRequest to allow an option specifying the top level domain, r=anti-tracking-reviewers,pbz https://hg.mozilla.org/integration/autoland/rev/f541ad605d6d part 2 - Make "finalChecks" callback creation easier to use flexibly, r=anti-tracking-reviewers,pbz,timhuang https://hg.mozilla.org/integration/autoland/rev/820f6f9c9cc3 part 3 - Require a grant (auto or manual) for the requestStorageAccessUnderSite permission, r=timhuang,pbz,anti-tracking-reviewers https://hg.mozilla.org/integration/autoland/rev/381806d5afc3 part 4 - Add doorhanger tests for the Top Level Storage Access API, r=anti-tracking-reviewers,pbz

Backed out for causing build bustages on PContent.ipdl

Backout link

Push with failures

Failure log

Flags: needinfo?(bvandersloot)
Pushed by bvandersloot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/feb6f0b46461 part 1 - Change StorageAccessPermissionRequest to allow an option specifying the top level domain, r=anti-tracking-reviewers,pbz https://hg.mozilla.org/integration/autoland/rev/c949437e50bd part 2 - Make "finalChecks" callback creation easier to use flexibly, r=anti-tracking-reviewers,pbz,timhuang https://hg.mozilla.org/integration/autoland/rev/d1e1dd469beb part 3 - Require a grant (auto or manual) for the requestStorageAccessUnderSite permission, r=timhuang,pbz,anti-tracking-reviewers https://hg.mozilla.org/integration/autoland/rev/ef771b647883 part 4 - Add doorhanger tests for the Top Level Storage Access API, r=anti-tracking-reviewers,pbz
Flags: needinfo?(bvandersloot)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: