Closed Bug 1708243 Opened 4 years ago Closed 4 years ago

Stop depending on framescripts with `ExtensionGlobal`

Categories

(WebExtensions :: General, defect, P2)

defect

Tracking

(Fission Milestone:MVP, firefox-esr78 wontfix, firefox-esr91 wontfix, firefox92 wontfix, firefox93 wontfix, firefox94 wontfix, firefox95 fixed)

RESOLVED FIXED
95 Branch
Fission Milestone MVP
Tracking Status
firefox-esr78 --- wontfix
firefox-esr91 --- wontfix
firefox92 --- wontfix
firefox93 --- wontfix
firefox94 --- wontfix
firefox95 --- fixed

People

(Reporter: nika, Assigned: zombie)

References

(Blocks 3 open bugs)

Details

(Whiteboard: fission-soft-blocker)

Attachments

(4 files)

Currently, whenever a messagemanager for a tab is created, a tab-content-frameloader-created notification is fired from a framescript loaded by an extension. As we don't load framescripts for out-of-process subframes, this means that the observer notification to create ExtensionGlobal objects (https://searchfox.org/mozilla-central/rev/3aef835f6cb12e607154d56d68726767172571e4/toolkit/components/extensions/ExtensionProcessScript.jsm#146-150) will never fire, and any functionality tied to these objects will be broken in extension code for out-of-process iframes.

It appears this functionality is largely used to implement getFrameData which is used to fetch information about tabId, windowId, devtoolsToolboxInfo, and viewType for a particular frame. These getters will likely behave incorrectly in cross-origin subframes.

Fission M8

Severity: -- → S3
Fission Milestone: ? → M8
Priority: -- → P2

Assigning to zombie as he's looking into this.

Assignee: nobody → tomica
Status: NEW → ASSIGNED

Tom, what's the latest status for this?

Flags: needinfo?(tomica)

This bug is a soft blocker for Fission M8. We'd like to fix it before our M8 Release experiment, but we won't delay the experiment waiting for it.

Whiteboard: fission-soft-blocker

Tomislav recommended we move this bug from Fission Milestone M8 to MVP because he would not feel comfortable uplifting a fix to Beta.

Fission Milestone: M8 → MVP

Also remove windowId getters from Context classes, as they're largely unused.

Attachment #9237213 - Attachment description: WIP: Bug 1708243 - Part 1: Stop using FrameData for windowId in the child process → Bug 1708243 - Part 1: Stop using FrameData for windowId in the child process
Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2f684ad43258 Part 1: Stop using FrameData for windowId in the child process r=robwu

There will be 4-5 patches, probably all independent, I'll be landing each separately.

Flags: needinfo?(tomica)
Keywords: leave-open
Blocks: 1612390
Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e49874b751fa Part 2: stop using sender data from the child process r=robwu,agi

There's something wrong with the order of above messages, I didn't push the same patch again (without changes) after it got backed out, it seems that notification is just late.

Flags: needinfo?(tomica)
Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/38cfb452cecf Part 2: stop using sender data from the child process r=robwu,agi

Backed out changeset 38cfb452cecf (Bug 1708243) for causing mochitest failures on test_ext_tabs_sendMessage.html.
Backout link
Push with failures
Failure Log

Flags: needinfo?(tomica)
Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1395c54325a7 Part 2: stop using sender data from the child process r=robwu,agi

Backed out changeset 1395c54325a7 (Bug 1708243) for causing gv-junit failures.
Backout link
Push with failures
Failure Log

Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f966b7898d9f Part 2: stop using sender data from the child process r=robwu,agi

Backed out for causing geckoview failures.

