Commit Graph

279 Commits

Author SHA1 Message Date
Chris Pearce
6b9f2d3717 Bug 1324926 - Log expiration in terms of hours remaining in MediaKeySession.SetExpiration(). r=gerald
MozReview-Commit-ID: 4D3qXmCOZrh

--HG--
extra : rebase_source : f8a732162d4d53b51c236daa1008f88a310026d1
2016-12-21 11:49:26 +13:00
Chris Pearce
d71275d786 Bug 1324926 - Convert other EME/GMP byte logging from Base64 to Hex. r=gerald
This is marginly more readable.

MozReview-Commit-ID: DWJNFXxI7Vd

--HG--
extra : rebase_source : bfc694c51a8f1de28a6a11155f0c3e6b723ff153
2016-12-21 10:37:09 +13:00
Chris Pearce
8e41b15452 Bug 1324925 - Convert GMPTimestamp to epoch seconds in GMPDecryptorChild::ExpirationChange(). r=gerald
MozReview-Commit-ID: 8tSl2kIQc1w

--HG--
extra : rebase_source : c10839a0df68716b2370e15645470442b0b69922
2016-12-21 11:52:16 +13:00
James Cheng
4f0ada8315 Bug 1323566 - Fix incorrect index usage in MediaKeySystemAccessManager::Observe(). r=cpearce
MozReview-Commit-ID: 1D6Yes6ofdj

--HG--
extra : rebase_source : aada68f7aab16fb51c3a5025993e52a01dd5ed07
2016-12-15 11:53:54 +08:00
Andrea Marchesini
f7f5990527 Bug 1317927 - Media caching needs to use origin attributes, r=cpearce, r=jesup 2016-12-07 07:07:09 -10:00
Chris Pearce
19f0b2fe44 Bug 1320614 - Remove MediaKeys::mNodeId as it's only ever written and never read. r=gerald
MozReview-Commit-ID: BWfrjzdfph

--HG--
extra : amend_source : 784b9d8341dc2fad29c522b5faa147a2a81a9388
2016-11-28 12:12:34 +13:00
Gerald Squelart
2af5ebc606 Bug 1318228 - Replace nsAutoPtr with UniquePtr in MediaDrmCDMProxy - r=cpearce
MozReview-Commit-ID: 71BGVx1G7JH

--HG--
extra : rebase_source : cac6f50eaeaf1afa2f2b03f3514f5e598039618e
2016-11-17 21:11:04 +11:00
Kilik Kuo
5d9f1e5975 Bug 1307818-[P1] Provide drmStubId for CDMProxy and instantiate {Local,Remote}MediaDrmBridge. r=cpearce,jchen
MozReview-Commit-ID: EFPn4DOZq4D

--HG--
extra : rebase_source : 7f494fe6f6c6db897b50b159fcd001f3181f15cd
2016-11-16 22:09:34 +08:00
Chris Pearce
0a0e9d8f06 Bug 1317822 - Move GMPCrashHelper into its own file. r=gerald
MozReview-Commit-ID: 7CinZ2Y2Fmz

--HG--
extra : rebase_source : 3b176cbfadebf6463384105c261ff208bc58b1c2
2016-11-16 11:35:36 +13:00
Chris Pearce
b430a8a481 Bug 1306314 - Add an ID to GMPDecryptor instances, reflect that on CDMProxy. r=gerald
This enables us to identify GMPDecryptor instances in the child process, so that
in a later patch when we create a GMPVideoDecoder instance, we can associate it
with a GMPDecryptor. Then the cdm::ContentDecryptionModule8 instance that these
two actors are adapted to can know whom it's supposed to respond to.

We use the IPDL PGMPDecryptorChild actor ID as the GMPDecryptor's ID. This is unique
per GMP process, which is sufficient.

MozReview-Commit-ID: 7NKND9VjPUW

--HG--
extra : rebase_source : da14d9a8a7313a609e30649af1a23e79b3e401fe
2016-11-11 12:10:43 +13:00
Iris Hsiao
d9a1a0a083 Backed out changeset 9e9727bdc484 (bug 1306314) 2016-11-14 11:07:39 +08:00
Chris Pearce
ec543ad267 Bug 1306314 - Add an ID to GMPDecryptor instances, reflect that on CDMProxy. r=gerald
This enables us to identify GMPDecryptor instances in the child process, so that
in a later patch when we create a GMPVideoDecoder instance, we can associate it
with a GMPDecryptor. Then the cdm::ContentDecryptionModule8 instance that these
two actors are adapted to can know whom it's supposed to respond to.

