Skip to content

Commit c8a7a86

Browse files
committed
AX: Support updated WebSpeech API
https://bugs.webkit.org/show_bug.cgi?id=237614 <rdar://problem/89981851> Reviewed by Andres Gonzalez. LayoutTests/imported/w3c: * web-platform-tests/speech-api/SpeechSynthesisErrorEvent-constructor-expected.txt: * web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt: * web-platform-tests/speech-api/idlharness.window-expected.txt: Source/WebCore: Adopt WebSpeech (18 August 2020) changes from https://wicg.github.io/speech-api/ Tests Fixed: imported/w3c/web-platform-tests/speech-api/ * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * Modules/speech/DOMWindow+SpeechSynthesis.idl: * Modules/speech/DOMWindowSpeechSynthesis.cpp: (WebCore::DOMWindowSpeechSynthesis::speechSynthesis): * Modules/speech/SpeechSynthesis.cpp: (WebCore::Ref<SpeechSynthesis>SpeechSynthesis::create): (WebCore::SpeechSynthesis::SpeechSynthesis): (WebCore::SpeechSynthesis::voicesDidChange): (WebCore::SpeechSynthesis::fireEvent const): (WebCore::SpeechSynthesis::fireErrorEvent const): (WebCore::SpeechSynthesis::handleSpeakingCompleted): (WebCore::SpeechSynthesis::boundaryEventOccurred): (WebCore::SpeechSynthesis::didStartSpeaking): (WebCore::SpeechSynthesis::didPauseSpeaking): (WebCore::SpeechSynthesis::didResumeSpeaking): (WebCore::SpeechSynthesis::create): Deleted. (WebCore::SpeechSynthesis::fireEvent): Deleted. * Modules/speech/SpeechSynthesis.h: * Modules/speech/SpeechSynthesis.idl: * Modules/speech/SpeechSynthesisErrorCode.h: Added. * Modules/speech/SpeechSynthesisErrorCode.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl. * Modules/speech/SpeechSynthesisErrorEvent.cpp: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.cpp. (WebCore::SpeechSynthesisErrorEvent::create): (WebCore::SpeechSynthesisErrorEvent::SpeechSynthesisErrorEvent): * Modules/speech/SpeechSynthesisErrorEvent.h: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.h. * Modules/speech/SpeechSynthesisErrorEvent.idl: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.idl. * Modules/speech/SpeechSynthesisErrorEventInit.h: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl. * Modules/speech/SpeechSynthesisErrorEventInit.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl. * Modules/speech/SpeechSynthesisEvent.cpp: (WebCore::SpeechSynthesisEvent::create): (WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent): * Modules/speech/SpeechSynthesisEvent.h: (WebCore::SpeechSynthesisEvent::utterance const): (WebCore::SpeechSynthesisEvent::charLength const): (): Deleted. * Modules/speech/SpeechSynthesisEvent.idl: * Modules/speech/SpeechSynthesisEventInit.h: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.h. (WebCore::SpeechSynthesisEventInit::SpeechSynthesisEventInit): * Modules/speech/SpeechSynthesisEventInit.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl. * Modules/speech/SpeechSynthesisUtterance.cpp: (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance): * Modules/speech/SpeechSynthesisUtterance.h: * Modules/speech/SpeechSynthesisVoice.idl: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * dom/EventNames.h: * dom/EventNames.in: * dom/EventTargetFactory.in: * page/SpeechSynthesisClient.h: * platform/PlatformSpeechSynthesizer.h: * platform/cocoa/PlatformSpeechSynthesizerCocoa.mm: (-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]): (WebCore::PlatformSpeechSynthesizer::initializeVoiceList): * platform/mock/PlatformSpeechSynthesizerMock.cpp: (WebCore::PlatformSpeechSynthesizerMock::speak): Source/WebKit: * UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::boundaryEventOccurred): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::boundaryEventOccurred): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: LayoutTests: Fixed expectations: * imported/w3c/web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt: Updated. * imported/w3c/web-platform-tests/speech-api/SpeechSynthesisErrorEvent-constructor-expected.txt: Updated. * fast/speechsynthesis/speech-synthesis-boundary-events.html: Updated. * fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt: Updated. Canonical link: https://commits.webkit.org/248284@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 196fcd7 commit c8a7a86

