This test was flaky because until we set a rid filter, all ssrcs were being
received. This meant that the resolution could have been consistent with any of
foo, bar, or baz when we started looking for resize events. In some cases, that
meant that we would never see the resize event for the transition to bar,
because the video element was already at that resolution.
Depends on D74279
Differential Revision: https://phabricator.services.mozilla.com/D77712
Implements LookupSharedMemory and AllocShmem in ProducerConsumerQueue (and fixes a few minor build issues). To be used in construction of a ProducerConsumerQueue, an actor has to subclass IPcqActor.
Differential Revision: https://phabricator.services.mozilla.com/D74974
The old style of using SharedMemory objects was fine for Windows but was incompatible with Mac and Linux because the objects were not sent to the remote process with the proper socket scheme. This meant that shared memory could not be read by the destination process. Shmems are capable of this on all platforms so we use them instead.
Differential Revision: https://phabricator.services.mozilla.com/D74972
When an async message is buffered, we need to make sure that the message is eventually sent to avoid starvation. This patch queues a future task to do this (currently, randomly, 4 milliseconds in the future) unless one is already queued. The task may get scooped by a sync message or user call to FlushAsyncCache, in which case the task will have no effect.
Differential Revision: https://phabricator.services.mozilla.com/D74482
IpdlQueue currently sends an async Ipdl message for every async WebGL call. This is a lot of overhead. This patch buffers those calls so that they can be send in large batches when either a synchronous call happens or the client calls FlushAsyncCache. The commands are then sent and processed in-order.
Differential Revision: https://phabricator.services.mozilla.com/D72047
When an async message is buffered, we need to make sure that the message is eventually sent to avoid starvation. This patch queues a future task to do this (currently, randomly, 4 milliseconds in the future) unless one is already queued. The task may get scooped by a sync message or user call to FlushAsyncCache, in which case the task will have no effect.
Differential Revision: https://phabricator.services.mozilla.com/D74482
IpdlQueue currently sends an async Ipdl message for every async WebGL call. This is a lot of overhead. This patch buffers those calls so that they can be send in large batches when either a synchronous call happens or the client calls FlushAsyncCache. The commands are then sent and processed in-order.
Differential Revision: https://phabricator.services.mozilla.com/D72047
Adds an |aChromeOnlyDispatch| flag to DispatchCustomEvent to decide whether
to call DispatchTrustEvent or DispatchEventOnlyToChrome.
The following chrome-only events are dispatched with DispatchCustomEvent and now
make use of the flag:
- DOMWindowClose
- fullscreen / willenterfullscreen / willexitfullscreen
- occlusionstatechange
- resolutionchange
- XULAlertClose
and the following were previously dispatched with DispatchTrustedEvent and now
use DispatchEventOnlyToChrome:
- MozBeforeInitialXULLayout
- MozMouseScrollFailed / MozMouseScrollTransactionTimeout
- MozPaintWait / MozPaintWaitFinished
- MozPerformDelayedBlur
- all events fired by APZCCallbackHelper::NotifyMozMouseScrollEvent
Differential Revision: https://phabricator.services.mozilla.com/D76723
Implement the drift correction logic that counts the frames between a source and a target (the master clock) and adjust the source buffer in order to compensate for the drift between source and target.
Differential Revision: https://phabricator.services.mozilla.com/D74884
Create a dynamic resampler that will be able to preallocate its internal buffers and provide the exact requested amount of data in the output. The resampler makes use of the AudioSegment data structure to convey the audio frames to make it easier to be used from MTG.
Differential Revision: https://phabricator.services.mozilla.com/D74883
Implement a ring buffer that is not thread-safe and preallocate its internal buffers. The intention is that the internal data is preallocate to any thread and then read/write operations will take place in a single thread using the memory in a ring manner.
Differential Revision: https://phabricator.services.mozilla.com/D74882
Adds a `browserId` property to all browsing contexts which the same for the
entire tree of contexts inside a frame element. If a new top-level context is
created for the frame then it is assigned the same value.
This allows identifying the frame element for a given browsing context.
Currently this is only done for XUL frame elements (browser/iframe). Not sure
if we want this for others.
Differential Revision: https://phabricator.services.mozilla.com/D56245