We use the IPDL PGMPDecryptorChild actor ID as the GMPDecryptor's ID. This is unique
per GMP process, which is sufficient.

MozReview-Commit-ID: 7NKND9VjPUW

--HG--
extra : rebase_source : 6ea7dfa358f8d13f7d36db5a581fc075268038b7
2016-11-11 12:10:43 +13:00
James Cheng
06a62c3bad Bug 1314530 Part3 - Instantiate MediaDrmCDMProxy if it is widevine on fennec. r=cpearce
MozReview-Commit-ID: AhNBaO5LPwe

--HG--
extra : rebase_source : bd481396058d28521b2cbbd0fca8296d32768a86
2016-11-07 14:03:44 +08:00
James Cheng
d1f91996e4 Bug 1314530 Part2 - Add isRemote flag to MediaDrmProxy::Create function to determine if it is oop case. r=cpearce
MozReview-Commit-ID: Dqf1C5nDHct

--HG--
extra : rebase_source : aa957ab7b0ac5fb50b12ab4cd4a3db5fc7273488
2016-11-07 14:01:25 +08:00
James Cheng
90f62da0ee Bug 1314530 Part1 - Remove IsInPrivateBrowsing() since we did not use it anymore. r=cpearce
MozReview-Commit-ID: J8tfOyzBB97

--HG--
extra : rebase_source : fc667dcb1eb47d44f94da4d65160cde6dba8a2d9
2016-11-07 12:34:32 +08:00
James Cheng
15a599af5d Bug 1306572 - Part3 - Implement MediaCDMProxy and the callback proxy. r=cpearce
MozReview-Commit-ID: 3dFawuvhfWu

--HG--
extra : rebase_source : 2c77a0c1b9e7a3c1067f12ebf4a416ae4417f3e6
2016-11-01 14:39:34 +08:00
James Cheng
34683786c0 Bug 1306572 - Part2 - The native implementation of MediaDrmProxy by MediaDrmProxySupport r=cpearce,jchen
MozReview-Commit-ID: 1cbTPDyXlzU

--HG--
extra : rebase_source : 7b3dbecff6044182f67b46033afcfc1df4e26c86
2016-11-01 14:39:26 +08:00
Chris Pearce
5cba5b5a25 Bug 1314858 - Refactor multiple callers of HasPluginForAPI into a helper. r=gerald
I've repeated myself a few times, so make a helper to make determining which
GMPs are available easier.

MozReview-Commit-ID: 2fFLeaA5o8u

--HG--
extra : rebase_source : 74ea0b429d339273535610df3bbd7fec7beae469
2016-11-03 14:33:31 +13:00
Chris Pearce
d5c366c045 Bug 1314445 - Remove unused ParseKeySystem(). r=gerald
MozReview-Commit-ID: KdIpvet73LR

--HG--
extra : rebase_source : aed95e2b024af6fa36f0da96f564966c8d7f3a7d
2016-11-02 13:56:23 +13:00
Chris Pearce
5ebd6552d1 Bug 1314445 - Make MediaKeySystemAccess use GMPService::HasPluginForAPI. r=gerald
Removes callers of GMPService::GetPluginVersionForAPI().


MozReview-Commit-ID: KZcyfDAfTR7

--HG--
extra : rebase_source : ee774359a30c75390eef43d7a6b94789070e77a4
2016-11-02 13:42:40 +13:00
Chris Pearce
20b6c3ec6b Bug 1314445 - Don't pass CDM version to MediaKey*. r=gerald
We don't need this, and we don't seem to be using this anyway.

MozReview-Commit-ID: 7NCRO94PN3m

--HG--
extra : rebase_source : de91b099e5e536eb321584990f18025e08c7cc78
2016-11-02 11:56:30 +13:00
Chris Pearce
e80a3b5b24 Bug 1314452 - Remove IsGMPPresentOnDisk checks from Gecko. r=gerald
These are done in the GMPProvider, so it's unnecessary to do them again inside
Gecko. Plus, they cause main thread synchronous IPC in multi-process Firefox.


MozReview-Commit-ID: EcG38i3b2Oh

