Bug 1752906 - Enable WebMIDI r=bholley

This also adjusts our mochitests so that they know we're exposing the WebMIDI
objects publicly, modifies the way permissions are granted and adjusts our
web platform tests to account for known failures.

Differential Revision: https://phabricator.services.mozilla.com/D137486
This commit is contained in:
Gabriele Svelto 2022-02-21 21:11:12 +00:00
Родитель 74ba113ec0
Коммит 75390b7d30
5 изменённых файлов: 176 добавлений и 93 удалений

Просмотреть файл

@ -759,21 +759,21 @@ var interfaceNamesInGlobalScope = [
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MessagePort", insecureContext: true }, { name: "MessagePort", insecureContext: true },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MIDIAccess", disabled: true }, { name: "MIDIAccess", android: false },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MIDIConnectionEvent", disabled: true }, { name: "MIDIConnectionEvent", android: false },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MIDIInputMap", disabled: true }, { name: "MIDIInputMap", android: false },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MIDIInput", disabled: true }, { name: "MIDIInput", android: false },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MIDIMessageEvent", disabled: true }, { name: "MIDIMessageEvent", android: false },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MIDIOutputMap", disabled: true }, { name: "MIDIOutputMap", android: false },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MIDIOutput", disabled: true }, { name: "MIDIOutput", android: false },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MIDIPort", disabled: true }, { name: "MIDIPort", android: false },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!
{ name: "MimeType", insecureContext: true }, { name: "MimeType", insecureContext: true },
// IMPORTANT: Do not change this list without review from a DOM peer! // IMPORTANT: Do not change this list without review from a DOM peer!

Просмотреть файл

@ -4140,7 +4140,7 @@
# Whether the WebMIDI API is enabled # Whether the WebMIDI API is enabled
- name: dom.webmidi.enabled - name: dom.webmidi.enabled
type: bool type: bool
value: false value: @IS_NOT_ANDROID@
mirror: always mirror: always
# midi permission is addon-gated # midi permission is addon-gated

Просмотреть файл

@ -1,4 +1,5 @@
[midi-reporting.https.html] [midi-reporting.https.html]
expected: TIMEOUT
[MIDI Report Format] [MIDI Report Format]
expected: FAIL expected: TIMEOUT

Просмотреть файл

@ -1 +1 @@
implementation-status: not-implementing prefs: [midi.testing:true, midi.prompt.testing:true]

Просмотреть файл

