summaryrefslogtreecommitdiffstats
path: root/dom/media/webspeech/synth
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/webspeech/synth')
-rw-r--r--dom/media/webspeech/synth/moz.build74
-rw-r--r--dom/media/webspeech/synth/test/FakeSynthModule.cpp55
-rw-r--r--dom/media/webspeech/synth/test/common.js91
-rw-r--r--dom/media/webspeech/synth/test/file_bfcache_frame.html28
-rw-r--r--dom/media/webspeech/synth/test/file_global_queue.html69
-rw-r--r--dom/media/webspeech/synth/test/file_global_queue_cancel.html88
-rw-r--r--dom/media/webspeech/synth/test/file_global_queue_pause.html131
-rw-r--r--dom/media/webspeech/synth/test/file_indirect_service_events.html102
-rw-r--r--dom/media/webspeech/synth/test/file_setup.html95
-rw-r--r--dom/media/webspeech/synth/test/file_speech_cancel.html100
-rw-r--r--dom/media/webspeech/synth/test/file_speech_error.html46
-rw-r--r--dom/media/webspeech/synth/test/file_speech_queue.html85
-rw-r--r--dom/media/webspeech/synth/test/file_speech_simple.html53
-rw-r--r--dom/media/webspeech/synth/test/mochitest.ini26
-rw-r--r--dom/media/webspeech/synth/test/nsFakeSynthServices.cpp401
-rw-r--r--dom/media/webspeech/synth/test/nsFakeSynthServices.h52
-rw-r--r--dom/media/webspeech/synth/test/startup/file_voiceschanged.html32
-rw-r--r--dom/media/webspeech/synth/test/startup/mochitest.ini7
-rw-r--r--dom/media/webspeech/synth/test/startup/test_voiceschanged.html32
-rw-r--r--dom/media/webspeech/synth/test/test_bfcache.html45
-rw-r--r--dom/media/webspeech/synth/test/test_global_queue.html35
-rw-r--r--dom/media/webspeech/synth/test/test_global_queue_cancel.html35
-rw-r--r--dom/media/webspeech/synth/test/test_global_queue_pause.html35
-rw-r--r--dom/media/webspeech/synth/test/test_indirect_service_events.html36
-rw-r--r--dom/media/webspeech/synth/test/test_setup.html32
-rw-r--r--dom/media/webspeech/synth/test/test_speech_cancel.html35
-rw-r--r--dom/media/webspeech/synth/test/test_speech_error.html35
-rw-r--r--dom/media/webspeech/synth/test/test_speech_queue.html37
-rw-r--r--dom/media/webspeech/synth/test/test_speech_simple.html34
29 files changed, 31 insertions, 1895 deletions
diff --git a/dom/media/webspeech/synth/moz.build b/dom/media/webspeech/synth/moz.build
index 7b8c4cd31..3f4e363db 100644
--- a/dom/media/webspeech/synth/moz.build
+++ b/dom/media/webspeech/synth/moz.build
@@ -3,56 +3,44 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-if CONFIG['MOZ_WEBSPEECH']:
- MOCHITEST_MANIFESTS += [
- 'test/mochitest.ini',
- 'test/startup/mochitest.ini',
- ]
+XPIDL_MODULE = 'dom_webspeechsynth'
- XPIDL_MODULE = 'dom_webspeechsynth'
-
- XPIDL_SOURCES += [
- 'nsISpeechService.idl',
- 'nsISynthVoiceRegistry.idl'
- ]
-
- EXPORTS.mozilla.dom += [
- 'ipc/SpeechSynthesisChild.h',
- 'ipc/SpeechSynthesisParent.h',
- 'nsSpeechTask.h',
- 'nsSynthVoiceRegistry.h',
- 'SpeechSynthesis.h',
- 'SpeechSynthesisUtterance.h',
- 'SpeechSynthesisVoice.h',
- ]
+XPIDL_SOURCES += [
+ 'nsISpeechService.idl',
+ 'nsISynthVoiceRegistry.idl'
+]
- SOURCES += [
- 'ipc/SpeechSynthesisChild.cpp',
- 'ipc/SpeechSynthesisParent.cpp',
- 'nsSpeechTask.cpp',
- 'nsSynthVoiceRegistry.cpp',
- 'SpeechSynthesis.cpp',
- 'SpeechSynthesisUtterance.cpp',
- 'SpeechSynthesisVoice.cpp',
- ]
+EXPORTS.mozilla.dom += [
+ 'ipc/SpeechSynthesisChild.h',
+ 'ipc/SpeechSynthesisParent.h',
+ 'nsSpeechTask.h',
+ 'nsSynthVoiceRegistry.h',
+ 'SpeechSynthesis.h',
+ 'SpeechSynthesisUtterance.h',
+ 'SpeechSynthesisVoice.h',
+]
- if CONFIG['MOZ_WEBSPEECH_TEST_BACKEND']:
- SOURCES += [
- 'test/FakeSynthModule.cpp',
- 'test/nsFakeSynthServices.cpp'
- ]
+SOURCES += [
+ 'ipc/SpeechSynthesisChild.cpp',
+ 'ipc/SpeechSynthesisParent.cpp',
+ 'nsSpeechTask.cpp',
+ 'nsSynthVoiceRegistry.cpp',
+ 'SpeechSynthesis.cpp',
+ 'SpeechSynthesisUtterance.cpp',
+ 'SpeechSynthesisVoice.cpp',
+]
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
- DIRS += ['windows']
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+ DIRS += ['windows']
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
- DIRS += ['cocoa']
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+ DIRS += ['cocoa']
- if CONFIG['MOZ_SYNTH_SPEECHD']:
- DIRS += ['speechd']
+if CONFIG['MOZ_SYNTH_SPEECHD']:
+ DIRS += ['speechd']
- if CONFIG['MOZ_SYNTH_PICO']:
- DIRS += ['pico']
+if CONFIG['MOZ_SYNTH_PICO']:
+ DIRS += ['pico']
IPDL_SOURCES += [
'ipc/PSpeechSynthesis.ipdl',
diff --git a/dom/media/webspeech/synth/test/FakeSynthModule.cpp b/dom/media/webspeech/synth/test/FakeSynthModule.cpp
deleted file mode 100644
index 5621ab78a..000000000
--- a/dom/media/webspeech/synth/test/FakeSynthModule.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "mozilla/ModuleUtils.h"
-#include "nsIClassInfoImpl.h"
-
-#include "nsFakeSynthServices.h"
-
-using namespace mozilla::dom;
-
-#define FAKESYNTHSERVICE_CID \
- {0xe7d52d9e, 0xc148, 0x47d8, {0xab, 0x2a, 0x95, 0xd7, 0xf4, 0x0e, 0xa5, 0x3d}}
-
-#define FAKESYNTHSERVICE_CONTRACTID "@mozilla.org/fakesynth;1"
-
-// Defines nsFakeSynthServicesConstructor
-NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsFakeSynthServices,
- nsFakeSynthServices::GetInstanceForService)
-
-// Defines kFAKESYNTHSERVICE_CID
-NS_DEFINE_NAMED_CID(FAKESYNTHSERVICE_CID);
-
-static const mozilla::Module::CIDEntry kCIDs[] = {
- { &kFAKESYNTHSERVICE_CID, true, nullptr, nsFakeSynthServicesConstructor },
- { nullptr }
-};
-
-static const mozilla::Module::ContractIDEntry kContracts[] = {
- { FAKESYNTHSERVICE_CONTRACTID, &kFAKESYNTHSERVICE_CID },
- { nullptr }
-};
-
-static const mozilla::Module::CategoryEntry kCategories[] = {
- { "speech-synth-started", "Fake Speech Synth", FAKESYNTHSERVICE_CONTRACTID },
- { nullptr }
-};
-
-static void
-UnloadFakeSynthmodule()
-{
- nsFakeSynthServices::Shutdown();
-}
-
-static const mozilla::Module kModule = {
- mozilla::Module::kVersion,
- kCIDs,
- kContracts,
- kCategories,
- nullptr,
- nullptr,
- UnloadFakeSynthmodule
-};
-
-NSMODULE_DEFN(fakesynth) = &kModule;
diff --git a/dom/media/webspeech/synth/test/common.js b/dom/media/webspeech/synth/test/common.js
deleted file mode 100644
index 0ce9ec51b..000000000
--- a/dom/media/webspeech/synth/test/common.js
+++ /dev/null
@@ -1,91 +0,0 @@
-function synthTestQueue(aTestArgs, aEndFunc) {
- var utterances = [];
- for (var i in aTestArgs) {
- var uargs = aTestArgs[i][0];
- var win = uargs.win || window;
- var u = new win.SpeechSynthesisUtterance(uargs.text);
-
- if (uargs.args) {
- for (var attr in uargs.args)
- u[attr] = uargs.args[attr];
- }
-
- function onend_handler(e) {
- is(e.target, utterances.shift(), "Target matches utterances");
- ok(!speechSynthesis.speaking, "speechSynthesis is not speaking.");
-
- if (utterances.length) {
- ok(speechSynthesis.pending, "other utterances queued");
- } else {
- ok(!speechSynthesis.pending, "queue is empty, nothing pending.");
- if (aEndFunc)
- aEndFunc();
- }
- }
-
- u.addEventListener('start',
- (function (expectedUri) {
- return function (e) {
- if (expectedUri) {
- var chosenVoice = SpecialPowers.wrap(e).target.chosenVoiceURI;
- is(chosenVoice, expectedUri, "Incorrect URI is used");
- }
- };
- })(aTestArgs[i][1] ? aTestArgs[i][1].uri : null));
-
- u.addEventListener('end', onend_handler);
- u.addEventListener('error', onend_handler);
-
- u.addEventListener('error',
- (function (expectedError) {
- return function onerror_handler(e) {
- ok(expectedError, "Error in speech utterance '" + e.target.text + "'");
- };
- })(aTestArgs[i][1] ? aTestArgs[i][1].err : false));
-
- utterances.push(u);
- win.speechSynthesis.speak(u);
- }
-
- ok(!speechSynthesis.speaking, "speechSynthesis is not speaking yet.");
- ok(speechSynthesis.pending, "speechSynthesis has an utterance queued.");
-}
-
-function loadFrame(frameId) {
- return new Promise(function(resolve, reject) {
- var frame = document.getElementById(frameId);
- frame.addEventListener('load', function (e) {
- frame.contentWindow.document.title = frameId;
- resolve(frame);
- });
- frame.src = 'data:text/html,' + encodeURI('<html><head></head><body></body></html>');
- });
-}
-
-function waitForVoices(win) {
- return new Promise(resolve => {
- function resolver() {
- if (win.speechSynthesis.getVoices().length) {
- win.speechSynthesis.removeEventListener('voiceschanged', resolver);
- resolve();
- }
- }
-
- win.speechSynthesis.addEventListener('voiceschanged', resolver);
- resolver();
- });
-}
-
-function loadSpeechTest(fileName, prefs, frameId="testFrame") {
- loadFrame(frameId).then(frame => {
- waitForVoices(frame.contentWindow).then(
- () => document.getElementById("testFrame").src = fileName);
- });
-}
-
-function testSynthState(win, expectedState) {
- for (var attr in expectedState) {
- is(win.speechSynthesis[attr], expectedState[attr],
- win.document.title + ": '" + attr + '" does not match');
- }
-} \ No newline at end of file
diff --git a/dom/media/webspeech/synth/test/file_bfcache_frame.html b/dom/media/webspeech/synth/test/file_bfcache_frame.html
deleted file mode 100644
index c8663b7fb..000000000
--- a/dom/media/webspeech/synth/test/file_bfcache_frame.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <meta charset="utf-8">
- <script type="application/javascript">
- var frameUnloaded = function() {
- var u = new SpeechSynthesisUtterance('hi');
- u.addEventListener('end', function () {
- parent.ok(true, 'Successfully spoke utterance from new frame.');
- parent.onDone();
- });
- speechSynthesis.speak(u);
- }
- addEventListener('pageshow', function onshow(evt) {
- var u = new SpeechSynthesisUtterance('hello');
- u.lang = 'it-IT-noend';
- u.addEventListener('start', function() {
- location =
- 'data:text/html,<html><body onpageshow="' +
- frameUnloaded.toSource() + '()"></body></html>';
- });
- speechSynthesis.speak(u);
- });
- </script>
-</head>
-<body>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_global_queue.html b/dom/media/webspeech/synth/test/file_global_queue.html
deleted file mode 100644
index 5d762c0d5..000000000
--- a/dom/media/webspeech/synth/test/file_global_queue.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1188099
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1188099: Global queue should correctly schedule utterances</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.info = parent.info;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- window.todo = parent.todo;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1188099">Mozilla Bug 1188099</a>
-<iframe id="frame1"></iframe>
-<iframe id="frame2"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
- Promise.all([loadFrame('frame1'), loadFrame('frame2')]).then(function ([frame1, frame2]) {
- var win1 = frame1.contentWindow;
- var win2 = frame2.contentWindow;
- var utterance1 = new win1.SpeechSynthesisUtterance("hello, losers");
- var utterance2 = new win1.SpeechSynthesisUtterance("hello, losers three");
- var utterance3 = new win2.SpeechSynthesisUtterance("hello, losers too");
- var eventOrder = ['start1', 'end1', 'start3', 'end3', 'start2', 'end2'];
- utterance1.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start1', 'start1');
- testSynthState(win1, { speaking: true, pending: true });
- testSynthState(win2, { speaking: true, pending: true });
- });
- utterance1.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end1', 'end1');
- });
- utterance3.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start3', 'start3');
- testSynthState(win1, { speaking: true, pending: true });
- testSynthState(win2, { speaking: true, pending: false });
- });
- utterance3.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end3', 'end3');
- });
- utterance2.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start2', 'start2');
- testSynthState(win1, { speaking: true, pending: false });
- testSynthState(win2, { speaking: true, pending: false });
- });
- utterance2.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end2', 'end2');
- testSynthState(win1, { speaking: false, pending: false });
- testSynthState(win2, { speaking: false, pending: false });
- SimpleTest.finish();
- });
- win1.speechSynthesis.speak(utterance1);
- win1.speechSynthesis.speak(utterance2);
- win2.speechSynthesis.speak(utterance3);
- });
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_global_queue_cancel.html b/dom/media/webspeech/synth/test/file_global_queue_cancel.html
deleted file mode 100644
index 03b77ba2f..000000000
--- a/dom/media/webspeech/synth/test/file_global_queue_cancel.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1188099
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1188099: Calling cancel() should work correctly with global queue</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.info = parent.info;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- window.todo = parent.todo;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1188099">Mozilla Bug 1188099</a>
-<iframe id="frame1"></iframe>
-<iframe id="frame2"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
- Promise.all([loadFrame('frame1'), loadFrame('frame2')]).then(function ([frame1, frame2]) {
- var win1 = frame1.contentWindow;
- var win2 = frame2.contentWindow;
-
- var utterance1 = new win1.SpeechSynthesisUtterance(
- "u1: Donec ac nunc feugiat, posuere");
- utterance1.lang = 'it-IT-noend';
- var utterance2 = new win1.SpeechSynthesisUtterance("u2: hello, losers too");
- utterance2.lang = 'it-IT-noend';
- var utterance3 = new win1.SpeechSynthesisUtterance("u3: hello, losers three");
-
- var utterance4 = new win2.SpeechSynthesisUtterance("u4: hello, losers same!");
- utterance4.lang = 'it-IT-noend';
- var utterance5 = new win2.SpeechSynthesisUtterance("u5: hello, losers too");
- utterance5.lang = 'it-IT-noend';
-
- var eventOrder = ['start1', 'end1', 'start2', 'end2'];
- utterance1.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start1', 'start1');
- testSynthState(win1, { speaking: true, pending: true });
- testSynthState(win2, { speaking: true, pending: true });
- win2.speechSynthesis.cancel();
- SpecialPowers.wrap(win1.speechSynthesis).forceEnd();
-
- });
- utterance1.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end1', 'end1');
- testSynthState(win1, { pending: true });
- testSynthState(win2, { pending: false });
- });
- utterance2.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start2', 'start2');
- testSynthState(win1, { speaking: true, pending: true });
- testSynthState(win2, { speaking: true, pending: false });
- win1.speechSynthesis.cancel();
- });
- utterance2.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end2', 'end2');
- testSynthState(win1, { speaking: false, pending: false });
- testSynthState(win2, { speaking: false, pending: false });
- SimpleTest.finish();
- });
-
- function wrongUtterance(e) {
- ok(false, 'This shall not be uttered: "' + e.target.text + '"');
- }
-
- utterance3.addEventListener('start', wrongUtterance);
- utterance4.addEventListener('start', wrongUtterance);
- utterance5.addEventListener('start', wrongUtterance);
-
- win1.speechSynthesis.speak(utterance1);
- win1.speechSynthesis.speak(utterance2);
- win1.speechSynthesis.speak(utterance3);
- win2.speechSynthesis.speak(utterance4);
- win2.speechSynthesis.speak(utterance5);
- });
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_global_queue_pause.html b/dom/media/webspeech/synth/test/file_global_queue_pause.html
deleted file mode 100644
index 7fd562133..000000000
--- a/dom/media/webspeech/synth/test/file_global_queue_pause.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1188099
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1188099: Calling pause() should work correctly with global queue</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.info = parent.info;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- window.todo = parent.todo;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1188099">Mozilla Bug 1188099</a>
-<iframe id="frame1"></iframe>
-<iframe id="frame2"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
- Promise.all([loadFrame('frame1'), loadFrame('frame2')]).then(function ([frame1, frame2]) {
- var win1 = frame1.contentWindow;
- var win2 = frame2.contentWindow;
-
- var utterance1 = new win1.SpeechSynthesisUtterance("Speak utterance 1.");
- utterance1.lang = 'it-IT-noend';
- var utterance2 = new win2.SpeechSynthesisUtterance("Speak utterance 2.");
- var utterance3 = new win1.SpeechSynthesisUtterance("Speak utterance 3.");
- var utterance4 = new win2.SpeechSynthesisUtterance("Speak utterance 4.");
- var eventOrder = ['start1', 'pause1', 'resume1', 'end1', 'start2', 'end2',
- 'start4', 'end4', 'start3', 'end3'];
-
- utterance1.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start1', 'start1');
- win1.speechSynthesis.pause();
- });
- utterance1.addEventListener('pause', function(e) {
- var expectedEvent = eventOrder.shift()
- is(expectedEvent, 'pause1', 'pause1');
- testSynthState(win1, { speaking: true, pending: false, paused: true});
- testSynthState(win2, { speaking: true, pending: true, paused: false});
-
- if (expectedEvent == 'pause1') {
- win1.speechSynthesis.resume();
- }
- });
- utterance1.addEventListener('resume', function(e) {
- is(eventOrder.shift(), 'resume1', 'resume1');
- testSynthState(win1, { speaking: true, pending: false, paused: false});
- testSynthState(win2, { speaking: true, pending: true, paused: false});
-
- win2.speechSynthesis.pause();
-
- testSynthState(win1, { speaking: true, pending: false, paused: false});
- // 1188099: currently, paused state is not gaurenteed to be immediate.
- testSynthState(win2, { speaking: true, pending: true });
-
- // We now make the utterance end.
- SpecialPowers.wrap(win1.speechSynthesis).forceEnd();
- });
- utterance1.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end1', 'end1');
- testSynthState(win1, { speaking: false, pending: false, paused: false});
- testSynthState(win2, { speaking: false, pending: true, paused: true});
-
- win2.speechSynthesis.resume();
- });
-
- utterance2.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start2', 'start2');
- testSynthState(win1, { speaking: true, pending: false, paused: false});
- testSynthState(win2, { speaking: true, pending: false, paused: false});
- });
- utterance2.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end2', 'end2');
- testSynthState(win1, { speaking: false, pending: false, paused: false});
- testSynthState(win2, { speaking: false, pending: false, paused: false});
-
- win1.speechSynthesis.pause();
-
- testSynthState(win1, { speaking: false, pending: false, paused: true});
- testSynthState(win2, { speaking: false, pending: false, paused: false});
-
- win1.speechSynthesis.speak(utterance3);
- win2.speechSynthesis.speak(utterance4);
-
- testSynthState(win1, { speaking: false, pending: true, paused: true});
- testSynthState(win2, { speaking: false, pending: true, paused: false});
- });
-
- utterance4.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start4', 'start4');
- testSynthState(win1, { speaking: true, pending: true, paused: true});
- testSynthState(win2, { speaking: true, pending: false, paused: false});
-
- win1.speechSynthesis.resume();
- });
- utterance4.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end4', 'end4');
- testSynthState(win1, { speaking: false, pending: true, paused: false});
- testSynthState(win2, { speaking: false, pending: false, paused: false});
- });
-
- utterance3.addEventListener('start', function(e) {
- is(eventOrder.shift(), 'start3', 'start3');
- testSynthState(win1, { speaking: true, pending: false, paused: false});
- testSynthState(win2, { speaking: true, pending: false, paused: false});
- });
-
- utterance3.addEventListener('end', function(e) {
- is(eventOrder.shift(), 'end3', 'end3');
- testSynthState(win1, { speaking: false, pending: false, paused: false});
- testSynthState(win2, { speaking: false, pending: false, paused: false});
-
- SimpleTest.finish();
- });
-
- win1.speechSynthesis.speak(utterance1);
- win2.speechSynthesis.speak(utterance2);
- });
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_indirect_service_events.html b/dom/media/webspeech/synth/test/file_indirect_service_events.html
deleted file mode 100644
index fb4e31244..000000000
--- a/dom/media/webspeech/synth/test/file_indirect_service_events.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1155034
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1155034: Check that indirect audio services dispatch their own events</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.info = parent.info;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1155034">Mozilla Bug 1155034</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 1155034 **/
-
-function testFunc(done_cb) {
- function test_with_events() {
- info('test_with_events');
- var utterance = new SpeechSynthesisUtterance("never end, callback events");
- utterance.lang = 'it-IT-noend';
-
- utterance.addEventListener('start', function(e) {
- info('start test_with_events');
- speechSynthesis.pause();
- // Wait to see if we get some bad events we didn't expect.
- });
-
- utterance.addEventListener('pause', function(e) {
- is(e.charIndex, 1, 'pause event charIndex matches service arguments');
- is(e.elapsedTime, 1.5, 'pause event elapsedTime matches service arguments');
- speechSynthesis.resume();
- });
-
- utterance.addEventListener('resume', function(e) {
- is(e.charIndex, 1, 'resume event charIndex matches service arguments');
- is(e.elapsedTime, 1.5, 'resume event elapsedTime matches service arguments');
- speechSynthesis.cancel();
- });
-
- utterance.addEventListener('end', function(e) {
- ok(e.charIndex, 1, 'resume event charIndex matches service arguments');
- ok(e.elapsedTime, 1.5, 'end event elapsedTime matches service arguments');
- test_no_events();
- });
-
- info('start speak');
- speechSynthesis.speak(utterance);
- }
-
- function forbiddenEvent(e) {
- ok(false, 'no "' + e.type + '" event was explicitly dispatched from the service')
- }
-
- function test_no_events() {
- info('test_no_events');
- var utterance = new SpeechSynthesisUtterance("never end");
- utterance.lang = "it-IT-noevents-noend";
- utterance.addEventListener('start', function(e) {
- speechSynthesis.pause();
- // Wait to see if we get some bad events we didn't expect.
- setTimeout(function() {
- ok(true, 'didn\'t get any unwanted events');
- utterance.removeEventListener('end', forbiddenEvent);
- SpecialPowers.wrap(speechSynthesis).forceEnd();
- done_cb();
- }, 1000);
- });
-
- utterance.addEventListener('pause', forbiddenEvent);
- utterance.addEventListener('end', forbiddenEvent);
-
- speechSynthesis.speak(utterance);
- }
-
- test_with_events();
-}
-
-// Run test with no global queue, and then run it with a global queue.
-testFunc(function() {
- SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.force_global_queue', true]] }, function() {
- testFunc(SimpleTest.finish)
- });
-});
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_setup.html b/dom/media/webspeech/synth/test/file_setup.html
deleted file mode 100644
index 4c1020505..000000000
--- a/dom/media/webspeech/synth/test/file_setup.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=525444
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 525444: Web Speech API check all classes are present</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=650295">Mozilla Bug 650295</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-ok(SpeechSynthesis, "SpeechSynthesis exists in global scope");
-ok(SpeechSynthesisVoice, "SpeechSynthesisVoice exists in global scope");
-ok(SpeechSynthesisErrorEvent, "SpeechSynthesisErrorEvent exists in global scope");
-ok(SpeechSynthesisEvent, "SpeechSynthesisEvent exists in global scope");
-
-// SpeechSynthesisUtterance is the only type that has a constructor
-// and writable properties
-ok(SpeechSynthesisUtterance, "SpeechSynthesisUtterance exists in global scope");
-var ssu = new SpeechSynthesisUtterance("hello world");
-is(typeof ssu, "object", "SpeechSynthesisUtterance instance is an object");
-is(ssu.text, "hello world", "SpeechSynthesisUtterance.text is correct");
-is(ssu.volume, 1, "SpeechSynthesisUtterance.volume default is correct");
-is(ssu.rate, 1, "SpeechSynthesisUtterance.rate default is correct");
-is(ssu.pitch, 1, "SpeechSynthesisUtterance.pitch default is correct");
-ssu.lang = "he-IL";
-ssu.volume = 0.5;
-ssu.rate = 2.0;
-ssu.pitch = 1.5;
-is(ssu.lang, "he-IL", "SpeechSynthesisUtterance.lang is correct");
-is(ssu.volume, 0.5, "SpeechSynthesisUtterance.volume is correct");
-is(ssu.rate, 2.0, "SpeechSynthesisUtterance.rate is correct");
-is(ssu.pitch, 1.5, "SpeechSynthesisUtterance.pitch is correct");
-
-// Assign a rate that is out of bounds
-ssu.rate = 20;
-is(ssu.rate, 10, "SpeechSynthesisUtterance.rate enforces max of 10");
-ssu.rate = 0;
-is(ssu.rate.toPrecision(1), "0.1", "SpeechSynthesisUtterance.rate enforces min of 0.1");
-
-// Assign a volume which is out of bounds
-ssu.volume = 2;
-is(ssu.volume, 1, "SpeechSynthesisUtterance.volume enforces max of 1");
-ssu.volume = -1;
-is(ssu.volume, 0, "SpeechSynthesisUtterance.volume enforces min of 0");
-
-// Assign a pitch which is out of bounds
-ssu.pitch = 2.1;
-is(ssu.pitch, 2, "SpeechSynthesisUtterance.pitch enforces max of 2");
-ssu.pitch = -1;
-is(ssu.pitch, 0, "SpeechSynthesisUtterance.pitch enforces min of 0");
-
-// Test for singleton instance hanging off of window.
-ok(speechSynthesis, "speechSynthesis exists in global scope");
-is(typeof speechSynthesis, "object", "speechSynthesis instance is an object");
-is(typeof speechSynthesis.speak, "function", "speechSynthesis.speak is a function");
-is(typeof speechSynthesis.cancel, "function", "speechSynthesis.cancel is a function");
-is(typeof speechSynthesis.pause, "function", "speechSynthesis.pause is a function");
-is(typeof speechSynthesis.resume, "function", "speechSynthesis.resume is a function");
-is(typeof speechSynthesis.getVoices, "function", "speechSynthesis.getVoices is a function");
-
-is(typeof speechSynthesis.pending, "boolean", "speechSynthesis.pending is a boolean");
-is(typeof speechSynthesis.speaking, "boolean", "speechSynthesis.speaking is a boolean");
-is(typeof speechSynthesis.paused, "boolean", "speechSynthesis.paused is a boolean");
-
-var voices1 = speechSynthesis.getVoices();
-var voices2 = speechSynthesis.getVoices();
-
-ok(voices1.length == voices2.length, "Voice count matches");
-
-for (var i in voices1) {
- ok(voices1[i] == voices2[i], "Voice instance matches");
-}
-
-SimpleTest.finish();
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_speech_cancel.html b/dom/media/webspeech/synth/test/file_speech_cancel.html
deleted file mode 100644
index 2ab0e1d0a..000000000
--- a/dom/media/webspeech/synth/test/file_speech_cancel.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1150315
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1150315: Check that successive cancel/speak calls work</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.info = parent.info;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1150315">Mozilla Bug 1150315</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 1150315 **/
-
-function testFunc(done_cb) {
- var gotEndEvent = false;
- // A long utterance that we will interrupt.
- var utterance = new SpeechSynthesisUtterance("Donec ac nunc feugiat, posuere " +
- "mauris id, pharetra velit. Donec fermentum orci nunc, sit amet maximus" +
- "dui tincidunt ut. Sed ultricies ac nisi a laoreet. Proin interdum," +
- "libero maximus hendrerit posuere, lorem risus egestas nisl, a" +
- "ultricies massa justo eu nisi. Duis mattis nibh a ligula tincidunt" +
- "tincidunt non eu erat. Sed bibendum varius vulputate. Cras leo magna," +
- "ornare ac posuere vel, luctus id metus. Mauris nec quam ac augue" +
- "consectetur bibendum. Integer a commodo tortor. Duis semper dolor eu" +
- "facilisis facilisis. Etiam venenatis turpis est, quis tincidunt velit" +
- "suscipit a. Cras semper orci in sapien rhoncus bibendum. Suspendisse" +
- "eu ex lobortis, finibus enim in, condimentum quam. Maecenas eget dui" +
- "ipsum. Aliquam tortor leo, interdum eget congue ut, tempor id elit.");
- utterance.addEventListener('start', function(e) {
- ok(true, 'start utterance 1');
- speechSynthesis.cancel();
- info('cancel!');
- speechSynthesis.speak(utterance2);
- info('speak??');
- });
-
- var utterance2 = new SpeechSynthesisUtterance("Proin ornare neque vitae " +
- "risus mattis rutrum. Suspendisse a velit ut est convallis aliquet." +
- "Nullam ante elit, malesuada vel luctus rutrum, ultricies nec libero." +
- "Praesent eu iaculis orci. Sed nisl diam, sodales ac purus et," +
- "volutpat interdum tortor. Nullam aliquam porta elit et maximus. Cras" +
- "risus lectus, elementum vel sodales vel, ultricies eget lectus." +
- "Curabitur velit lacus, mollis vel finibus et, molestie sit amet" +
- "sapien. Proin vitae dolor ac augue posuere efficitur ac scelerisque" +
- "diam. Nulla sed odio elit.");
- utterance2.addEventListener('start', function() {
- info('start');
- speechSynthesis.cancel();
- speechSynthesis.speak(utterance3);
- });
- utterance2.addEventListener('end', function(e) {
- gotEndEvent = true;
- });
-
- var utterance3 = new SpeechSynthesisUtterance("Hello, world 3!");
- utterance3.addEventListener('start', function() {
- ok(gotEndEvent, "didn't get start event for this utterance");
- });
- utterance3.addEventListener('end', done_cb);
-
- // Speak/cancel while paused (Bug 1187105)
- speechSynthesis.pause();
- speechSynthesis.speak(new SpeechSynthesisUtterance("hello."));
- ok(speechSynthesis.pending, "paused speechSynthesis has an utterance queued.");
- speechSynthesis.cancel();
- ok(!speechSynthesis.pending, "paused speechSynthesis has no utterance queued.");
- speechSynthesis.resume();
-
- speechSynthesis.speak(utterance);
- ok(!speechSynthesis.speaking, "speechSynthesis is not speaking yet.");
- ok(speechSynthesis.pending, "speechSynthesis has an utterance queued.");
-}
-
-// Run test with no global queue, and then run it with a global queue.
-testFunc(function() {
- SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.force_global_queue', true]] }, function() {
- testFunc(SimpleTest.finish)
- });
-});
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_speech_error.html b/dom/media/webspeech/synth/test/file_speech_error.html
deleted file mode 100644
index b98ec2fac..000000000
--- a/dom/media/webspeech/synth/test/file_speech_error.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1226015
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1226015</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.info = parent.info;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1226015">Mozilla Bug 1226015</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 1226015 **/
-
-function testFunc(done_cb) {
- var utterance = new SpeechSynthesisUtterance();
- utterance.lang = 'it-IT-failatstart';
-
- speechSynthesis.speak(utterance);
- speechSynthesis.cancel();
-
- ok(true, "we didn't crash, that is good.")
- SimpleTest.finish();
-}
-
-// Run test with no global queue, and then run it with a global queue.
-testFunc();
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_speech_queue.html b/dom/media/webspeech/synth/test/file_speech_queue.html
deleted file mode 100644
index e308f35e5..000000000
--- a/dom/media/webspeech/synth/test/file_speech_queue.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="en-US">
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=525444
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 525444: Web Speech API, check speech synth queue</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=525444">Mozilla Bug 525444</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-// XXX: Rate and pitch are not tested.
-
-var langUriMap = {};
-
-for (var voice of speechSynthesis.getVoices()) {
- langUriMap[voice.lang] = voice.voiceURI;
- ok(true, voice.lang + ' ' + voice.voiceURI + ' ' + voice.default);
- is(voice.default, voice.lang == 'en-JM', 'Only Jamaican voice should be default');
-}
-
-ok(langUriMap['en-JM'], 'No English-Jamaican voice');
-ok(langUriMap['en-GB'], 'No English-British voice');
-ok(langUriMap['en-CA'], 'No English-Canadian voice');
-ok(langUriMap['fr-CA'], 'No French-Canadian voice');
-ok(langUriMap['es-MX'], 'No Spanish-Mexican voice');
-ok(langUriMap['it-IT-fail'], 'No Failing Italian voice');
-
-function testFunc(done_cb) {
- synthTestQueue(
- [[{text: "Hello, world."},
- { uri: langUriMap['en-JM'] }],
- [{text: "Bonjour tout le monde .",
- args: { lang: "fr", rate: 0.5, pitch: 0.75 }},
- { uri: langUriMap['fr-CA'], rate: 0.5, pitch: 0.75}],
- [{text: "How are you doing?", args: { lang: "en-GB" } },
- { rate: 1, pitch: 1, uri: langUriMap['en-GB']}],
- [{text: "Come stai?", args: { lang: "it-IT-fail" } },
- { rate: 1, pitch: 1, uri: langUriMap['it-IT-fail'], err: true }],
- [{text: "¡hasta mañana!", args: { lang: "es-MX" } },
- { uri: langUriMap['es-MX'] }]],
- function () {
- var test_data = [];
- var voices = speechSynthesis.getVoices();
- for (var voice of voices) {
- if (voice.voiceURI.indexOf('urn:moz-tts:fake-direct') < 0) {
- continue;
- }
- test_data.push([{text: "Hello world", args: { voice: voice} },
- {uri: voice.voiceURI}]);
- }
-
- synthTestQueue(test_data, done_cb);
- });
-}
-
-// Run test with no global queue, and then run it with a global queue.
-testFunc(function() {
- SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.force_global_queue', true]] }, function() {
- testFunc(SimpleTest.finish)
- });
-});
-
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/file_speech_simple.html b/dom/media/webspeech/synth/test/file_speech_simple.html
deleted file mode 100644
index c3f240ccd..000000000
--- a/dom/media/webspeech/synth/test/file_speech_simple.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=650295
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 650295: Web Speech API check all classes are present</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.info = parent.info;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- </script>
- <script type="application/javascript" src="common.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=650295">Mozilla Bug 650295</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-var gotStartEvent = false;
-var gotBoundaryEvent = false;
-var utterance = new SpeechSynthesisUtterance("Hello, world!");
-utterance.addEventListener('start', function(e) {
- ok(speechSynthesis.speaking, "speechSynthesis is speaking.");
- ok(!speechSynthesis.pending, "speechSynthesis has no other utterances queued.");
- gotStartEvent = true;
-});
-
-utterance.addEventListener('end', function(e) {
- ok(!speechSynthesis.speaking, "speechSynthesis is not speaking.");
- ok(!speechSynthesis.pending, "speechSynthesis has no other utterances queued.");
- ok(gotStartEvent, "Got 'start' event.");
- info('end ' + e.elapsedTime);
- SimpleTest.finish();
-});
-
-speechSynthesis.speak(utterance);
-ok(!speechSynthesis.speaking, "speechSynthesis is not speaking yet.");
-ok(speechSynthesis.pending, "speechSynthesis has an utterance queued.");
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/mochitest.ini b/dom/media/webspeech/synth/test/mochitest.ini
deleted file mode 100644
index f27cd4e1b..000000000
--- a/dom/media/webspeech/synth/test/mochitest.ini
+++ /dev/null
@@ -1,26 +0,0 @@
-[DEFAULT]
-tags=msg
-subsuite = media
-support-files =
- common.js
- file_bfcache_frame.html
- file_setup.html
- file_speech_queue.html
- file_speech_simple.html
- file_speech_cancel.html
- file_speech_error.html
- file_indirect_service_events.html
- file_global_queue.html
- file_global_queue_cancel.html
- file_global_queue_pause.html
-
-[test_setup.html]
-[test_speech_queue.html]
-[test_speech_simple.html]
-[test_speech_cancel.html]
-[test_speech_error.html]
-[test_indirect_service_events.html]
-[test_global_queue.html]
-[test_global_queue_cancel.html]
-[test_global_queue_pause.html]
-[test_bfcache.html]
diff --git a/dom/media/webspeech/synth/test/nsFakeSynthServices.cpp b/dom/media/webspeech/synth/test/nsFakeSynthServices.cpp
deleted file mode 100644
index 582ff3551..000000000
--- a/dom/media/webspeech/synth/test/nsFakeSynthServices.cpp
+++ /dev/null
@@ -1,401 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim:set ts=2 sw=2 sts=2 et cindent: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "nsISupports.h"
-#include "nsFakeSynthServices.h"
-#include "nsPrintfCString.h"
-#include "nsIWeakReferenceUtils.h"
-#include "SharedBuffer.h"
-#include "nsISimpleEnumerator.h"
-
-#include "mozilla/dom/nsSynthVoiceRegistry.h"
-#include "mozilla/dom/nsSpeechTask.h"
-
-#include "nsThreadUtils.h"
-#include "prenv.h"
-#include "mozilla/Preferences.h"
-#include "mozilla/DebugOnly.h"
-
-#define CHANNELS 1
-#define SAMPLERATE 1600
-
-namespace mozilla {
-namespace dom {
-
-StaticRefPtr<nsFakeSynthServices> nsFakeSynthServices::sSingleton;
-
-enum VoiceFlags
-{
- eSuppressEvents = 1,
- eSuppressEnd = 2,
- eFailAtStart = 4,
- eFail = 8
-};
-
-struct VoiceDetails
-{
- const char* uri;
- const char* name;
- const char* lang;
- bool defaultVoice;
- uint32_t flags;
-};
-
-static const VoiceDetails sDirectVoices[] = {
- {"urn:moz-tts:fake-direct:bob", "Bob Marley", "en-JM", true, 0},
- {"urn:moz-tts:fake-direct:amy", "Amy Winehouse", "en-GB", false, 0},
- {"urn:moz-tts:fake-direct:lenny", "Leonard Cohen", "en-CA", false, 0},
- {"urn:moz-tts:fake-direct:celine", "Celine Dion", "fr-CA", false, 0},
- {"urn:moz-tts:fake-direct:julie", "Julieta Venegas", "es-MX", false, },
-};
-
-static const VoiceDetails sIndirectVoices[] = {
- {"urn:moz-tts:fake-indirect:zanetta", "Zanetta Farussi", "it-IT", false, 0},
- {"urn:moz-tts:fake-indirect:margherita", "Margherita Durastanti", "it-IT-noevents-noend", false, eSuppressEvents | eSuppressEnd},
- {"urn:moz-tts:fake-indirect:teresa", "Teresa Cornelys", "it-IT-noend", false, eSuppressEnd},
- {"urn:moz-tts:fake-indirect:cecilia", "Cecilia Bartoli", "it-IT-failatstart", false, eFailAtStart},
- {"urn:moz-tts:fake-indirect:gottardo", "Gottardo Aldighieri", "it-IT-fail", false, eFail},
-};
-
-// FakeSynthCallback
-class FakeSynthCallback : public nsISpeechTaskCallback
-{
-public:
- explicit FakeSynthCallback(nsISpeechTask* aTask) : mTask(aTask) { }
- NS_DECL_CYCLE_COLLECTING_ISUPPORTS
- NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(FakeSynthCallback, nsISpeechTaskCallback)
-
- NS_IMETHOD OnPause() override
- {
- if (mTask) {
- mTask->DispatchPause(1.5, 1);
- }
-
- return NS_OK;
- }
-
- NS_IMETHOD OnResume() override
- {
- if (mTask) {
- mTask->DispatchResume(1.5, 1);
- }
-
- return NS_OK;
- }
-
- NS_IMETHOD OnCancel() override
- {
- if (mTask) {
- mTask->DispatchEnd(1.5, 1);
- }
-
- return NS_OK;
- }
-
- NS_IMETHOD OnVolumeChanged(float aVolume) override
- {
- return NS_OK;
- }
-
-private:
- virtual ~FakeSynthCallback() { }
-
- nsCOMPtr<nsISpeechTask> mTask;
-};
-
-NS_IMPL_CYCLE_COLLECTION(FakeSynthCallback, mTask);
-
-NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FakeSynthCallback)
- NS_INTERFACE_MAP_ENTRY(nsISpeechTaskCallback)
- NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsISpeechTaskCallback)
-NS_INTERFACE_MAP_END
-
-NS_IMPL_CYCLE_COLLECTING_ADDREF(FakeSynthCallback)
-NS_IMPL_CYCLE_COLLECTING_RELEASE(FakeSynthCallback)
-
-// FakeDirectAudioSynth
-
-class FakeDirectAudioSynth : public nsISpeechService
-{
-
-public:
- FakeDirectAudioSynth() { }
-
- NS_DECL_ISUPPORTS
- NS_DECL_NSISPEECHSERVICE
-
-private:
- virtual ~FakeDirectAudioSynth() { }
-};
-
-NS_IMPL_ISUPPORTS(FakeDirectAudioSynth, nsISpeechService)
-
-NS_IMETHODIMP
-FakeDirectAudioSynth::Speak(const nsAString& aText, const nsAString& aUri,
- float aVolume, float aRate, float aPitch,
- nsISpeechTask* aTask)
-{
- class Runnable final : public mozilla::Runnable
- {
- public:
- Runnable(nsISpeechTask* aTask, const nsAString& aText) :
- mTask(aTask), mText(aText)
- {
- }
-
- NS_IMETHOD Run() override
- {
- RefPtr<FakeSynthCallback> cb = new FakeSynthCallback(nullptr);
- mTask->Setup(cb, CHANNELS, SAMPLERATE, 2);
-
- // Just an arbitrary multiplier. Pretend that each character is
- // synthesized to 40 frames.
- uint32_t frames_length = 40 * mText.Length();
- auto frames = MakeUnique<int16_t[]>(frames_length);
- mTask->SendAudioNative(frames.get(), frames_length);
-
- mTask->SendAudioNative(nullptr, 0);
-
- return NS_OK;
- }
-
- private:
- nsCOMPtr<nsISpeechTask> mTask;
- nsString mText;
- };
-
- nsCOMPtr<nsIRunnable> runnable = new Runnable(aTask, aText);
- NS_DispatchToMainThread(runnable);
- return NS_OK;
-}
-
-NS_IMETHODIMP
-FakeDirectAudioSynth::GetServiceType(SpeechServiceType* aServiceType)
-{
- *aServiceType = nsISpeechService::SERVICETYPE_DIRECT_AUDIO;
- return NS_OK;
-}
-
-// FakeDirectAudioSynth
-
-class FakeIndirectAudioSynth : public nsISpeechService
-{
-
-public:
- FakeIndirectAudioSynth() {}
-
- NS_DECL_ISUPPORTS
- NS_DECL_NSISPEECHSERVICE
-
-private:
- virtual ~FakeIndirectAudioSynth() { }
-};
-
-NS_IMPL_ISUPPORTS(FakeIndirectAudioSynth, nsISpeechService)
-
-NS_IMETHODIMP
-FakeIndirectAudioSynth::Speak(const nsAString& aText, const nsAString& aUri,
- float aVolume, float aRate, float aPitch,
- nsISpeechTask* aTask)
-{
- class DispatchStart final : public Runnable
- {
- public:
- explicit DispatchStart(nsISpeechTask* aTask) :
- mTask(aTask)
- {
- }
-
- NS_IMETHOD Run() override
- {
- mTask->DispatchStart();
-
- return NS_OK;
- }
-
- private:
- nsCOMPtr<nsISpeechTask> mTask;
- };
-
- class DispatchEnd final : public Runnable
- {
- public:
- DispatchEnd(nsISpeechTask* aTask, const nsAString& aText) :
- mTask(aTask), mText(aText)
- {
- }
-
- NS_IMETHOD Run() override
- {
- mTask->DispatchEnd(mText.Length()/2, mText.Length());
-
- return NS_OK;
- }
-
- private:
- nsCOMPtr<nsISpeechTask> mTask;
- nsString mText;
- };
-
- class DispatchError final : public Runnable
- {
- public:
- DispatchError(nsISpeechTask* aTask, const nsAString& aText) :
- mTask(aTask), mText(aText)
- {
- }
-
- NS_IMETHOD Run() override
- {
- mTask->DispatchError(mText.Length()/2, mText.Length());
-
- return NS_OK;
- }
-
- private:
- nsCOMPtr<nsISpeechTask> mTask;
- nsString mText;
- };
-
- uint32_t flags = 0;
- for (uint32_t i = 0; i < ArrayLength(sIndirectVoices); i++) {
- if (aUri.EqualsASCII(sIndirectVoices[i].uri)) {
- flags = sIndirectVoices[i].flags;
- }
- }
-
- if (flags & eFailAtStart) {
- return NS_ERROR_FAILURE;
- }
-
- RefPtr<FakeSynthCallback> cb = new FakeSynthCallback(
- (flags & eSuppressEvents) ? nullptr : aTask);
-
- aTask->Setup(cb, 0, 0, 0);
-
- nsCOMPtr<nsIRunnable> runnable = new DispatchStart(aTask);
- NS_DispatchToMainThread(runnable);
-
- if (flags & eFail) {
- runnable = new DispatchError(aTask, aText);
- NS_DispatchToMainThread(runnable);
- } else if ((flags & eSuppressEnd) == 0) {
- runnable = new DispatchEnd(aTask, aText);
- NS_DispatchToMainThread(runnable);
- }
-
- return NS_OK;
-}
-
-NS_IMETHODIMP
-FakeIndirectAudioSynth::GetServiceType(SpeechServiceType* aServiceType)
-{
- *aServiceType = nsISpeechService::SERVICETYPE_INDIRECT_AUDIO;
- return NS_OK;
-}
-
-// nsFakeSynthService
-
-NS_INTERFACE_MAP_BEGIN(nsFakeSynthServices)
- NS_INTERFACE_MAP_ENTRY(nsIObserver)
- NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIObserver)
-NS_INTERFACE_MAP_END
-
-NS_IMPL_ADDREF(nsFakeSynthServices)
-NS_IMPL_RELEASE(nsFakeSynthServices)
-
-nsFakeSynthServices::nsFakeSynthServices()
-{
-}
-
-nsFakeSynthServices::~nsFakeSynthServices()
-{
-}
-
-static void
-AddVoices(nsISpeechService* aService, const VoiceDetails* aVoices, uint32_t aLength)
-{
- RefPtr<nsSynthVoiceRegistry> registry = nsSynthVoiceRegistry::GetInstance();
- for (uint32_t i = 0; i < aLength; i++) {
- NS_ConvertUTF8toUTF16 name(aVoices[i].name);
- NS_ConvertUTF8toUTF16 uri(aVoices[i].uri);
- NS_ConvertUTF8toUTF16 lang(aVoices[i].lang);
- // These services can handle more than one utterance at a time and have
- // several speaking simultaniously. So, aQueuesUtterances == false
- registry->AddVoice(aService, uri, name, lang, true, false);
- if (aVoices[i].defaultVoice) {
- registry->SetDefaultVoice(uri, true);
- }
- }
-
- registry->NotifyVoicesChanged();
-}
-
-void
-nsFakeSynthServices::Init()
-{
- mDirectService = new FakeDirectAudioSynth();
- AddVoices(mDirectService, sDirectVoices, ArrayLength(sDirectVoices));
-
- mIndirectService = new FakeIndirectAudioSynth();
- AddVoices(mIndirectService, sIndirectVoices, ArrayLength(sIndirectVoices));
-}
-
-// nsIObserver
-
-NS_IMETHODIMP
-nsFakeSynthServices::Observe(nsISupports* aSubject, const char* aTopic,
- const char16_t* aData)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if(NS_WARN_IF(!(!strcmp(aTopic, "speech-synth-started")))) {
- return NS_ERROR_UNEXPECTED;
- }
-
- if (Preferences::GetBool("media.webspeech.synth.test")) {
- NS_DispatchToMainThread(NewRunnableMethod(this, &nsFakeSynthServices::Init));
- }
-
- return NS_OK;
-}
-
-// static methods
-
-nsFakeSynthServices*
-nsFakeSynthServices::GetInstance()
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (!XRE_IsParentProcess()) {
- MOZ_ASSERT(false, "nsFakeSynthServices can only be started on main gecko process");
- return nullptr;
- }
-
- if (!sSingleton) {
- sSingleton = new nsFakeSynthServices();
- }
-
- return sSingleton;
-}
-
-already_AddRefed<nsFakeSynthServices>
-nsFakeSynthServices::GetInstanceForService()
-{
- RefPtr<nsFakeSynthServices> picoService = GetInstance();
- return picoService.forget();
-}
-
-void
-nsFakeSynthServices::Shutdown()
-{
- if (!sSingleton) {
- return;
- }
-
- sSingleton = nullptr;
-}
-
-} // namespace dom
-} // namespace mozilla
diff --git a/dom/media/webspeech/synth/test/nsFakeSynthServices.h b/dom/media/webspeech/synth/test/nsFakeSynthServices.h
deleted file mode 100644
index bab93e779..000000000
--- a/dom/media/webspeech/synth/test/nsFakeSynthServices.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim:set ts=2 sw=2 sts=2 et cindent: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nsFakeSynthServices_h
-#define nsFakeSynthServices_h
-
-#include "nsTArray.h"
-#include "nsIObserver.h"
-#include "nsIThread.h"
-#include "nsISpeechService.h"
-#include "nsRefPtrHashtable.h"
-#include "mozilla/StaticPtr.h"
-#include "mozilla/Monitor.h"
-
-namespace mozilla {
-namespace dom {
-
-class nsFakeSynthServices : public nsIObserver
-{
-
-public:
- NS_DECL_ISUPPORTS
- NS_DECL_NSIOBSERVER
-
- nsFakeSynthServices();
-
- static nsFakeSynthServices* GetInstance();
-
- static already_AddRefed<nsFakeSynthServices> GetInstanceForService();
-
- static void Shutdown();
-
-private:
-
- virtual ~nsFakeSynthServices();
-
- void Init();
-
- nsCOMPtr<nsISpeechService> mDirectService;
-
- nsCOMPtr<nsISpeechService> mIndirectService;
-
- static StaticRefPtr<nsFakeSynthServices> sSingleton;
-};
-
-} // namespace dom
-} // namespace mozilla
-
-#endif
diff --git a/dom/media/webspeech/synth/test/startup/file_voiceschanged.html b/dom/media/webspeech/synth/test/startup/file_voiceschanged.html
deleted file mode 100644
index 6bb25462e..000000000
--- a/dom/media/webspeech/synth/test/startup/file_voiceschanged.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1254378
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1254378: Web Speech API check all classes are present</title>
- <script type="application/javascript">
- window.SimpleTest = parent.SimpleTest;
- window.is = parent.is;
- window.isnot = parent.isnot;
- window.ok = parent.ok;
- </script>
-</head>
-<body>
-<script type="application/javascript">
-
-/** Test for Bug 1254378 **/
-
-function onVoicesChanged() {
- isnot(speechSynthesis.getVoices().length, 0, "Voices added");
- speechSynthesis.removeEventListener("voiceschanged", onVoicesChanged);
- SimpleTest.finish();
-}
-
-speechSynthesis.addEventListener("voiceschanged", onVoicesChanged);
-
-is(speechSynthesis.getVoices().length, 0, "No voices added initially");
-</script>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/startup/mochitest.ini b/dom/media/webspeech/synth/test/startup/mochitest.ini
deleted file mode 100644
index 7312a71eb..000000000
--- a/dom/media/webspeech/synth/test/startup/mochitest.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[DEFAULT]
-tags=msg
-subsuite = media
-support-files =
- file_voiceschanged.html
-
-[test_voiceschanged.html]
diff --git a/dom/media/webspeech/synth/test/startup/test_voiceschanged.html b/dom/media/webspeech/synth/test/startup/test_voiceschanged.html
deleted file mode 100644
index 079938c35..000000000
--- a/dom/media/webspeech/synth/test/startup/test_voiceschanged.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1254378
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1254378: Emit onvoiceschanged when voices first added</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1254378">Mozilla Bug 1254378</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 1254378 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv({ set: [['media.webspeech.synth.enabled', true]] },
- function() { document.getElementById("testFrame").src = "file_voiceschanged.html"; });
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/test_bfcache.html b/dom/media/webspeech/synth/test/test_bfcache.html
deleted file mode 100644
index 8681def3f..000000000
--- a/dom/media/webspeech/synth/test/test_bfcache.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1230533
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1230533: Test speech is stopped from a window when unloaded</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1230533">Mozilla Bug 1230533</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-SimpleTest.waitForExplicitFinish();
-
-var iframe;
-
-function onDone() {
- SimpleTest.finish();
-}
-
-SpecialPowers.pushPrefEnv({ set: [
- ['media.webspeech.synth.enabled', true],
- ['media.webspeech.synth.force_global_queue', true],
- ['browser.sessionhistory.cache_subframes', true],
- ['browser.sessionhistory.max_total_viewers', 10]] },
- function() {
- loadSpeechTest("file_bfcache_frame.html");
- });
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/test_global_queue.html b/dom/media/webspeech/synth/test/test_global_queue.html
deleted file mode 100644
index 34d3a4ed3..000000000
--- a/dom/media/webspeech/synth/test/test_global_queue.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1188099
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1188099: Global queue should correctly schedule utterances</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1188099">Mozilla Bug 1188099</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.enabled', true],
- ['media.webspeech.synth.force_global_queue', true]] },
- function() { loadSpeechTest("file_global_queue.html"); });
-
-</script>
-</pre>
-</body>
-</html> \ No newline at end of file
diff --git a/dom/media/webspeech/synth/test/test_global_queue_cancel.html b/dom/media/webspeech/synth/test/test_global_queue_cancel.html
deleted file mode 100644
index 4c5c11634..000000000
--- a/dom/media/webspeech/synth/test/test_global_queue_cancel.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1188099
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1188099: Calling cancel() should work correctly with global queue</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1188099">Mozilla Bug 1188099</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.enabled', true],
- ['media.webspeech.synth.force_global_queue', true]] },
- function() { loadSpeechTest("file_global_queue_cancel.html"); });
-
-</script>
-</pre>
-</body>
-</html> \ No newline at end of file
diff --git a/dom/media/webspeech/synth/test/test_global_queue_pause.html b/dom/media/webspeech/synth/test/test_global_queue_pause.html
deleted file mode 100644
index f5ac1b98c..000000000
--- a/dom/media/webspeech/synth/test/test_global_queue_pause.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1188099
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1188099: Calling pause() should work correctly with global queue</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1188099">Mozilla Bug 1188099</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.enabled', true],
- ['media.webspeech.synth.force_global_queue', true]] },
- function() { loadSpeechTest("file_global_queue_pause.html"); });
-
-</script>
-</pre>
-</body>
-</html> \ No newline at end of file
diff --git a/dom/media/webspeech/synth/test/test_indirect_service_events.html b/dom/media/webspeech/synth/test/test_indirect_service_events.html
deleted file mode 100644
index d7f5ec424..000000000
--- a/dom/media/webspeech/synth/test/test_indirect_service_events.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1155034
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1155034: Check that indirect audio services dispatch their own events</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1155034">Mozilla Bug 1155034</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 1155034 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.enabled', true],
- ['media.webspeech.synth.force_global_queue', false]] },
- function() { loadSpeechTest("file_indirect_service_events.html"); });
-
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/test_setup.html b/dom/media/webspeech/synth/test/test_setup.html
deleted file mode 100644
index 6286b6c2e..000000000
--- a/dom/media/webspeech/synth/test/test_setup.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=525444
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 525444: Web Speech API check all classes are present</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=650295">Mozilla Bug 650295</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv({ set: [['media.webspeech.synth.enabled', true]] },
- function() { document.getElementById("testFrame").src = "file_setup.html"; });
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/test_speech_cancel.html b/dom/media/webspeech/synth/test/test_speech_cancel.html
deleted file mode 100644
index e7cf051ef..000000000
--- a/dom/media/webspeech/synth/test/test_speech_cancel.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1150315
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1150315: Web Speech API check all classes are present</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1150315">Mozilla Bug 1150315</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 1150315 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.enabled', true],
- ['media.webspeech.synth.force_global_queue', false]] },
- function() { loadSpeechTest("file_speech_cancel.html"); });
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/test_speech_error.html b/dom/media/webspeech/synth/test/test_speech_error.html
deleted file mode 100644
index c4bfdc6c4..000000000
--- a/dom/media/webspeech/synth/test/test_speech_error.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1226015
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1150315: Web Speech API check all classes are present</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1226015">Mozilla Bug 1226015</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 1226015 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.enabled', true],
- ['media.webspeech.synth.force_global_queue', false]] },
- function() { loadSpeechTest("file_speech_error.html"); });
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/test_speech_queue.html b/dom/media/webspeech/synth/test/test_speech_queue.html
deleted file mode 100644
index ca652b243..000000000
--- a/dom/media/webspeech/synth/test/test_speech_queue.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="en-US">
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=525444
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 525444: Web Speech API, check speech synth queue</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=525444">Mozilla Bug 525444</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.enabled', true],
- ['media.webspeech.synth.force_global_queue', false]] },
- function() {
- loadSpeechTest("file_speech_queue.html");
- });
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/media/webspeech/synth/test/test_speech_simple.html b/dom/media/webspeech/synth/test/test_speech_simple.html
deleted file mode 100644
index 2eb75af43..000000000
--- a/dom/media/webspeech/synth/test/test_speech_simple.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=650295
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 650295: Web Speech API check all classes are present</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="common.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=650295">Mozilla Bug 650295</a>
-<p id="display"></p>
-<iframe id="testFrame"></iframe>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 525444 **/
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv(
- { set: [['media.webspeech.synth.enabled', true]] },
- function() { loadSpeechTest("file_speech_simple.html"); });
-
-</script>
-</pre>
-</body>
-</html>