Closed Bug 1598286 Opened 3 years ago Closed 3 years ago

Enable remote agent on Windows AArch64

Categories

(Remote Protocol :: Agent, defect, P1)

ARM64
Windows
defect

Tracking

(firefox74 fixed)

RESOLVED FIXED
Firefox 74
Tracking Status
firefox74 --- fixed

People

(Reporter: ato, Assigned: ato)

References

(Blocks 1 open bug)

Details

(Whiteboard: [puppeteer-beta-mvp])

Attachments

(4 files)

Bug 1543115 disabled the remote agent on Windows AArch64
due to a dependency on winapi 0.2.8 which doesn’t support AArch64.

The dependency chain is http 0.1.17 → bytes 0.4.9 → iovec 0.1.2 → winapi 0.2.8.

We should upgrade/submit upstream PRs to move away from winapi 0.2.8.

(See attachment for the full dependency tree.)

OS: Unspecified → Windows
Priority: -- → P3
Hardware: Unspecified → ARM64
Depends on: 1543115

Please note that winapi is already on 0.3.8, and the necessary patches for ARM landed in 0.3.7, which is already vendored as third_party package.

iovec: v0.1.3 released on Oct 9th which got rid of the winapi dependency (https://github.com/carllerche/iovec/pull/25)

bytes: iovec has been replaced with std::io::IoSlice on June 7th, which hasn't been released yet. That is mostly because it waits on the tokio 0.2 release, which doesn't seem to happen soon.

If we upgrade to http 0.2, this would give us bytes 0.5 which contains the removal of the iovec that depended on the incompatible winapi.

If my thinking is correct this would allow us to build on Windows AArch64 and simulatenously solve bug 1606935.

Blocks: 1606935
Whiteboard: [puppeteer-beta]
Assignee: nobody → ato
Priority: P3 → P1
Status: NEW → ASSIGNED
Whiteboard: [puppeteer-beta] → [puppeteer-beta-mvp]

Upgrading to http 0.2 will give us bytes ^0.5 which removes
a dependency on iovec. iovec is problematic for us because it
depends on a version of winapi that does not compile on Windows AArch64.

The effect of this should be that the remote agent is now possible
to compile on Windows AArch64.

The remote agent used to not compile on Windows AArch64 due to iovec's
dependency on a version of winapi without support for this architecture.

Now that the remote agent has upgraded to http 0.2, which depends on
a version of the bytes crate that has moved away from iovec in favour
of std::io::IoSlice, we are able to turn on support for Windows AArch64.

This in turn will also fix bug 1606935 because the browser-chrome
test manifest for M(remote) will no longer be empty. It was a
regression caused by 1603930 where we fixed a logic error causnig
ENABLE_REMOTE_AGENT to be inappropriately set on non-trunk branches.

Blocks: 1607438
Pushed by atolfsen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bca976fbc2c1
remote: upgrade to http 0.2 r=remote-protocol-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/2965d6589d90
third_party: vendor Rust dependencies; r=remote-protocol-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/4558b24acb30
toolkit: enable remote agent on Windows AArch64; r=remote-protocol-reviewers,whimboo,froydnj
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 74
You need to log in before you can comment on or make changes to this bug.