File: encrypted-media.idl

package info (click to toggle)
firefox-esr 78.15.0esr-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 3,301,156 kB
  • sloc: cpp: 5,665,905; javascript: 4,798,386; ansic: 2,878,233; python: 977,004; asm: 270,347; xml: 181,456; java: 111,756; sh: 72,926; makefile: 21,819; perl: 13,380; cs: 4,725; yacc: 4,565; objc: 3,026; pascal: 1,787; lex: 1,720; ada: 1,681; exp: 505; php: 436; lisp: 260; awk: 152; ruby: 103; csh: 80; sed: 53; sql: 45
file content (117 lines) | stat: -rw-r--r-- 4,216 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Encrypted Media Extensions (https://w3c.github.io/encrypted-media/)

[Exposed=Window]
partial interface Navigator {
    [SecureContext] Promise<MediaKeySystemAccess> requestMediaKeySystemAccess (DOMString keySystem, sequence<MediaKeySystemConfiguration> supportedConfigurations);
};

enum MediaKeysRequirement {
    "required",
    "optional",
    "not-allowed"
};

dictionary MediaKeySystemConfiguration {
             DOMString                               label = "";
             sequence<DOMString>                     initDataTypes = [];
             sequence<MediaKeySystemMediaCapability> audioCapabilities = [];
             sequence<MediaKeySystemMediaCapability> videoCapabilities = [];
             MediaKeysRequirement                    distinctiveIdentifier = "optional";
             MediaKeysRequirement                    persistentState = "optional";
             sequence<DOMString>                     sessionTypes;
};

dictionary MediaKeySystemMediaCapability {
   DOMString contentType = "";
   DOMString? encryptionScheme = null;
   DOMString robustness = "";
};

[Exposed=Window, SecureContext] interface MediaKeySystemAccess {
    readonly        attribute DOMString keySystem;
    MediaKeySystemConfiguration getConfiguration ();
    Promise<MediaKeys>          createMediaKeys ();
};

enum MediaKeySessionType {
    "temporary",
    "persistent-license",
    "persistent-usage-record"
};

[Exposed=Window, SecureContext] interface MediaKeys {
    MediaKeySession  createSession (optional MediaKeySessionType sessionType = "temporary");
    Promise<boolean> setServerCertificate (BufferSource serverCertificate);
};

[Exposed=Window, SecureContext] interface MediaKeySession : EventTarget {
    readonly        attribute DOMString           sessionId;
    readonly        attribute unrestricted double expiration;
    readonly        attribute Promise<void>       closed;
    readonly        attribute MediaKeyStatusMap   keyStatuses;
                    attribute EventHandler        onkeystatuseschange;
                    attribute EventHandler        onmessage;
    Promise<void>    generateRequest (DOMString initDataType, BufferSource initData);
    Promise<boolean> load (DOMString sessionId);
    Promise<void>    update (BufferSource response);
    Promise<void>    close ();
    Promise<void>    remove ();
};

[Exposed=Window, SecureContext] interface MediaKeyStatusMap {
    iterable<BufferSource,MediaKeyStatus>;
    readonly        attribute unsigned long size;
    boolean has (BufferSource keyId);
    any     get (BufferSource keyId);
};

enum MediaKeyStatus {
    "usable",
    "expired",
    "released",
    "output-restricted",
    "output-downscaled",
    "status-pending",
    "internal-error"
};

enum MediaKeyMessageType {
    "license-request",
    "license-renewal",
    "license-release",
    "individualization-request"
};

[Exposed=Window, SecureContext]
interface MediaKeyMessageEvent : Event {
    constructor(DOMString type, MediaKeyMessageEventInit eventInitDict);
    readonly        attribute MediaKeyMessageType messageType;
    readonly        attribute ArrayBuffer         message;
};

dictionary MediaKeyMessageEventInit : EventInit {
             required MediaKeyMessageType messageType;
             required ArrayBuffer         message;
};

[Exposed=Window] partial interface HTMLMediaElement {
    [SecureContext] readonly        attribute MediaKeys?   mediaKeys;
                                    attribute EventHandler onencrypted;
                                    attribute EventHandler onwaitingforkey;
    [SecureContext] Promise<void> setMediaKeys (MediaKeys? mediaKeys);
};

[Exposed=Window]
interface MediaEncryptedEvent : Event {
    constructor(DOMString type, optional MediaEncryptedEventInit eventInitDict = {});
    readonly        attribute DOMString    initDataType;
    readonly        attribute ArrayBuffer? initData;
};

dictionary MediaEncryptedEventInit : EventInit {
             DOMString    initDataType = "";
             ArrayBuffer? initData = null;
};