Relay mach port send rights via the broker process
Categories
(Core :: IPC, enhancement)
Tracking
()
Tracking | Status | |
---|---|---|
firefox96 | --- | fixed |
People
(Reporter: nika, Assigned: nika)
References
Details
Attachments
(8 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
Much like bug 1732343, this patch tracks using the same infrastructure to transfer mach ports using the broker process. This will be handled in a similar way to how Mojo handled mach ports before they converted to using mach as the primary IPC mechanism on macOS (https://source.chromium.org/chromium/chromium/src/+/9f707e5e04598d8303fa99ca29eb507c839767d8:mojo/core/mach_port_relay.cc, https://source.chromium.org/chromium/chromium/src/+/9f707e5e04598d8303fa99ca29eb507c839767d8:base/mac/mach_port_util.cc).
With this change and the changes in bug 1732343 it will be possible to create IPC connections between processes without requiring knowledge of the OtherPid() to transfer native handles and shared memory.
This patch only handles transferring mach send rights, as they are the only handle type required for mach shared memory. If receive rights are required in the future, support can be added, or we can migrate to using mach ports for IPC directly.
Assignee | ||
Comment 1•3 years ago
|
||
Assignee | ||
Comment 2•3 years ago
|
||
Depends on D128210
Assignee | ||
Comment 3•3 years ago
|
||
Depends on D128211
Assignee | ||
Comment 4•3 years ago
|
||
Depends on D128212
Assignee | ||
Comment 5•3 years ago
|
||
Depends on D128213
Assignee | ||
Comment 6•3 years ago
|
||
Depends on D128214
Assignee | ||
Comment 7•3 years ago
|
||
Depends on D128215
Assignee | ||
Comment 8•3 years ago
|
||
Depends on D128216
Assignee | ||
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Pushed by nlayzell@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/596b8bffe529 Part 1: Add UniqueMach{Send,Recv}Right types, r=glandium https://hg.mozilla.org/integration/autoland/rev/aebe310d90ce Part 2: Support getter_Transfers with non-pointer UniquePtr types, r=glandium https://hg.mozilla.org/integration/autoland/rev/88b9087be476 Part 3: Generalize IPC message footer writing code, r=handyman https://hg.mozilla.org/integration/autoland/rev/610ad8dcfea2 Part 4: Support relaying mach ports via the parent process, r=handyman,mstange https://hg.mozilla.org/integration/autoland/rev/612077241842 Part 5: Convert SharedMemoryBasic_mach to use relayed mach ports, r=handyman https://hg.mozilla.org/integration/autoland/rev/d9872022b7f5 Part 6: Remove dead TextureSync code, r=dthayer https://hg.mozilla.org/integration/autoland/rev/0204dcc02d93 Part 7: Remove all SharedMemoryBasic special messaging code, r=handyman https://hg.mozilla.org/integration/autoland/rev/6c377347f58b Part 8: Remove the now-unused old mach_ipc_mac code, r=handyman
Comment 10•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/596b8bffe529
https://hg.mozilla.org/mozilla-central/rev/aebe310d90ce
https://hg.mozilla.org/mozilla-central/rev/88b9087be476
https://hg.mozilla.org/mozilla-central/rev/610ad8dcfea2
https://hg.mozilla.org/mozilla-central/rev/612077241842
https://hg.mozilla.org/mozilla-central/rev/d9872022b7f5
https://hg.mozilla.org/mozilla-central/rev/0204dcc02d93
https://hg.mozilla.org/mozilla-central/rev/6c377347f58b
Description
•