Now that we can link gmp-clearkey's PSSH parser into Gecko, we can
simply use that inside MediaKeySession to validate that the CENC
init data matches the spec.
This change enforces that CENC init data uses the common system Id.
As far as I can tell, Widevine only uses that now.
MozReview-Commit-ID: HrlKQHcv5DI
--HG--
extra : source : f61138f1030e87026eb432e83d36e46c81e55b33
Use a WebIDL dict to define the "keyids" EME init data format, and
then use that to parse and validate incomint "keyids" EME init data
and ensure it's in the expected JSON format, i.e.:
https://w3c.github.io/encrypted-media/format-registry/initdata/keyids.html
This means we now pass the "generateRequest() with too short key ID."
case of encrypted-media-generate-request-disallowed-input.html
(upstream that is, our local copy of that WPT is out of sync).
MozReview-Commit-ID: 6W7j2a9Bg7E
--HG--
extra : source : fed2a26df89a5c2a600a6e6d1ab63ab86706fc45
Implement more of MediaKeySession.generateRequest() to validate initData before
passing to CDM.
Also throw TypeErrors when initData is not valid, as per the spec.
Only trivial validation happens here, I'll add more comprehensive validation in
subsequent patches.
MozReview-Commit-ID: 3jTOsJNvRDo
--HG--
extra : source : d023aec75d1ef1486116510efcc31e2b587e6e50
This is reworking the U2F tests to do two things:
1) Don't run all the tests in one big frame; that makes it hard to tell
what test is actually dying in Treeherder.
2) Fix the obvious possible test races with the async functions which could be
causing the intermittent
- Review updates per keeler
- Change inappropriate uses of 'var' to 'let' in u2futil.js (kudos, keeler)
- Rework frame_no_token.html to follow the same pattern as the others
- Catch unexpected messages on the u2f testing harness
- Update 2: Go back to a pre-set number of expected async tests.
MozReview-Commit-ID: 6uLt5O1lUa3
--HG--
rename : dom/u2f/tests/test_frame_appid_facet.html => dom/u2f/tests/frame_appid_facet.html
rename : dom/u2f/tests/test_frame_appid_facet_insecure.html => dom/u2f/tests/frame_appid_facet_insecure.html
rename : dom/u2f/tests/test_frame_appid_facet_subdomain.html => dom/u2f/tests/frame_appid_facet_subdomain.html
rename : dom/u2f/tests/test_frame_register.html => dom/u2f/tests/frame_register.html
rename : dom/u2f/tests/test_frame_register_sign.html => dom/u2f/tests/frame_register_sign.html
extra : rebase_source : 1255bd8ba17a141c3c8205a277c06c483540de90
This guarantees that an interface type returned from a [Cached] or [StoreInSlot]
getter must be wrappercached, because non-wrappercached things can only be
returned from [NewObject] getters or methods.
It's possible the plugin key doesn't exist, there's no need to warn about that.
MozReview-Commit-ID: Law8J9zUHCt
--HG--
extra : rebase_source : d80ac46094c55281490659d622a4cdd8c2a95c86
It's not possible to construct a useful Origin header when we have
an expanded principal and are about to perform a CORS fetch. Therefore,
instead of sending a CORS fetch with an |Origin: null| header, we
must fail the request.
The WMFDecoderModule can override Supports(TrackInfo) to reject resolutions
that we know are too big for the platform decoder.
MozReview-Commit-ID: dU905wjZcJ
--HG--
extra : rebase_source : 40e5987deeffff652a88264f157391c0dbc0a2da
MP4Decoder can translate the new MediaContentType into the relevant TrackInfo
to interrogate PDMs about codec support, with extra information if present.
MozReview-Commit-ID: K0jcYm8pJrp
--HG--
extra : rebase_source : e809824285a85035b81ad7f91406bce6393384f6
Add a new method alongside SupportsMimeType, which takes a TrackInfo that may
contain more information that just the MIME type.
Eventually the old SupportsMimeType should be removed, but we keep it for now,
as it is used quite extensively and it would be out of scope of this bug to
totally replace it now.
MozReview-Commit-ID: LJQBvSUB6J2
--HG--
extra : rebase_source : 6f43bf61dc6e51de3714c9a556428c7ba4fd484d
Create a TrackInfo (VideoInfo or AudioInfo) from a codec MIME type, and
optionally with extra parameters from a MediaContentType.
MozReview-Commit-ID: JfDMQjVgCNT
--HG--
extra : rebase_source : 10eb8f14ce28a74883752c536b2312658bc0cb4d
Just passing the new MediaContentType struct, with no processing changes (yet).
MozReview-Commit-ID: KZ4xkCihPb1
--HG--
extra : rebase_source : e40eb72cc63e0a814306c25ea9b609178517729e
Since I want to use more agent's functions in MediaElement and I don't think these functions need to be exposed on IDL level. (for other languages binding)
Therefore, I want to use AudioChannelAgent directly in MediaElement.
MozReview-Commit-ID: 43FvDeLpZPt
--HG--
extra : rebase_source : 78741d791eb66cfb6223866ce823f217e3438fdb
Regression by bug1262053 because of removing the current playing checking.
It would cause that the media control on Fennec shows too early and some media
elements would also generate the media control even it doens't have available
source.
Therefore, I think we still need to add this checking back.
MozReview-Commit-ID: 1m1ywmLmpSe
--HG--
extra : rebase_source : 30741b0e7bf1bb15349caaf1ecbcdad8cd92dcc3
These methods don't need to be exposed anymore.
They are still used in the cpp, so we keep them there as static functions.
MozReview-Commit-ID: F1BxEFzj7Re
--HG--
extra : rebase_source : 458b92a2b8987007ed68f32bbf26eaf4cf46742f
Just moving a function, it will help review upcoming changes in the next patch.
MozReview-Commit-ID: Ilbhinse9C6
--HG--
extra : rebase_source : 1a62ac51fbb33c5cc19f58b34ede28e91fa96d0a
Replace both uses of nsContentTypeParser with MediaContentType.
MozReview-Commit-ID: KV7ze3ASRf3
--HG--
extra : rebase_source : b3d102b02fa671d0a42d70ae7fe66bdd51ac5d86
Instead of taking MIME&codecs strings, CanHandleContentType takes an
MediaContentType, which can be used to access these and other parameters.
MozReview-Commit-ID: 14Cg6JoQS0g
--HG--
extra : rebase_source : 85b8e852f004b2728b06831c43b33ee4e7aebe52
Collect all parsed parameters in a handy MediaContentType structure.
MozReview-Commit-ID: DlnilsmO1eP
--HG--
extra : rebase_source : 823717a46e698342dce0f9e0b5bbfab21281297d
GetType() and GetParameter() don't actually modify the nsContentTypeParser
object, so we can make them const.
It makes it possible to pass the parser as a const-ref, which I think makes
sense as getters (even those doing some actual work) are usually const.
MozReview-Commit-ID: 9vmqKbmt8y8
--HG--
extra : rebase_source : d07371c8cdcf116952bffafad0cd6cda78f59b20
Web Crypto returns an unhelpful "operation failed for an
operation-specific reason" error if the actual decryption fails, but
we can report more useful errors for missing and invalid header
values.
MozReview-Commit-ID: JRdGHBUodmb
--HG--
extra : rebase_source : 8f1b047b6f01c89a852aefbb1349a608f1178ab8
Previously, errors thrown by `decodeMsg` and `getCryptoParams` would
bubble up to the catch handler in `receivedPushMessage`, causing us to
report "ACK_NOT_DELIVERED" instead of "ACK_DECRYPTION_ERROR" in the ack
sent to the server.
MozReview-Commit-ID: FZFzYdebQGy
--HG--
extra : rebase_source : b21f15cc9ac12ff11496d4f63ee531c021bd7a29
The mochitest for clipboard still needs the mozbrowsercaretstatechanged events,
so we disable "layout.accessiblecaret.hide_carets_for_mouse_input".
MozReview-Commit-ID: CD03lmjwUa9
--HG--
extra : rebase_source : 530d241764d55ed6507f993511c74cf820195283
Also we don't nullify mSeekTask in Exit() because the state object will be deleted soon after Exit().
MozReview-Commit-ID: 9wTJ5yiZbhD
--HG--
extra : rebase_source : 88a0f6aecc32b0a36949048c68cb34a27192a361
When we add SPS/PPS NAL in front of each keyframe data, this somehow makes the WMF decoder to misbehave and to always return an invalid timestamp.
MozReview-Commit-ID: 2SzTiwP0ii1
--HG--
extra : rebase_source : b499c83d504df772e6d722053630ff4d92306d4f
At least some of the environments the tests are running in do not appear to play
nice with non-ascii characters. Some of the jenkins runs are currently unhappy
due to this. This patch sees that all fields are encoded as ascii with
non-compatible characters replaced.
MozReview-Commit-ID: 6qSCyUujMLE
--HG--
extra : rebase_source : bb19b261b10aeb9bb9a47a2d47fefc7604000430
ScopedAutoSECItem is useful for getting rid of this pattern:
> ScopedSECItem item(SECITEM_AllocItem(nullptr, nullptr, 0));
While this pattern works, ScopedAutoSECItem is slightly superior in that it
doesn't unnecessarily cause a SECItem to be allocated from the heap. Moreover,
this moves us further away from Scoped.h, which is deprecated.
MozReview-Commit-ID: B30MNTHzzTc
--HG--
extra : rebase_source : 8d6dea205fc8800a46104b48c670eff250a4731a
This patch sets up the U2F system to support multiple nsIU2FToken
"authenticators" simultaneously, such as having both a USB and a Bluetooth Smart
implementation enabled at the same time. It also paves the way to support
timeout interruptions (for Bug 1301793).
- Executes operations across a list of authenticators.
- Uses runnables, via MozPromise and SharedThreadPool.
- Remove nsNSSShutDownPreventionLock from U2F*Task and move to U2F*Runnable
- Review updates
- Some of the review updates from earlier changeset are ... painful to merge
back before this one, so I'm just tacking them on here.
It's still missing some things, though:
- It's not actually executing the operations in parallel yet, as invoking
methods on NSSU2FTokenRemote from a worker thread throws exceptions while
obtaining ContentChild::GetSingleton().
MozReview-Commit-ID: EUdZQesASo2
***
Bug 1297552 - Updates per review r?keeler
MozReview-Commit-ID: EHIWM74tfYG
--HG--
extra : transplant_source : %F9%9E%9E%5B7%19R0%7D%C1%B1%FB%BD%97%26%B2%A3%9CTg
- Breaks compatibility with non-e10s windows, as the underlying USB
implementation from Bug 1298838 won't support non-e10s either.
- Now that U2F doesn't support non-e10s, disable tests if we're not in
e10s mode.
MozReview-Commit-ID: 5F2323xtXEC
--HG--
extra : transplant_source : v%1Fl%C0%2AJ%26k4%89/%95v%89%12%87%94Y%3Cs
Moves hash calculations to happen only once per JS-invoked Register/Sign
operation.
MozReview-Commit-ID: FuA95qCl1rG
--HG--
extra : transplant_source : %81%A48%8D%FF%82%89M%A7%C4%11%07%B6%94M%C2U%1FY%E8
There are a few pieces missing before we can do this with Servo. Since this
only enables an optimization for off-screen animations we should skip this
for now so it doesn't block animations from running.
MozReview-Commit-ID: GecHWQZYxpK
--HG--
extra : rebase_source : c0330b104afb4b970569c0cb650315e633b7e796
extra : histedit_source : db91b37d3370c9b766976b42b0701f6e0ec56159
For animation values parsed using the Servo backend that are invalid,
we simply end up with an empty declaration block (and we fill in |mValue|
with the string so we can later serialize it).
MozReview-Commit-ID: 6ruwJGVzRla
--HG--
extra : rebase_source : 83e415febf10cf90631fd7a1b447921822a44bc0
8eef5d2cc850 in Bug 1300654 incorrectly resolved a merge conflict and backed
out part of the fix for Bug 1280829. Relanding.
MozReview-Commit-ID: 6DIkUrc9R4t
Doing this causes a separate copy of each string to be included in each
compilation unit that includes VideoUtils.h, and since global
nsLiteralCString objects require a static constructor, injects static
constructors into all those compilation units as well. Moving the
object definitions to a source file and leaving the declarations in the
header makes everything work as expected.
The last useful references to this were removed in bug 1250046, when we
deleted Shumway-specific IPC support. All this code is doing now is
taking up space.
If "media.libavcodec.allow-obsolete" is set to true, the checks for older
libavcodec library versions are ignored.
MozReview-Commit-ID: HBhHfFomsrr
--HG--
extra : rebase_source : 2f42348018b19d20be64001df737b342e1813274
If libavcodec is present but cannot be used, Decoder Doctor sends a distinct
notification to better help the user find the issue.
MozReview-Commit-ID: IGXPIY1b8AS
--HG--
extra : rebase_source : 101937fe8786296443b04d32983ccf260b23742a
FFmpegLibWrapper returns a precise success/failure code.
FFmpegRuntimeLinker uses that to record the most interesting issue and
associated library name (if any).
MozReview-Commit-ID: J7asDfngw5e
--HG--
extra : rebase_source : b5151c58d0aeb49a73c5541184d86f1b8343e63f
Note we can't call SetState() because we might need to seek again in the SEEKING state.
MozReview-Commit-ID: 7KYhV5SLbXF
--HG--
extra : rebase_source : 111bfada8126b3a6a1c0034ad9f5e6883a360ea1
Because the TaskQueue of MDSM will shut down soon and TaskQueue::Dispatch() will fail (via mOnOutput.Notify()).
We reset mStream in Forget() on the TaskQueue thread of MDSM so NotifyOutput() can check it
and ensure mOnOutput.Notify() always happen before DecodedStream::Stop().
MozReview-Commit-ID: 4sCXk1KAfCC
--HG--
extra : rebase_source : 1ec50a86fa1519c4fc8caa1087f2794411aa23b0
We already report failure in |LoadDlls| on the initial failure to load, there's
no need to warn more than once per session.
MozReview-Commit-ID: FhsR2ZaMSLT
--HG--
extra : rebase_source : ae7d94af5c9d9253b82b2d45dc6967b5b21c6492