Closed Bug 1783242 Opened 2 years ago Closed 2 years ago

Serialize large JSStructuredCloneData in shared memory

Categories

(Core :: IPC, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
107 Branch
Tracking Status
firefox107 --- fixed

People

(Reporter: nika, Assigned: nika)

References

Details

Attachments

(4 files)

Like bug 1783240, this should help us relax maximum message size limits, and improve the efficiency of sending these large data structures.

Summary: Serialize large JSStructuredCloneBuffers in shared memory → Serialize large JSStructuredCloneData in shared memory

If we relax the size limits on these, we may want to remove the code that drops message manager and window actor messages that are too large.

This changes the serialization strategy for JSStructuredCloneData to use shared
memory if the total size exceeds 64k. This doesn't change how it is represented
when it is within source or destination processes, just how it is represented
when in transit.

Depends on D153803

The only uses of this method were removed in Part 1, meaning that it can
now be removed. Support for this method adds a significant amount of
complexity to BufferList and IPC serialization.

Depends on D153805

The only purpose was to get 8 byte alignment for ExtractBuffers, which
has been removed in part 3.

Depends on D154439

Pushed by nlayzell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2ce8a67f4d70
Part 1: Serialize large JSStructuredCloneData with SharedMemory, r=ipc-reviewers,handyman
https://hg.mozilla.org/integration/autoland/rev/93948bb1ec9a
Part 2: Relax structured clone payload size limits, r=ipc-reviewers,mccr8
https://hg.mozilla.org/integration/autoland/rev/49a5ae1d3d7d
Part 3: Remove BufferList::Extract, r=glandium,ipc-reviewers,mccr8
https://hg.mozilla.org/integration/autoland/rev/880ab66f959e
Part 4: Remove custom alignment support from pickle, r=ipc-reviewers,handyman
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: