Because IPC call runs asynchronously in both remote decoder process and
content process, ProcessOutput() for buffers prior to Flush() could be
scheduled to run after the flush promise is resolved, and Codec.queueInput()
could be preempted and processes prior sample after flush.
To help check the validness of buffers, a session ID increased by flush
is added to both RemoteDataDecoder and remote codec service and will be
passed through IPC. If the passed ID doesn't agree with current session
ID, it means the buffer doesn't belong to current session and should be
discard.
Differential Revision: https://phabricator.services.mozilla.com/D36382
--HG--
extra : moz-landing-system : lando
In the particular case of this bug's crashtest, a dataavailable callback from
the track encoder was raised at a point when
VP8TrackEncoder::GetEncodedPartitions would not actually return any data.
This would make VP8TrackEncoder::GetEncodedTrack propagate the error and set the
recorder in an error state, and cancel any ongoing recordings.
VP8TrackEncoder::GetEncodedPartitions was changed in bug 1333341 to distinguish
end-of-stream from other, real, errors; but callsites were not updated.
This patch fixes the callsites.
Depends on D36509
Differential Revision: https://phabricator.services.mozilla.com/D36510
--HG--
extra : moz-landing-system : lando
It leads to a race with MediaRecorder::Session::Shutdown where the RunOnGraph
runner was dispatched to the graph before, but tries to dispatch to the encoder
thread after, the encoder thread had BeginShutdown() called on it.
Allowing the encoder thread dispatch to fail in this case is reasonable and
safe.
Depends on D36508
Differential Revision: https://phabricator.services.mozilla.com/D36509
--HG--
extra : moz-landing-system : lando
This test is used to ensure that we shouldn't load CORS resource if server doesn't respond with correct CORS header.
In this situation, loading should be expected to fail.
Differential Revision: https://phabricator.services.mozilla.com/D36513
--HG--
extra : moz-landing-system : lando
Because IPC call runs asynchronously in both remote decoder process and
content process, ProcessOutput() for buffers prior to Flush() could be
scheduled to run after the flush promise is resolved, and Codec.queueInput()
could be preempted and processes prior sample after flush.
To help check the validness of buffers, a session ID increased by flush
is added to both RemoteDataDecoder and remote codec service and will be
passed through IPC. If the passed ID doesn't agree with current session
ID, it means the buffer doesn't belong to current session and should be
discard.
Differential Revision: https://phabricator.services.mozilla.com/D36382
--HG--
extra : moz-landing-system : lando
This also removes the following prefs, because they're unused:
- media.autoplay.allow-muted pref
- media.autoplay.blackList-override-default
Differential Revision: https://phabricator.services.mozilla.com/D36396
--HG--
extra : rebase_source : 0570540496302b3efedadf4d5115ee5422d5c279
This does two things:
- Makes times relative to current time, with the only constraint that not a
whole second may pass after the first frame, since that will trigger the
same-frame timer.
- Changes asserts to use TimeDuration instead of TimeStamp for understandable
logs.
This has proven needed on some macosx machines.
Differential Revision: https://phabricator.services.mozilla.com/D36217
--HG--
extra : moz-landing-system : lando
In the future we're going to want VideoBridge connections from the RDD process into both the parent process and the GPU process.
This does the preparation work for unifying the way we create VideoBridges (using Endpoints, required for cross-process connections),
and detects which one to use based on where the video will be composited.
Differential Revision: https://phabricator.services.mozilla.com/D35968
--HG--
extra : moz-landing-system : lando
In the future we're going to want VideoBridge connections from the RDD process into both the parent process and the GPU process.
This does the preparation work for unifying the way we create VideoBridges (using Endpoints, required for cross-process connections),
and detects which one to use based on where the video will be composited.
Differential Revision: https://phabricator.services.mozilla.com/D35968
--HG--
extra : moz-landing-system : lando
Five buffers is evidently not enough to ensure we don't run out.
What we really want the assert for is that we are not leaking buffers so that
they never recycle, while also keeping memory usage down. This achieves that
by allowing for 100 frames to drop before failing the out-of-buffers assert.
Differential Revision: https://phabricator.services.mozilla.com/D35324
--HG--
extra : moz-landing-system : lando
Changes:
- rebalance chunk
- turn off three tests that are nearly permafail
Differential Revision: https://phabricator.services.mozilla.com/D34932
--HG--
extra : moz-landing-system : lando
According to the spec 7.2.10.17 [1], if we have tried both direction and there is no place to put the cue inside the rendering area without overlapping with other cues or the boundary of rendering area, then we have to discard all CSS boxes, which means that we should not display this cue.
[1] https://www.w3.org/TR/webvtt1/#processing-cue-settings
Differential Revision: https://phabricator.services.mozilla.com/D33729
--HG--
extra : moz-landing-system : lando
Change the Mac GMP process launch to include sandboxing params on the command line to allow the sandbox to be started earlier during GMP process launch. Content, extension, and RDD processes have already been changed to start the sandbox earlier.
Update GMPProcessParent to override GeckoChildProcessHost methods used to construct sandboxing parameters. Pass the plugin path as a sandbox parameter so that the sandbox rules can whitelist the plugin directory which is now read after the sandbox is enabled in the plugin process. On development builds, pass "testingReadPath" params so directories needed during automated tests can be whitelisted.
Update Mac sandboxing code to detect GMP sandbox params on the command line and enable the sandbox with additional arguments needed for early sandbox start.
Allow reverting to the old implementation by setting security.sandbox.gmp.mac.earlyinit to false.
Differential Revision: https://phabricator.services.mozilla.com/D34085
--HG--
extra : moz-landing-system : lando
Change the Mac GMP process launch to include sandboxing params on the command line to allow the sandbox to be started earlier during GMP process launch. Content, extension, and RDD processes have already been changed to start the sandbox earlier.
Update GMPProcessParent to override GeckoChildProcessHost methods used to construct sandboxing parameters. Pass the plugin path as a sandbox parameter so that the sandbox rules can whitelist the plugin directory which is now read after the sandbox is enabled in the plugin process. On development builds, pass "testingReadPath" params so directories needed during automated tests can be whitelisted.
Update Mac sandboxing code to detect GMP sandbox params on the command line and enable the sandbox with additional arguments needed for early sandbox start.
Allow reverting to the old implementation by setting security.sandbox.gmp.mac.earlyinit to false.
Differential Revision: https://phabricator.services.mozilla.com/D34085
--HG--
extra : moz-landing-system : lando