Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Unified Diff: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html

Issue 2831963003: EME: Allow temporary sessions to be removed for ClearKey only. (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html
diff --git a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html
new file mode 100644
index 0000000000000000000000000000000000000000..3ea6e78b7feb63daedda7a29ccbd6616e11ea5ba
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MediaKeySession remove() function on temporary sessions</title>
+ <script src="encrypted-media-utils.js"></script>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <script>
+ promise_test(function(test)
+ {
+ var keyId = stringToUint8Array('0123456789012345');
+ var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0xd2, 0x7b,
+ 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0xae, 0x3c]);
+
+ var mediaKeySession;
+ var waitForMessagePromise;
+
+ return navigator.requestMediaKeySystemAccess('org.w3.clearkey', getSimpleConfigurationForInitDataType('keyids')).then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
+ mediaKeySession = mediaKeys.createSession();
+ waitForMessagePromise = waitForSingleEvent(mediaKeySession, 'message', function(e, resolve, reject) {
+ resolve();
+ });
+ const request = stringToUint8Array(createKeyIDs(keyId));
+ return mediaKeySession.generateRequest('keyids', request);
+ }).then(function() {
+ return waitForMessagePromise;
+ }).then(function() {
+ const jwkSet = stringToUint8Array(createJWKSet(createJWK(keyId, rawKey)));
+ return mediaKeySession.update(jwkSet);
+ }).then(function() {
+ // After update() the session should have 1 usable key.
+ verifyKeyStatuses(mediaKeySession.keyStatuses,
+ { expected: [keyId], unexpected: [] }, 'usable');
+ return mediaKeySession.remove();
+ }).then(function() {
+ // After remove() all keys should be 'released'.
+ verifyKeyStatuses(mediaKeySession.keyStatuses,
+ { expected: [keyId], unexpected: [] }, 'released');
+ // After remove() the session expiry should be NaN.
+ // ClearKey doesn't change set expiry times, but check
+ // anyway.
+ assert_true(isNaN(mediaKeySession.expiration));
+ return mediaKeySession.close();
+ }).then(function() {
+ // After close() there should be no keys.
+ verifyKeyStatuses(mediaKeySession.keyStatuses,
+ { expected: [], unexpected: [keyId] });
+ });
+
+ }, 'Test MediaKeySession remove() function on temporary sessions');
+ </script>
+ </body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698