--HG--
extra : rebase_source : 37dffa797be13913131efb0019fd2e32c21b1fb6
2016-11-02 11:17:50 +13:00
Phil Ringnalda
b6eec64324 Merge m-c to a CLOSED TREE m-i
MozReview-Commit-ID: 2JxLeQ8GYIX
2016-10-27 20:36:38 -07:00
Chris Pearce
b691c3f403 Bug 1310879 - Remove EME persistent-license sessions. r=gerald
This removes the ability for ClearKey to instantiate persistent-license
sessions using the EME APIs.

MozReview-Commit-ID: FXj5YORxpas

--HG--
extra : source : b69b2435f1059a5c7b1dd26947ea500b381ec7f0
2016-10-18 15:42:02 +13:00
Chris Pearce
08bdd39606 Bug 1310879 - Check that only supported session types are instantiated. r=gerald
MozReview-Commit-ID: 6XkToIXzZL8

--HG--
extra : source : d1c0a7a2ff25005de82033081bee5eb10adea0c8
2016-10-28 11:43:26 +13:00
Chris Pearce
17c7c9d886 Bug 1310879 - Pass MediaKeySystemConfiguration to MediaKeys. r=gerald
MozReview-Commit-ID: 6tHlyRl4nWT

--HG--
extra : source : 5773f8dac74aaf05ec1c4f8585b3b148d51da324
2016-10-28 11:22:11 +13:00
Chris Pearce
8685a93e46 Bug 1313202 - Update MediaKeySession.close() to match EME spec. r=gerald
MozReview-Commit-ID: JgzOaACDUfc

--HG--
extra : rebase_source : 35ce6986bdc7e486b757df53fc59a63fb97014c3
2016-10-27 11:37:27 +13:00
Chris Pearce
ea73ebebc8 Bug 1311848 - Don't call ConnectPendingPromiseIdWithToken in MediaKeySession::Load. r=kikuo
We don't need to call MediaKeys::ConnectPendingPromiseIdWithToken() on the
MediaKeySession::Load() path, we already know the session Id, and we've already
removed the session from the list of pending sessions in Load().

MozReview-Commit-ID: KBiEsY95Csi

--HG--
extra : rebase_source : aadc3204409df35e4bbcb9532c530f860681afd1
2016-10-21 10:52:26 +13:00
Chris Pearce
22b1ca7b53 Bug 1311864 - Reject MediaKeySession::Load() for non temporary session types. r=kikuo
We are required to do this by the draft EME spec.

MozReview-Commit-ID: FnIEFgVId1z

--HG--
extra : rebase_source : 23042d3acda6cfcb379db457224d648dc955f688
2016-10-21 11:43:05 +13:00
Carsten "Tomcat" Book
2e7511ed5a merge mozilla-inbound to mozilla-central a=merge 2016-10-20 16:47:39 +02:00
Kilik Kuo
ede59e2ecf Bug 1310936- Provide a map to get pending MediaKeySession by promise Id correctly. r=cpearce
MozReview-Commit-ID: 34BL4GYoC1A

--HG--
extra : rebase_source : 4dffdf8da32412a6812716de9edbf685235ce442
2016-10-20 15:28:09 +08:00
Phil Ringnalda
8377010e6a Merge m-c to m-i
MozReview-Commit-ID: Ihd0iacfcIW

--HG--
rename : devtools/.eslintrc => devtools/.eslintrc.js
2016-10-18 19:45:02 -07:00
Kilik Kuo
4eecda6d84 Bug 1310958 - Reject promise with correct error in MediaKeySession::Load. r=cpearce
MozReview-Commit-ID: JuWGZCMfW6x

--HG--
extra : rebase_source : 59a9957cd3d37c0ef81cd6bc09f7b6eda3afac7b
2016-10-18 17:31:51 +08:00
Jon Coppeard
556585c65f Bug 1297558 - Remove explicit calls to Expose*ToActiveJS r=mccr8 2016-10-18 17:58:19 +01:00
Chris Pearce
e90255c806 Bug 1311252 - Make MediaKeyMessageEvent.webidl patch spec. r=smaug
Update our copy of EncryptedMediaExtensions.idl to match upstream
Web Platform Tests, so we keep passing.

MozReview-Commit-ID: IHaVX45GrYx
2016-10-19 20:33:54 +13:00
Chris Pearce
c2998283ca Bug 1309299 - make navigator.requestMediaKeySystemAccess() reject with TypeError for empty keysystem string or config. r=gerald
This makes us match the spec and pass more cases of
http://www.w3c-test.org/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html
but we still need to adjust the test so that it's consistent, as pointed out
by bz.

