Closed Bug 1697579 Opened 3 years ago Closed 3 years ago

CompositorBridgeParent destruction semantics aren't enforced properly

Categories

(Core :: IPC, defect)

defect

Tracking

()

RESOLVED FIXED

People

(Reporter: bradwerth, Assigned: bradwerth)

References

Details

Attachments

(1 file)

It is important that CompositorBridgeParent::ActorDestroy must be called before a CompositorBridgeParent is destroyed. Failure to do so can lead to IPC problem, possibly crashes.

As noted by sotaro elsewhere:

Current implementation expects that CompositorBridgeParent is alive when WebRenderBridgeParent is alive. When CompositorBridgeParent is destroyed, CompositorBridgeParent::StopAndClearResources() should be called. And it seems not safe to call DestroyCompositor() from nsChildView::~nsChildView().

And also:

I wonder if we need to handle also ActorDealloc() in addition to ActorDestroy().

This bug is intended to cover enforcement of these semantics.

Keywords: leave-open
Pushed by bwerth@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1cf8864ed737
Part 1: Add diagnostic asserts to ~CompositorBridgeParent(). r=sotaro

I also added gfxCriticalNote to CompositorBridgeParent::~CompositorBridgeParent() by Bug 1697090. It might help for crash report.

See Also: → 1697090

Several bugs have landed that have improved these semantics, including Bug 1710347 and Bug 1700848, which addresses the core issue of this bug.

Status: NEW → RESOLVED
Closed: 3 years ago
Keywords: leave-open
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: