Closed Bug 1676803 Opened 11 months ago Closed 5 months ago

Build the Remote Agent on Android

Categories

(Remote Protocol :: Agent, enhancement, P2)

enhancement
Points:
2

Tracking

(firefox90 fixed)

RESOLVED FIXED
90 Branch
Tracking Status
firefox90 --- fixed

People

(Reporter: whimboo, Assigned: whimboo)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [bidi-m1-mvp])

Attachments

(3 files, 3 obsolete files)

As of now the Remote Agent only gets build for desktop. When we are getting started to implement WebDriver BiDi support, and want to share code between those two protocols, support for all platforms is required.

As such we should try to let the Remote Agent being built on Android too. That way we can check if we have missing platform dependencies, which could maybe fixed within the next weeks. I don't want to see us blocked early next year.

Note that the build job is just fine:
https://treeherder.mozilla.org/jobs?repo=try&revision=ec72dac039bef7d8ff463982c1213f87be2ab23e

But the problem here are the remote browser chrome tests that cannot be run on Android. As such we would have to convert the tests to plain mochitests and make use of SpecialPower (maybe that would be enough?), or rewrite all the tests as web-platform-tests. Given that both options will take a fair amount of time, I don't think it's feasible to do that work right now.

Given that we don't want to ship Android support that is basically untested, lets wait until we get started with WebDriver BiDi work.

Priority: P2 → P3
Assignee: nobody → dlee
Status: NEW → ASSIGNED
Assignee: dlee → nobody
Status: ASSIGNED → NEW

We would need that for WebDriver BiDi support. As such we should start building the Remote Agent on Android.

Priority: P3 → --
Whiteboard: [puppeteer-beta2-mvp] → [bidi-m1-mvp]
Blocks: 1693993
Blocks: 1690252

Enabling the Remote Agent for Android we currently won't be able to run any tests given that browser-chrome mochitests are specifically for desktop. On Android only the plain mochitests can be run.

As such I'm feeling not comfortable to enable Android support right now, but would suggest to wait (at least) until the transportation layer for BiDi has been implemented as tracked via the meta bug 1691396.

No longer blocks: 1693993
Depends on: 1691396
Blocks: 1693993
No longer blocks: 1690252
Points: --- → 3
Priority: -- → P2
Points: 3 → 2
Assignee: nobody → jdescottes
Status: NEW → ASSIGNED

Not urgent unassigning to focus on the BiDi architecture.

Assignee: jdescottes → nobody
Status: ASSIGNED → NEW

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #7)

As such I'm feeling not comfortable to enable Android support right now, but would suggest to wait (at least) until the transportation layer for BiDi has been implemented as tracked via the meta bug 1691396.

This would actually end-up in a circular dependency. To get the transportation layer implemented we actually already have to share some modules with Marionette, e.g session.js, and capabilities.js. As such moving those under /remote/ would be great. But therefore we have to build the Remote Agent on Android.

I'll have a look at this bug.

No longer depends on: 1691396
Assignee: nobody → hskupin
Status: NEW → ASSIGNED
Blocks: 1691396
Depends on: 1704998
Attachment #9215710 - Attachment is obsolete: true
Blocks: 1705003
Blocks: 1690252
Blocks: 1698968

Lets make bug 1705003 actually blocking us enabling the Remote Agent on Android.

No longer blocks: 1705003
Depends on: 1705003

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #13)

Lets make bug 1705003 actually blocking us enabling the Remote Agent on Android.

Just discussed this with Julian and we both agreed that we should swap this again. Having the Remote Agent built on Android would be great to have, which would allow me to use artifact builds early next week for getting bug 1705003 fixed.

Blocks: 1705003
No longer depends on: 1705003
Pushed by hskupin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6c62669cb5f0
Make the Remote Agent part of remote debugging within GeckoView. r=geckoview-reviewers,agi
https://hg.mozilla.org/integration/autoland/rev/368bc78b72f1
[remote] Enable Remote Agent on Android. r=firefox-build-system-reviewers,mhentges,glandium

Backed out for xpcshell failures on test_StreamRegistry.js

backout: https://hg.mozilla.org/integration/autoland/rev/077cee4e6dcce923a5b7e8c54014660e60a15e82

push: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&revision=368bc78b72f16ce7752b25cc6e342a2299f80eab&selectedTaskRun=Z52N7v9ZSNC15gN_GmISXA.0

failure log: https://treeherder.mozilla.org/logviewer?job_id=337456853&repo=autoland&lineNumber=5647