MozReview-Commit-ID: KEfRk4QnJKR

--HG--
extra : source : 72af37aaf2a0a42c20e64b3b455f0cb79e2b7eb1
2016-10-11 10:37:34 -07:00
Carsten "Tomcat" Book
f21768dc9c Backed out changeset aa789d732c6c (bug 1309299) for wpt-4 test failures on own test 2016-10-12 08:49:30 +02:00
Chris Pearce
b34a32e0bb Bug 1309299 - make navigator.requestMediaKeySystemAccess() reject with TypeError for empty keysystem string or config. r=gerald
This makes us match the spec and pass more cases of
http://www.w3c-test.org/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html
but we still need to adjust the test so that it's consistent, as pointed out
by bz.

MozReview-Commit-ID: KEfRk4QnJKR

--HG--
extra : source : a54ae0c94eefcf30270abad6463ed0becd0331db
2016-10-11 10:37:34 -07:00
Chris Pearce
ef74aeb8a8 Bug 1308076 - Use PsshParser to validate CENC init data. r=jwwang
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
2016-10-06 23:17:44 +13:00
Chris Pearce
a52e1adba5 Bug 1308076 - Validate keyids json format. r=smaug
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
2016-10-06 17:57:08 +13:00
Chris Pearce
1678efebbf Bug 1308076 - Basic validation of EME initData. r=jwwang
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
2016-10-06 17:54:36 +13:00
James Cheng
7472ef82a6 Bug 1306219-Part3 Add logic to determine if Widevine keysystem is supported on Fennec. r=cpearce
MozReview-Commit-ID: 7lquhpJPYfW

--HG--
extra : rebase_source : 17f97d1574771fb52cece8d4331d6bc5c31cbad4
2016-10-04 11:45:34 +08:00
James Cheng
019d1cf24a Bug 1306219-Part1 Rename GMP_* into EME_* r=cpearce
MozReview-Commit-ID: Li05WWXqRj2

--HG--
extra : rebase_source : 18b195227384cb07a9127aa45f8acf0e5c174451
2016-10-04 11:45:08 +08:00
Kilik Kuo
34516e1303 Bug 1308121-Handle unrecognized content type parameter when trying to get supported capability. r=cpearce
MozReview-Commit-ID: GqSjn6BjhTi

--HG--
extra : rebase_source : 9aa4f67b99c376d1b525e72ef60b3cdcdaa68b4d
2016-10-07 00:45:27 +08:00
Kilik Kuo
55bf555b74 Bug 1303922 - Part 2: Remove KeyStatusChanged/ForgetKeyStatus IPDL messages. r=cpearce
MozReview-Commit-ID: Flx2SQI7lM0

--HG--
extra : transplant_source : %40p%5C%C3%06%D0m%0C/%7B%0C%5B%A2%93o%F6%A1%1B%00%7D
2016-10-04 17:19:53 +08:00
Kilik Kuo
4d162fcd4a Bug 1303922 - Part 1: Make EME keystatuschanged information notified in batch. r=cpearce
MozReview-Commit-ID: IeExaQ62qTF

--HG--
extra : transplant_source : t%D4%AFxu%D6%40%F8hU%D2%94%D4q8q%EDy%08-
2016-10-04 17:18:46 +08:00
Carsten "Tomcat" Book
02f4754fbc merge mozilla-inbound to mozilla-central a=merge 2016-10-04 11:58:07 +02:00
Chris Pearce
b2629e2eec Bug 1307248 - Replace uses of CompareUTF8toUTF16(kEMEKeySystem*) with Is*KeySystem(). r=jwwang
MozReview-Commit-ID: BTTacIyYfGZ

--HG--
extra : rebase_source : 4c3146ce7ca597c33871e8fb76b1c86d93c24ef7
2016-10-04 09:48:28 +13:00
Chris Pearce
5215e69245 Bug 1307248 - Add Is{Primetime,Widevine}KeySystem() functions. r=jwwang
MozReview-Commit-ID: GnH0T8IJhgR

--HG--
extra : rebase_source : cbaa64436e8ce034f6c953afa74001054f2ade0a
2016-10-04 09:40:32 +13:00
Stone Shih
d76caea5e4 Bug 1292063 - Part 1: Add Event.composed. r=smaug
--HG--
extra : rebase_source : 105f9cfddb083d48d3da25fa13bf9a3b4c2637f6
2016-08-31 11:16:11 +08:00