Make global-action (ActionsResult) results serializable for the urlbar actor boundary
Categories
(Firefox :: Address Bar, task)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox154 | --- | fixed |
People
(Reporter: dao, Assigned: dao)
References
(Blocks 2 open bugs)
Details
(Whiteboard: [sng][mcab-hnt])
Attachments
(1 file)
Global-action results (ActionsResult) store their data in private fields exposed through getters, which structuredClone drops when a result crosses the Urlbar JSWindowActor boundary. Give ActionsResult explicit toWire()/fromWire() serialization so it survives the boundary, mirroring UrlbarResult.
No-op on the default direct (in-process) path; prepares the type for the message path.
Updated•8 days ago
|
| Assignee | ||
Comment 1•8 days ago
|
||
Global-action results (the actions row) carry their per-action data -- key,
l10nId, l10nArgs, icon, dataset, engine -- in ActionsResult objects
held on the result payload. ActionsResult stored that data in private fields
exposed through getters, which a structured clone drops (it copies only own
enumerable data properties), so over the actor message path the actions rendered
blank; only providerName, a public field, survived.
Store the data in plain public fields instead, so the payload stays structured-
cloneable, and freeze the instance to keep it read-only as the getters did.
providerName can no longer be stamped on after construction (the object is
frozen), so each provider passes its own name in; the constructor now requires
providerName and key and throws without them.
The default in-process path is unaffected.
Updated•8 days ago
|
Comment 4•8 days ago
|
||
Revert for causing xpcshell failures on test_quicksuggest.js.
| Assignee | ||
Updated•7 days ago
|
Updated•5 days ago
|
Description
•