[task 2021-04-22T15:33:42.208Z] 15:33:42     INFO -  TEST-START | remote/cdp/test/xpcshell/test_StreamRegistry.js
[task 2021-04-22T15:33:42.234Z] 15:33:42     INFO -  adb launch_application: am startservice -W -n 'org.mozilla.geckoview.test/org.mozilla.geckoview.test.XpcshellTestRunnerService$i0' -a android.intent.action.MAIN --es arg8 'const _MOZINFO_JS_PATH = "/data/local/tmp/test_root/xpc/p/f73815e2-dc7b-493f-bb04-310265107823/mozinfo.json";' --es arg9 -e --es arg0 -g --es arg1 /data/local/tmp/test_root/xpcb --es arg2 --greomni --es arg3 /data/local/tmp/test_root/xpcb/geckoview-androidTest.apk --es arg4 -m --es arg5 -e --es arg6 'const _HEAD_JS_PATH = "/data/local/tmp/test_root/xpc/head.js";' --es arg7 -e --es arg26 '_execute_test(); quit(0);' --es arg25 -e --es arg24 'const _TEST_NAME = "remote/cdp/test/xpcshell/test_StreamRegistry.js";' --es arg23 -e --es arg22 'const _TEST_FILE = ["test_StreamRegistry.js"];' --es arg21 -e --es arg20 'const _TEST_CWD = "/data/local/tmp/test_root/xpc/remote/cdp/test/xpcshell";' --ez use_multiprocess True --es env20 TMPDIR=/data/local/tmp/test_root/xpc/p/f73815e2-dc7b-493f-bb04-310265107823 --es arg12 'const _TESTING_MODULES_DIR = "/data/local/tmp/test_root/xpc/m";' --es arg13 -f --es arg10 'const _PREFS_FILE = "/data/local/tmp/test_root/xpc/user.js";' --es arg11 -e --es arg16 'const _HEAD_FILES = [];' --es arg17 -e --es arg14 /data/local/tmp/test_root/xpc/head.js --es arg15 -e --es arg18 'const _JSDEBUGGER_PORT = 0;' --es arg19 -e --es env9 MOZHTTP2_PORT=41511 --es env8 GRE_HOME=/data/local/tmp/test_root/xpcb --es out_file /data/local/tmp/test_root/xpc/logs/xpcshell-a198b0f5-b60e-4a2a-b763-908eadbf80d0.log --es env3 XPCSHELL_MINIDUMP_DIR=/data/local/tmp/test_root/xpc/minidumps/f73815e2-dc7b-493f-bb04-310265107823 --es env2 XPCOM_DEBUG_BREAK=stack-and-abort --es env1 MOZ_DISABLE_SOCKET_PROCESS_SANDBOX=1 --es env0 MOZ_CRASHREPORTER=1 --es env7 MOZ_ANDROID_DATA_DIR=/data/local/tmp/test_root/xpcb --es env6 XPCSHELL_TEST_TEMP_DIR=/data/local/tmp/test_root/xpc/tmp/e60c2833-9010-4851-be88-679ecf8ef860 --es env5 MOZ_DISABLE_CONTENT_SANDBOX=1 --es env4 MOZ_WEBRENDER=0 --es env19 MOZ_ANDROID_CPU_ABI=x86_64 --es env18 HOME=/data/local/tmp/test_root/xpc/p --es env17 MOZ_LINKER_CACHE=/data/local/tmp/test_root/xpcb --es env16 MOZ_DEVELOPER_REPO_DIR=/builds/worker/checkouts/gecko --es env15 MOZ_CRASHREPORTER_NO_REPORT=1 --es env14 MOZNODE_EXEC_PORT=35465 --es env13 XPCSHELL_TEST_PROFILE_DIR=/data/local/tmp/test_root/xpc/p/f73815e2-dc7b-493f-bb04-310265107823 --es env12 LD_LIBRARY_PATH=/data/local/tmp/test_root/xpcb --es env11 MOZ_DISABLE_NONLOCAL_CONNECTIONS=1 --es env10 MOZ_DISABLE_SOCKET_PROCESS=1
[task 2021-04-22T15:33:42.494Z] 15:33:42     INFO -  remotexpcshelltests.py | Launched Test App PID=26757
[task 2021-04-22T15:33:43.155Z] 15:33:43     INFO -  remotexpcshelltests.py | Application ran for: 0:00:00.946024
[task 2021-04-22T15:33:43.243Z] 15:33:43  WARNING -  TEST-UNEXPECTED-FAIL | remote/cdp/test/xpcshell/test_StreamRegistry.js | xpcshell return code: 0
[task 2021-04-22T15:33:43.244Z] 15:33:43     INFO -  TEST-INFO took 1035ms
[task 2021-04-22T15:33:43.244Z] 15:33:43     INFO -  >>>>>>>
Flags: needinfo?(hskupin)

In some situations the FileIO stream's underlying file might not
exist anymore. Discarding the stream should not fail.

Depends on D112004

The problem here is that code related to discarding a FileIO stream is not failure safe, and raises an error when the underlying file doesn't exist anymore.

I pushed another commit to the patch series to get this fixed.

Flags: needinfo?(hskupin)
Pushed by hskupin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/194c33117b63
Make the Remote Agent part of remote debugging within GeckoView. r=geckoview-reviewers,agi
https://hg.mozilla.org/integration/autoland/rev/82d5af5895ca
[remote] Hardening discards of registered FileIO streams. r=remote-protocol-reviewers,jdescottes
https://hg.mozilla.org/integration/autoland/rev/5f7a8e0f5266
[remote] Enable Remote Agent on Android. r=firefox-build-system-reviewers,mhentges,glandium
Status: ASSIGNED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → 90 Branch
Blocks: 1695031
You need to log in before you can comment on or make changes to this bug.