48 files changed

Lines changed: 726 additions & 155 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎LayoutTests/ChangeLog‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
2022-03-10 Chris Fleizach <[email protected]>
2+
3+
AX: Support updated WebSpeech API
4+
https://bugs.webkit.org/show_bug.cgi?id=237614
5+
<rdar://problem/89981851>
6+
7+
Reviewed by Andres Gonzalez.
8+
9+
Fixed expectations:
10+
* imported/w3c/web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt: Updated.
11+
* imported/w3c/web-platform-tests/speech-api/SpeechSynthesisErrorEvent-constructor-expected.txt: Updated.
12+
* fast/speechsynthesis/speech-synthesis-boundary-events.html: Updated.
13+
* fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt: Updated.
14+
115
2022-03-10 Antoine Quint <[email protected]>
216

317
[web-animations] font-variant-caps should support discrete animation

‎LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
44

55

66
Speech started
7-
Boundary event: word, Character index: 0
8-
Boundary event: sentence, Character index: 14
7+
Boundary event: word, Character index: 0, length: 3
8+
Boundary event: sentence, Character index: 0, length: 14
99
PASS successfullyParsed is true
1010

1111
TEST COMPLETE

‎LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
}
2626

2727
u.onboundary = function(event) {
28-
debug("Boundary event: " + event.name + ", Character index: " + event.charIndex);
28+
debug(`Boundary event: ${event.name}, Character index: ${event.charIndex}, length: ${event.charLength}`);
2929
}
3030

3131
u.onend = function(event) {

‎LayoutTests/imported/w3c/ChangeLog‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
2022-03-10 Chris Fleizach <[email protected]>
2+
3+
AX: Support updated WebSpeech API
4+
https://bugs.webkit.org/show_bug.cgi?id=237614
5+
<rdar://problem/89981851>
6+
7+
Reviewed by Andres Gonzalez.
8+
9+
* web-platform-tests/speech-api/SpeechSynthesisErrorEvent-constructor-expected.txt:
10+
* web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt:
11+
* web-platform-tests/speech-api/idlharness.window-expected.txt:
12+
113
2022-03-10 Antoine Quint <[email protected]>
214

315
[web-animations] grid-template-areas should support discrete animation
Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,13 @@
11

2-
FAIL SpeechSynthesisErrorEvent with no arguments throws TypeError assert_throws_js: function "() => {
3-
new SpeechSynthesisErrorEvent();
4-
}" threw object "ReferenceError: Can't find variable: SpeechSynthesisErrorEvent" ("ReferenceError") expected instance of function "function TypeError() {
5-
[native code]
6-
}" ("TypeError")
7-
FAIL SpeechSynthesisErrorEvent with no eventInitDict throws TypeError assert_throws_js: function "() => {
8-
new SpeechSynthesisErrorEvent("type");
9-
}" threw object "ReferenceError: Can't find variable: SpeechSynthesisErrorEvent" ("ReferenceError") expected instance of function "function TypeError() {
10-
[native code]
11-
}" ("TypeError")
12-
FAIL SpeechSynthesisErrorEvent with empty eventInitDict throws TypeError (requires
13-
utterance and error) assert_throws_js: function "() => {
14-
new SpeechSynthesisErrorEvent("type", {});
15-
}" threw object "ReferenceError: Can't find variable: SpeechSynthesisErrorEvent" ("ReferenceError") expected instance of function "function TypeError() {
16-
[native code]
17-
}" ("TypeError")
18-
FAIL SpeechSynthesisErrorEvent with eventInitDict without utterance throws
19-
TypeError assert_throws_js: function "() => {
20-
new SpeechSynthesisErrorEvent("type", {error:"not-allowed"});
21-
}" threw object "ReferenceError: Can't find variable: SpeechSynthesisErrorEvent" ("ReferenceError") expected instance of function "function TypeError() {
22-
[native code]
23-
}" ("TypeError")
24-
FAIL SpeechSynthesisErrorEvent with eventInitDict without error throws
25-
TypeError assert_throws_js: function "() => {
26-
new SpeechSynthesisErrorEvent("type", {utterance: new SpeechSynthesisUtterance()});
27-
}" threw object "ReferenceError: Can't find variable: SpeechSynthesisErrorEvent" ("ReferenceError") expected instance of function "function TypeError() {
28-
[native code]
29-
}" ("TypeError")
30-
FAIL SpeechSynthesisErrorEvent with eventInitDict having utterance and error Can't find variable: SpeechSynthesisErrorEvent
31-
FAIL SpeechSynthesisErrorEvent with custom eventInitDict Can't find variable: SpeechSynthesisErrorEvent
32-
FAIL SpeechSynthesisErrorEvent with wrong error enum assert_throws_js: function "() => {
33-
new SpeechSynthesisErrorEvent("type", {
34-
utterance: new SpeechSynthesisUtterance(),
35-
error: error
36-
});
37-
}" threw object "ReferenceError: Can't find variable: SpeechSynthesisErrorEvent" ("ReferenceError") expected instance of function "function TypeError() {
38-
[native code]
39-
}" ("TypeError")
2+
PASS SpeechSynthesisErrorEvent with no arguments throws TypeError
3+
PASS SpeechSynthesisErrorEvent with no eventInitDict throws TypeError
4+
PASS SpeechSynthesisErrorEvent with empty eventInitDict throws TypeError (requires
5+
utterance and error)
6+
PASS SpeechSynthesisErrorEvent with eventInitDict without utterance throws
7+
TypeError
8+
PASS SpeechSynthesisErrorEvent with eventInitDict without error throws
9+
TypeError
10+
PASS SpeechSynthesisErrorEvent with eventInitDict having utterance and error
11+
PASS SpeechSynthesisErrorEvent with custom eventInitDict
12+
PASS SpeechSynthesisErrorEvent with wrong error enum
4013

‎LayoutTests/imported/w3c/web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ PASS SpeechSynthesisEvent with empty eventInitDict throws TypeError (requires
55
utterance)
66
PASS SpeechSynthesisEvent with eventInitDict not having utterance throws
77
TypeError
8-
FAIL SpeechSynthesisEvent with eventInitDict having an utterance Illegal constructor
9-
FAIL SpeechSynthesisEvent with custom eventInitDict Illegal constructor
8+
PASS SpeechSynthesisEvent with eventInitDict having an utterance
9+
PASS SpeechSynthesisEvent with custom eventInitDict
1010

‎LayoutTests/imported/w3c/web-platform-tests/speech-api/idlharness.window-expected.txt‎

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -129,27 +129,27 @@ FAIL SpeechGrammarList interface: new SpeechGrammarList() must inherit property
129129
FAIL SpeechGrammarList interface: calling addFromURI(DOMString, optional float) on new SpeechGrammarList() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: SpeechGrammarList"
130130
FAIL SpeechGrammarList interface: new SpeechGrammarList() must inherit property "addFromString(DOMString, optional float)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: SpeechGrammarList"
131131
FAIL SpeechGrammarList interface: calling addFromString(DOMString, optional float) on new SpeechGrammarList() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: SpeechGrammarList"
132-
FAIL SpeechSynthesis interface: existence and properties of interface object assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
133-
FAIL SpeechSynthesis interface object length assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
134-
FAIL SpeechSynthesis interface object name assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
135-
FAIL SpeechSynthesis interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
136-
FAIL SpeechSynthesis interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
137-
FAIL SpeechSynthesis interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
138-
FAIL SpeechSynthesis interface: attribute pending assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
139-
FAIL SpeechSynthesis interface: attribute speaking assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
140-
FAIL SpeechSynthesis interface: attribute paused assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
141-
FAIL SpeechSynthesis interface: attribute onvoiceschanged assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
142-
FAIL SpeechSynthesis interface: operation speak(SpeechSynthesisUtterance) assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
143-
FAIL SpeechSynthesis interface: operation cancel() assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
144-
FAIL SpeechSynthesis interface: operation pause() assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
145-
FAIL SpeechSynthesis interface: operation resume() assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
146-
FAIL SpeechSynthesis interface: operation getVoices() assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
147-
FAIL SpeechSynthesis must be primary interface of speechSynthesis assert_own_property: self does not have own property "SpeechSynthesis" expected property "SpeechSynthesis" missing
132+
PASS SpeechSynthesis interface: existence and properties of interface object
133+
PASS SpeechSynthesis interface object length
134+
PASS SpeechSynthesis interface object name
135+
PASS SpeechSynthesis interface: existence and properties of interface prototype object
136+
PASS SpeechSynthesis interface: existence and properties of interface prototype object's "constructor" property
137+
PASS SpeechSynthesis interface: existence and properties of interface prototype object's @@unscopables property
138+
PASS SpeechSynthesis interface: attribute pending
139+
PASS SpeechSynthesis interface: attribute speaking
140+
PASS SpeechSynthesis interface: attribute paused
141+
PASS SpeechSynthesis interface: attribute onvoiceschanged
142+
PASS SpeechSynthesis interface: operation speak(SpeechSynthesisUtterance)
143+
PASS SpeechSynthesis interface: operation cancel()
144+
PASS SpeechSynthesis interface: operation pause()
145+
PASS SpeechSynthesis interface: operation resume()
146+
PASS SpeechSynthesis interface: operation getVoices()
147+
PASS SpeechSynthesis must be primary interface of speechSynthesis
148148
PASS Stringification of speechSynthesis
149149
PASS SpeechSynthesis interface: speechSynthesis must inherit property "pending" with the proper type
150150
PASS SpeechSynthesis interface: speechSynthesis must inherit property "speaking" with the proper type
151151
PASS SpeechSynthesis interface: speechSynthesis must inherit property "paused" with the proper type
152-
FAIL SpeechSynthesis interface: speechSynthesis must inherit property "onvoiceschanged" with the proper type assert_inherits: property "onvoiceschanged" not found in prototype chain
152+
PASS SpeechSynthesis interface: speechSynthesis must inherit property "onvoiceschanged" with the proper type
153153
PASS SpeechSynthesis interface: speechSynthesis must inherit property "speak(SpeechSynthesisUtterance)" with the proper type
154154
PASS SpeechSynthesis interface: calling speak(SpeechSynthesisUtterance) on speechSynthesis with too few arguments must throw TypeError
155155
PASS SpeechSynthesis interface: speechSynthesis must inherit property "cancel()" with the proper type
@@ -191,35 +191,35 @@ PASS SpeechSynthesisUtterance interface: new SpeechSynthesisUtterance() must inh
191191
PASS SpeechSynthesisUtterance interface: new SpeechSynthesisUtterance() must inherit property "onmark" with the proper type
192192
PASS SpeechSynthesisUtterance interface: new SpeechSynthesisUtterance() must inherit property "onboundary" with the proper type
193193
PASS SpeechSynthesisEvent interface: existence and properties of interface object
194-
FAIL SpeechSynthesisEvent interface object length assert_equals: wrong value for SpeechSynthesisEvent.length expected 2 but got 0
194+
PASS SpeechSynthesisEvent interface object length
195195
PASS SpeechSynthesisEvent interface object name
196196
PASS SpeechSynthesisEvent interface: existence and properties of interface prototype object
197197
PASS SpeechSynthesisEvent interface: existence and properties of interface prototype object's "constructor" property
198198
PASS SpeechSynthesisEvent interface: existence and properties of interface prototype object's @@unscopables property
199-
FAIL SpeechSynthesisEvent interface: attribute utterance assert_true: The prototype object must have a property "utterance" expected true got false
199+
PASS SpeechSynthesisEvent interface: attribute utterance
200200
PASS SpeechSynthesisEvent interface: attribute charIndex
201-
FAIL SpeechSynthesisEvent interface: attribute charLength assert_true: The prototype object must have a property "charLength" expected true got false
201+
PASS SpeechSynthesisEvent interface: attribute charLength
202202
PASS SpeechSynthesisEvent interface: attribute elapsedTime
203203
PASS SpeechSynthesisEvent interface: attribute name
204-
FAIL SpeechSynthesisErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "SpeechSynthesisErrorEvent" expected property "SpeechSynthesisErrorEvent" missing
205-
FAIL SpeechSynthesisErrorEvent interface object length assert_own_property: self does not have own property "SpeechSynthesisErrorEvent" expected property "SpeechSynthesisErrorEvent" missing
206-
FAIL SpeechSynthesisErrorEvent interface object name assert_own_property: self does not have own property "SpeechSynthesisErrorEvent" expected property "SpeechSynthesisErrorEvent" missing
207-
FAIL SpeechSynthesisErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SpeechSynthesisErrorEvent" expected property "SpeechSynthesisErrorEvent" missing
208-
FAIL SpeechSynthesisErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SpeechSynthesisErrorEvent" expected property "SpeechSynthesisErrorEvent" missing
209-
FAIL SpeechSynthesisErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SpeechSynthesisErrorEvent" expected property "SpeechSynthesisErrorEvent" missing
210-
FAIL SpeechSynthesisErrorEvent interface: attribute error assert_own_property: self does not have own property "SpeechSynthesisErrorEvent" expected property "SpeechSynthesisErrorEvent" missing
211-
FAIL SpeechSynthesisVoice interface: existence and properties of interface object assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
212-
FAIL SpeechSynthesisVoice interface object length assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
213-
FAIL SpeechSynthesisVoice interface object name assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
214-
FAIL SpeechSynthesisVoice interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
215-
FAIL SpeechSynthesisVoice interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
216-
FAIL SpeechSynthesisVoice interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
217-
FAIL SpeechSynthesisVoice interface: attribute voiceURI assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
218-
FAIL SpeechSynthesisVoice interface: attribute name assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
219-
FAIL SpeechSynthesisVoice interface: attribute lang assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
220-
FAIL SpeechSynthesisVoice interface: attribute localService assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
221-
FAIL SpeechSynthesisVoice interface: attribute default assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
222-
FAIL SpeechSynthesisVoice must be primary interface of voice assert_own_property: self does not have own property "SpeechSynthesisVoice" expected property "SpeechSynthesisVoice" missing
204+
PASS SpeechSynthesisErrorEvent interface: existence and properties of interface object
205+
PASS SpeechSynthesisErrorEvent interface object length
206+
PASS SpeechSynthesisErrorEvent interface object name
207+
PASS SpeechSynthesisErrorEvent interface: existence and properties of interface prototype object
208+
PASS SpeechSynthesisErrorEvent interface: existence and properties of interface prototype object's "constructor" property
209+
PASS SpeechSynthesisErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
210+
PASS SpeechSynthesisErrorEvent interface: attribute error
211+
PASS SpeechSynthesisVoice interface: existence and properties of interface object
212+
PASS SpeechSynthesisVoice interface object length
213+
PASS SpeechSynthesisVoice interface object name
214+
PASS SpeechSynthesisVoice interface: existence and properties of interface prototype object
215+
PASS SpeechSynthesisVoice interface: existence and properties of interface prototype object's "constructor" property
216+
PASS SpeechSynthesisVoice interface: existence and properties of interface prototype object's @@unscopables property
217+
PASS SpeechSynthesisVoice interface: attribute voiceURI
218+
PASS SpeechSynthesisVoice interface: attribute name
219+
PASS SpeechSynthesisVoice interface: attribute lang
220+
PASS SpeechSynthesisVoice interface: attribute localService
221+
PASS SpeechSynthesisVoice interface: attribute default
222+
PASS SpeechSynthesisVoice must be primary interface of voice
223223
PASS Stringification of voice
224224
PASS SpeechSynthesisVoice interface: voice must inherit property "voiceURI" with the proper type
225225
PASS SpeechSynthesisVoice interface: voice must inherit property "name" with the proper type

0 commit comments

Comments
 (0)