@ -1,247 +1,329 @@
[idlharness.https.window.html] [idlharness.https.window.html]
[MIDIAccess must be primary interface of access] [MIDIAccess must be primary interface of access]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutputMap interface object name] [MIDIOutputMap interface object name]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutput interface: existence and properties of interface prototype object's @@unscopables property] [MIDIOutput interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutput interface: existence and properties of interface object] [MIDIOutput interface: existence and properties of interface object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInput interface: existence and properties of interface prototype object's @@unscopables property] [MIDIInput interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInputMap interface: existence and properties of interface prototype object's @@unscopables property] [MIDIInputMap interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: attribute outputs] [MIDIAccess interface: attribute outputs]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface object length] [MIDIPort interface object length]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInputMap interface: existence and properties of interface object] [MIDIInputMap interface: existence and properties of interface object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: existence and properties of interface object] [MIDIPort interface: existence and properties of interface object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInputMap must be primary interface of inputs] [MIDIInputMap must be primary interface of inputs]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: access must inherit property "outputs" with the proper type] [MIDIAccess interface: access must inherit property "outputs" with the proper type]
expected: FAIL expected:
if os == "android": FAIL
[MIDIMessageEvent interface: existence and properties of interface prototype object's @@unscopables property] [MIDIMessageEvent interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutputMap interface object length] [MIDIOutputMap interface object length]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInput interface: existence and properties of interface object] [MIDIInput interface: existence and properties of interface object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutputMap interface: existence and properties of interface object] [MIDIOutputMap interface: existence and properties of interface object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: attribute version] [MIDIPort interface: attribute version]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: existence and properties of interface prototype object] [MIDIAccess interface: existence and properties of interface prototype object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInputMap interface: existence and properties of interface prototype object's "constructor" property] [MIDIInputMap interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: attribute onstatechange] [MIDIPort interface: attribute onstatechange]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInputMap interface object length] [MIDIInputMap interface object length]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInput interface: existence and properties of interface prototype object's "constructor" property] [MIDIInput interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: operation open()] [MIDIPort interface: operation open()]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent interface: existence and properties of interface prototype object's "constructor" property] [MIDIConnectionEvent interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutput interface object length] [MIDIOutput interface object length]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: attribute inputs] [MIDIAccess interface: attribute inputs]
expected: FAIL expected:
if os == "android": FAIL
[Stringification of inputs] [Stringification of inputs]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInputMap interface object name] [MIDIInputMap interface object name]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutputMap interface: existence and properties of interface prototype object's "constructor" property] [MIDIOutputMap interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: access must inherit property "inputs" with the proper type] [MIDIAccess interface: access must inherit property "inputs" with the proper type]
expected: FAIL expected:
if os == "android": FAIL
[MIDIMessageEvent interface object name] [MIDIMessageEvent interface object name]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: access must inherit property "onstatechange" with the proper type] [MIDIAccess interface: access must inherit property "onstatechange" with the proper type]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInputMap interface: existence and properties of interface prototype object] [MIDIInputMap interface: existence and properties of interface prototype object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInput interface object length] [MIDIInput interface object length]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInput interface: existence and properties of interface prototype object] [MIDIInput interface: existence and properties of interface prototype object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: access must inherit property "sysexEnabled" with the proper type] [MIDIAccess interface: access must inherit property "sysexEnabled" with the proper type]
expected: FAIL expected:
if os == "android": FAIL
[MIDIMessageEvent interface: attribute data] [MIDIMessageEvent interface: attribute data]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent interface: existence and properties of interface prototype object] [MIDIConnectionEvent interface: existence and properties of interface prototype object]
expected: FAIL expected:
if os == "android": FAIL
[Stringification of outputs] [Stringification of outputs]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: attribute connection] [MIDIPort interface: attribute connection]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutput interface: existence and properties of interface prototype object's "constructor" property] [MIDIOutput interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIMessageEvent interface: existence and properties of interface prototype object's "constructor" property] [MIDIMessageEvent interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutput interface: operation clear()] [MIDIOutput interface: operation clear()]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: operation close()] [MIDIPort interface: operation close()]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: attribute manufacturer] [MIDIPort interface: attribute manufacturer]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutputMap interface: existence and properties of interface prototype object] [MIDIOutputMap interface: existence and properties of interface prototype object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: attribute type] [MIDIPort interface: attribute type]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent interface object length] [MIDIConnectionEvent interface object length]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: existence and properties of interface prototype object's "constructor" property] [MIDIPort interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: existence and properties of interface prototype object's @@unscopables property] [MIDIPort interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent interface object name] [MIDIConnectionEvent interface object name]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: attribute sysexEnabled] [MIDIAccess interface: attribute sysexEnabled]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface object name] [MIDIAccess interface object name]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface object length] [MIDIAccess interface object length]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInput interface: attribute onmidimessage] [MIDIInput interface: attribute onmidimessage]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: attribute onstatechange] [MIDIAccess interface: attribute onstatechange]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: existence and properties of interface object] [MIDIAccess interface: existence and properties of interface object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIMessageEvent interface: existence and properties of interface object] [MIDIMessageEvent interface: existence and properties of interface object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent interface: attribute port] [MIDIConnectionEvent interface: attribute port]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: attribute name] [MIDIPort interface: attribute name]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent interface: existence and properties of interface prototype object's @@unscopables property] [MIDIConnectionEvent interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: existence and properties of interface prototype object] [MIDIPort interface: existence and properties of interface prototype object]
expected: FAIL expected:
if os == "android": FAIL
[Stringification of new MIDIConnectionEvent("type")] [Stringification of new MIDIConnectionEvent("type")]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent interface: new MIDIConnectionEvent("type") must inherit property "port" with the proper type] [MIDIConnectionEvent interface: new MIDIConnectionEvent("type") must inherit property "port" with the proper type]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutput interface object name] [MIDIOutput interface object name]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: existence and properties of interface prototype object's "constructor" property] [MIDIAccess interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL expected:
if os == "android": FAIL
[idl_test setup] [idl_test setup]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent interface: existence and properties of interface object] [MIDIConnectionEvent interface: existence and properties of interface object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIConnectionEvent must be primary interface of new MIDIConnectionEvent("type")] [MIDIConnectionEvent must be primary interface of new MIDIConnectionEvent("type")]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: attribute state] [MIDIPort interface: attribute state]
expected: FAIL expected:
if os == "android": FAIL
[MIDIMessageEvent interface object length] [MIDIMessageEvent interface object length]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutputMap interface: existence and properties of interface prototype object's @@unscopables property] [MIDIOutputMap interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutput interface: existence and properties of interface prototype object] [MIDIOutput interface: existence and properties of interface prototype object]
expected: FAIL expected:
if os == "android": FAIL
[Stringification of access] [Stringification of access]
expected: FAIL expected:
if os == "android": FAIL
[MIDIMessageEvent interface: existence and properties of interface prototype object] [MIDIMessageEvent interface: existence and properties of interface prototype object]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutputMap must be primary interface of outputs] [MIDIOutputMap must be primary interface of outputs]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface object name] [MIDIPort interface object name]
expected: FAIL expected:
if os == "android": FAIL
[MIDIAccess interface: existence and properties of interface prototype object's @@unscopables property] [MIDIAccess interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected:
if os == "android": FAIL
[MIDIPort interface: attribute id] [MIDIPort interface: attribute id]
expected: FAIL expected:
if os == "android": FAIL
[MIDIInput interface object name] [MIDIInput interface object name]
expected: FAIL expected:
if os == "android": FAIL
[Navigator interface: operation requestMIDIAccess(optional MIDIOptions)] [Navigator interface: operation requestMIDIAccess(optional MIDIOptions)]
expected: FAIL expected:
if os == "android": FAIL
[MIDIOutput interface: operation send(sequence<octet>, optional DOMHighResTimeStamp)] [MIDIOutput interface: operation send(sequence<octet>, optional DOMHighResTimeStamp)]
expected: FAIL expected:
if os == "android": FAIL