[task 2021-08-31T14:52:00.781Z] 14:52:00     INFO -  TEST-START | org.mozilla.geckoview.test.AccessibilityTest#testLiveRegionImage
[task 2021-08-31T14:52:32.136Z] 14:52:32     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: numtests=796
[task 2021-08-31T14:52:32.136Z] 14:52:32     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stream=
[task 2021-08-31T14:52:32.136Z] 14:52:32     INFO -  org.mozilla.geckoview.test | Error in testLiveRegionImage(org.mozilla.geckoview.test.AccessibilityTest):
[task 2021-08-31T14:52:32.136Z] 14:52:32     INFO -  org.mozilla.geckoview.test | org.mozilla.geckoview.test.util.UiThreadUtils$TimeoutException: Timed out after 30000ms
[task 2021-08-31T14:52:32.137Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.util.UiThreadUtils$TimeoutRunnable.run(UiThreadUtils.java:50)
[task 2021-08-31T14:52:32.137Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2021-08-31T14:52:32.137Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2021-08-31T14:52:32.137Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.util.UiThreadUtils.waitForCondition(UiThreadUtils.java:153)
[task 2021-08-31T14:52:32.137Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.evaluateJS(GeckoSessionTestRule.java:1901)
[task 2021-08-31T14:52:32.138Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.BaseSessionTest.evaluateJS(BaseSessionTest.kt:188)
[task 2021-08-31T14:52:32.138Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.AccessibilityTest.testLiveRegionImage(AccessibilityTest.kt:971)
[task 2021-08-31T14:52:32.138Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at java.lang.reflect.Method.invoke(Native Method)
[task 2021-08-31T14:52:32.138Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[task 2021-08-31T14:52:32.138Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[task 2021-08-31T14:52:32.139Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[task 2021-08-31T14:52:32.139Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[task 2021-08-31T14:52:32.139Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at androidx.test.internal.runner.junit4.statement.RunBefores.evaluate(RunBefores.java:80)
[task 2021-08-31T14:52:32.139Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at androidx.test.internal.runner.junit4.statement.RunAfters.evaluate(RunAfters.java:61)
[task 2021-08-31T14:52:32.140Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2.lambda$evaluate$0$GeckoSessionTestRule$2(GeckoSessionTestRule.java:1315)
[task 2021-08-31T14:52:32.140Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.-$$Lambda$GeckoSessionTestRule$2$cmP_QJg-X16GIlt8KIQd32egmfU.run(lambda)
[task 2021-08-31T14:52:32.140Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1950)
[task 2021-08-31T14:52:32.140Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2021-08-31T14:52:32.140Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2021-08-31T14:52:32.141Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Looper.loop(Looper.java:154)
[task 2021-08-31T14:52:32.141Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.app.ActivityThread.main(ActivityThread.java:6077)
[task 2021-08-31T14:52:32.141Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at java.lang.reflect.Method.invoke(Native Method)
[task 2021-08-31T14:52:32.141Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
[task 2021-08-31T14:52:32.141Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
[task 2021-08-31T14:52:32.141Z] 14:52:32     INFO -  org.mozilla.geckoview.test |
[task 2021-08-31T14:52:32.142Z] 14:52:32     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
[task 2021-08-31T14:52:32.142Z] 14:52:32     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: test=testLiveRegionImage
[task 2021-08-31T14:52:32.142Z] 14:52:32     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: class=org.mozilla.geckoview.test.AccessibilityTest
[task 2021-08-31T14:52:32.142Z] 14:52:32     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stack=org.mozilla.geckoview.test.util.UiThreadUtils$TimeoutException: Timed out after 30000ms
[task 2021-08-31T14:52:32.143Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.util.UiThreadUtils$TimeoutRunnable.run(UiThreadUtils.java:50)
[task 2021-08-31T14:52:32.143Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2021-08-31T14:52:32.143Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2021-08-31T14:52:32.143Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.util.UiThreadUtils.waitForCondition(UiThreadUtils.java:153)
[task 2021-08-31T14:52:32.143Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.evaluateJS(GeckoSessionTestRule.java:1901)
[task 2021-08-31T14:52:32.144Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.BaseSessionTest.evaluateJS(BaseSessionTest.kt:188)
[task 2021-08-31T14:52:32.144Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.AccessibilityTest.testLiveRegionImage(AccessibilityTest.kt:971)
[task 2021-08-31T14:52:32.144Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at java.lang.reflect.Method.invoke(Native Method)
[task 2021-08-31T14:52:32.144Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[task 2021-08-31T14:52:32.144Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[task 2021-08-31T14:52:32.144Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[task 2021-08-31T14:52:32.145Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[task 2021-08-31T14:52:32.145Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at androidx.test.internal.runner.junit4.statement.RunBefores.evaluate(RunBefores.java:80)
[task 2021-08-31T14:52:32.145Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at androidx.test.internal.runner.junit4.statement.RunAfters.evaluate(RunAfters.java:61)
[task 2021-08-31T14:52:32.145Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2.lambda$evaluate$0$GeckoSessionTestRule$2(GeckoSessionTestRule.java:1315)
[task 2021-08-31T14:52:32.145Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.-$$Lambda$GeckoSessionTestRule$2$cmP_QJg-X16GIlt8KIQd32egmfU.run(lambda)
[task 2021-08-31T14:52:32.146Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1950)
[task 2021-08-31T14:52:32.146Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2021-08-31T14:52:32.146Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2021-08-31T14:52:32.146Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.os.Looper.loop(Looper.java:154)
[task 2021-08-31T14:52:32.146Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at android.app.ActivityThread.main(ActivityThread.java:6077)
[task 2021-08-31T14:52:32.146Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at java.lang.reflect.Method.invoke(Native Method)
[task 2021-08-31T14:52:32.147Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
[task 2021-08-31T14:52:32.147Z] 14:52:32     INFO -  org.mozilla.geckoview.test | 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
[task 2021-08-31T14:52:32.147Z] 14:52:32     INFO -  org.mozilla.geckoview.test |
[task 2021-08-31T14:52:32.147Z] 14:52:32     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: current=1
[task 2021-08-31T14:52:32.147Z] 14:52:32     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS_CODE: -2
[task 2021-08-31T14:52:32.147Z] 14:52:32     INFO -  Printing logcat for test:
[task 2021-08-31T14:52:32.171Z] 14:52:32     INFO -  08-31 14:51:59.905 E/GeckoSessionTestRule( 3451): test_start 1f0befec-3ff2-40ff-89cf-b127eb38b1ec testLiveRegionImage(org.mozilla.geckoview.test.AccessibilityTest)
[task 2021-08-31T14:52:32.171Z] 14:52:32     INFO -  08-31 14:51:59.905 E/GeckoSessionTestRule( 3451): before prepareStatement testLiveRegionImage(org.mozilla.geckoview.test.AccessibilityTest)
[task 2021-08-31T14:52:32.171Z] 14:52:32     INFO -  08-31 14:51:59.907 D/GeckoThread( 3451): State changed to MOZGLUE_READY
[..]
[task 2021-08-31T14:52:32.204Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): Error
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): org.mozilla.geckoview.test.util.UiThreadUtils$TimeoutException: Timed out after 30000ms
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.mozilla.geckoview.test.util.UiThreadUtils$TimeoutRunnable.run(UiThreadUtils.java:50)
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.mozilla.geckoview.test.util.UiThreadUtils.waitForCondition(UiThreadUtils.java:153)
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.evaluateJS(GeckoSessionTestRule.java:1901)
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.mozilla.geckoview.test.BaseSessionTest.evaluateJS(BaseSessionTest.kt:188)
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.mozilla.geckoview.test.AccessibilityTest.testLiveRegionImage(AccessibilityTest.kt:971)
[task 2021-08-31T14:52:32.205Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at java.lang.reflect.Method.invoke(Native Method)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at androidx.test.internal.runner.junit4.statement.RunBefores.evaluate(RunBefores.java:80)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at androidx.test.internal.runner.junit4.statement.RunAfters.evaluate(RunAfters.java:61)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2.lambda$evaluate$0$GeckoSessionTestRule$2(GeckoSessionTestRule.java:1315)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at org.mozilla.geckoview.test.rule.-$$Lambda$GeckoSessionTestRule$2$cmP_QJg-X16GIlt8KIQd32egmfU.run(lambda)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1950)
[task 2021-08-31T14:52:32.206Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at android.os.Looper.loop(Looper.java:154)
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at android.app.ActivityThread.main(ActivityThread.java:6077)
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at java.lang.reflect.Method.invoke(Native Method)
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.227 E/GeckoSessionTestRule( 3451): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.228 D/EGL_emulation( 3451): eglMakeCurrent: 0x7b648cbf6f20: ver 3 0 (tinfo 0x7b648cb05180)
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.229 D/        ( 3451): HostConnection::get() New Host Connection established 0x7b6484c30aa0, tid 3451
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.230 D/GeckoViewContent( 3451): handleEvent: DOMWindowClose
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.231 D/GeckoViewConsole( 3451): onEvent GeckoView:WebExtension:List null
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  08-31 14:52:31.239 E/GeckoSessionTestRule( 3451): test_end c5ee677f-bc83-49bd-9e28-2d35f3d0f059 testLiveRegionImage(org.mozilla.geckoview.test.AccessibilityTest)
[task 2021-08-31T14:52:32.207Z] 14:52:32  WARNING -  TEST-UNEXPECTED-FAIL | org.mozilla.geckoview.test.AccessibilityTest#testLiveRegionImage | org.mozilla.geckoview.test.util.UiThreadUtils$TimeoutException: Timed out after 30000ms
[task 2021-08-31T14:52:32.207Z] 14:52:32     INFO -  TEST-INFO took 31391ms
Flags: needinfo?(tomica)
Flags: needinfo?(tomica)

The regression is due to the internal format change of sender.

GeckoViewConnection was passed sender from the content originally, but it was replaced with the return value of getSender:

The generated sender is send to the Java part as the GeckoView:WebExtension:Message at https://searchfox.org/mozilla-central/rev/ad2ffab089e4e0c0fe99a1a046ab2b1c45546bdb/mobile/android/modules/geckoview/GeckoViewWebExtension.jsm#261,264,270,274-275

The sender is used at the Java side at https://searchfox.org/mozilla-central/rev/ad2ffab089e4e0c0fe99a1a046ab2b1c45546bdb/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebExtensionController.java#727-735

The extensionFromBundle method reads the extension ID, expecting an extensionId property at https://searchfox.org/mozilla-central/rev/ad2ffab089e4e0c0fe99a1a046ab2b1c45546bdb/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebExtensionController.java#1232-1233

The "native messaging implementation also parses the sender parameter (expecting envType, url and frameId) at https://searchfox.org/mozilla-central/rev/ad2ffab089e4e0c0fe99a1a046ab2b1c45546bdb/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebExtensionController.java#1065-1118

To fix this, make sure that all parts are consistent with each other:

Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a269440d7e21 Part 2: stop using sender data from the child process r=robwu,agi
Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2dc4f1baccc8 Part 2: stop using sender data from the child process r=robwu,agi
See Also: → 1728669
Regressions: 1729395
Attachment #9242958 - Attachment description: Bug 1708243 - Part 3: Use actor messaging for tabs.detectLanguage, remove some code, r=robwu → Bug 1708243 - Part 3: Use actor messaging for tabs.detectLanguage, stop loading MessageChannel.jsm, r=robwu
Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ba4181aa572e Part 3: Use actor messaging for tabs.detectLanguage, stop loading MessageChannel.jsm, r=robwu

== Change summary for alert #31653 (as of Mon, 04 Oct 2021 04:46:18 GMT) ==

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
4% Base Content JS windows10-64-2004-shippable-qr 1,922,033.33 -> 1,842,554.67
4% Base Content JS linux1804-64-shippable-qr 1,915,621.33 -> 1,837,546.00
4% Base Content JS macosx1015-64-shippable-qr fission 1,709,869.33 -> 1,640,480.00
4% Base Content JS windows10-64-2004-shippable-qr fission 1,714,817.33 -> 1,645,382.00
4% Base Content JS macosx1015-64-shippable-qr 1,916,318.67 -> 1,840,208.00
... ... ... ... ...
3% Base Content JS windows10-64-2004-shippable-qr 1,900,637.33 -> 1,842,741.33

For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=31653

Setting status-firefox94=affected because zombie says he is working on final part 4 this week and would like to uplift it to Beta 94.

Attachment #9244677 - Attachment description: Bug 1708243 - Part 4: Stop using onExtensionBrowser.js and other framescripts for FrameData r=rpl → Bug 1708243 - Part 4: Remove tab-content.js and onExtensionBrowser.js, stop touching .content eagerly r=robwu
Pushed by tjovanovic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/eae84d671437 Part 4: Remove tab-content.js and onExtensionBrowser.js, stop touching .content eagerly r=robwu

== Change summary for alert #31815 (as of Tue, 12 Oct 2021 03:18:42 GMT) ==

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
1% Base Content JS macosx1015-64-shippable-qr fission 1,645,072.00 -> 1,635,818.67
1% Base Content JS linux1804-64-shippable-qr 1,845,872.00 -> 1,836,535.33
1% Base Content JS macosx1015-64-shippable-qr 1,848,896.00 -> 1,839,722.67
1% Base Content JS windows10-64-2004-shippable-qr 1,851,578.67 -> 1,842,320.00
0.48% Base Content JS linux1804-64-shippable-qr fission 1,646,334.00 -> 1,638,357.33
0.47% Base Content JS windows10-64-2004-shippable-qr fission 1,650,016.00 -> 1,642,180.67

For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=31815

Potential regression from Part 4 in bug 1735347, though still not clear, waiting for reliable STR/verification.

Regressions: 1735347

Closing this as all planned parts landed. Will continue potential regression investigation in bug 1735347, and potential uplift based on that.

Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 95 Branch
Blocks: 1580774

Sorry, I realise this possibly isn't the right way to raise this. I'm sure someone will point me in the right direction if needs be.

This patch has impacted the functionality of Lastpass, it now appears blank in a private window - I narrowed the issue down using mozregression. Given that more than 680,000 Firefox users have Lastpass installed, and it is a "Recommended Extension", I believe this has a significant user impact. I have contacted Lastpass, including giving them the precise details of this patch, and they will not engage with me, they feel it is a Firefox issue.

(In reply to Patrick from comment #39)

Sorry, I realise this possibly isn't the right way to raise this. I'm sure someone will point me in the right direction if needs be.

This patch has impacted the functionality of Lastpass, it now appears blank in a private window - I narrowed the issue down using mozregression. Given that more than 680,000 Firefox users have Lastpass installed, and it is a "Recommended Extension", I believe this has a significant user impact. I have contacted Lastpass, including giving them the precise details of this patch, and they will not engage with me, they feel it is a Firefox issue.

I just installed LastPass in a new Firefox profile, granted access to Private Browsing mode, and clicked on the LastPass button. The panel is not blank. If you are consistently able to reproduce this bug, could you file a new bug with the reproduction steps? A video with reproduction steps may also help.

Regressions: 1748158
Blocks: 1628178
No longer blocks: 1628178
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: