Fix Linux and Mac tests under remoted WebGL
Categories
(Core :: Graphics: CanvasWebGL, defect, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox82 | --- | fixed |
People
(Reporter: handyman, Assigned: handyman)
References
Details
Attachments
(6 files, 1 obsolete file)
Fix Linux and Mac tests that are busted under webgl.out-of-process=true. Windows tests already pass.
Assignee | ||
Comment 1•4 years ago
|
||
Using the Shmem after our actor has lost IPC capability (say, because the other endpoint crashed) will cause the content process to also crash. ActorDestroy is where we detect that condition.
Assignee | ||
Comment 2•4 years ago
|
||
We want the IPDL actor to be freed when WebGL (not IPDL) no longer holds a strong reference to it. This pattern is handled by detecting when IPDL is the last remaining strong reference, at which point it calls Send__delete__ to begin to safely tear down the actors at both endpoints.
Depends on D87352
Assignee | ||
Comment 3•4 years ago
|
||
Allocate a temporary buffer from the heap to appease GL.
Depends on D87353
Assignee | ||
Comment 4•4 years ago
|
||
Weak pointers need to be cleared by the cycle collector to avoid dangling pointers. WeakPtr and WeakReference have special macros for this. std::weak_ptr, however, has a contract that does not permit clearing them through any means beyond normal weak_ptr use. So we switch to WeakPtr.
Depends on D87354
Assignee | ||
Comment 5•4 years ago
|
||
Depends on D87355
Assignee | ||
Comment 6•4 years ago
|
||
CanSend() is called (in ChannelSend()) by SendFoo() IPDL calls to prevent calling Send() on a dead actor but shmem creation uses a different code path to Send() -- one that does not use ChannelSend. This adds the guard to shmem allocation as well.
Depends on D87356
Comment 7•4 years ago
|
||
Should bug 1654958 be dup'ed onto this? It looks like it's a subset of what these patches fix.
Assignee | ||
Comment 9•4 years ago
|
||
(In reply to Jed Davis [:jld] ⟨⏰|UTC-6⟩ ⟦he/him⟧ from comment #7)
Should bug 1654958 be dup'ed onto this? It looks like it's a subset of what these patches fix.
Yes. Done.
Assignee | ||
Comment 10•4 years ago
|
||
"Validate" bools to guarantee they always (de)serialize to proper values. Require that all enums use EnumSerializer or their own special handlers.
Depends on D87357
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Comment 11•4 years ago
|
||
Comment 12•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/8aab07ad0abc
https://hg.mozilla.org/mozilla-central/rev/6d5443ce7e95
https://hg.mozilla.org/mozilla-central/rev/cb77639a7d0e
https://hg.mozilla.org/mozilla-central/rev/2c9d59a24ce8
Description
•