<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[173000] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/173000">173000</a></dd>
<dt>Author</dt> <dd>k.czech@samsung.com</dd>
<dt>Date</dt> <dd>2014-08-27 01:04:14 -0700 (Wed, 27 Aug 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>[EFL] Share fast/speechsynthesis/ with other ports
https://bugs.webkit.org/show_bug.cgi?id=136224

Reviewed by Chris Fleizach.

.:

Enable WebSpeech for EFL.

* Source/cmake/OptionsEfl.cmake:

LayoutTests:

Share fast/speechsynthesis tests with EFL after <a href="http://trac.webkit.org/projects/webkit/changeset/172956">r172956</a>.
Skipped them for GTK and Win.

* fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt.
* fast/speechsynthesis/speech-synthesis-boundary-events.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events.html.
* fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt.
* fast/speechsynthesis/speech-synthesis-cancel-crash.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-crash.html.
* fast/speechsynthesis/speech-synthesis-cancel-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-expected.txt.
* fast/speechsynthesis/speech-synthesis-cancel.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel.html.
* fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt.
* fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html.
* fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt.
* fast/speechsynthesis/speech-synthesis-elapsed-time.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-elapsed-time.html.
* fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt.
* fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html.
* fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt.
* fast/speechsynthesis/speech-synthesis-pause-resume.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html.
* fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt.
* fast/speechsynthesis/speech-synthesis-speak-empty-string.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html.
* fast/speechsynthesis/speech-synthesis-speak-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-expected.txt.
* fast/speechsynthesis/speech-synthesis-speak.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak.html.
* fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt.
* fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html.
* fast/speechsynthesis/speech-synthesis-voices-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-voices-expected.txt.
* fast/speechsynthesis/speech-synthesis-voices.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-voices.html.
* platform/gtk/TestExpectations: Skipped for GTK
* platform/win/TestExpectations: Skipped for Win</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkChangeLog">trunk/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformgtkTestExpectations">trunk/LayoutTests/platform/gtk/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformwinTestExpectations">trunk/LayoutTests/platform/win/TestExpectations</a></li>
<li><a href="#trunkSourcecmakeOptionsEflcmake">trunk/Source/cmake/OptionsEfl.cmake</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/LayoutTests/fast/speechsynthesis/</li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisboundaryeventsexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisboundaryeventshtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesiscancelcrashexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesiscancelcrashhtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesiscancelexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesiscancelhtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesiscrashonbadutteranceexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesiscrashonbadutterancehtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesiselapsedtimeexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesiselapsedtimehtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-elapsed-time.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisgcutterancecrashexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisgcutterancecrashhtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesispauseresumeexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesispauseresumehtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisspeakemptystringexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisspeakemptystringhtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-empty-string.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisspeakexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisspeakhtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisutteranceusesvoiceexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisutteranceusesvoicehtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisvoicesexpectedtxt">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-voices-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastspeechsynthesisspeechsynthesisvoiceshtml">trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-voices.html</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li>trunk/LayoutTests/platform/mac/fast/speechsynthesis/</li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/ChangeLog (172999 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/ChangeLog        2014-08-27 07:56:09 UTC (rev 172999)
+++ trunk/ChangeLog        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2014-08-27  Krzysztof Czech  &lt;k.czech@samsung.com&gt;
+
+        [EFL] Share fast/speechsynthesis/ with other ports
+        https://bugs.webkit.org/show_bug.cgi?id=136224
+
+        Reviewed by Chris Fleizach.
+
+        Enable WebSpeech for EFL.
+
+        * Source/cmake/OptionsEfl.cmake:
+
</ins><span class="cx"> 2014-08-26  Krzysztof Czech  &lt;k.czech@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL] Utilize espeak as a synthesizer back-end for WebSpeech
</span></span></pre></div>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (172999 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-08-27 07:56:09 UTC (rev 172999)
+++ trunk/LayoutTests/ChangeLog        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -1,3 +1,38 @@
</span><ins>+2014-08-27  Krzysztof Czech  &lt;k.czech@samsung.com&gt;
+
+        [EFL] Share fast/speechsynthesis/ with other ports
+        https://bugs.webkit.org/show_bug.cgi?id=136224
+
+        Reviewed by Chris Fleizach.
+
+        Share fast/speechsynthesis tests with EFL after r172956.
+        Skipped them for GTK and Win.
+
+        * fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-boundary-events.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events.html.
+        * fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-cancel-crash.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-crash.html.
+        * fast/speechsynthesis/speech-synthesis-cancel-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-cancel.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel.html.
+        * fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html.
+        * fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-elapsed-time.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-elapsed-time.html.
+        * fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html.
+        * fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-pause-resume.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html.
+        * fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-speak-empty-string.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html.
+        * fast/speechsynthesis/speech-synthesis-speak-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-speak.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak.html.
+        * fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html.
+        * fast/speechsynthesis/speech-synthesis-voices-expected.txt: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-voices-expected.txt.
+        * fast/speechsynthesis/speech-synthesis-voices.html: Renamed from LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-voices.html.
+        * platform/gtk/TestExpectations: Skipped for GTK
+        * platform/win/TestExpectations: Skipped for Win
+
</ins><span class="cx"> 2014-08-27  Gyuyoung Kim  &lt;gyuyoung.kim@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL] Unskip compositing test
</span></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisboundaryeventsexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisboundaryeventsexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+This tests that a speech job will generate the correct boundary events.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Speech started
+Boundary event: word, Character index: 0
+Boundary event: sentence, Character index: 14
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisboundaryeventshtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisboundaryeventshtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,42 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    description(&quot;This tests that a speech job will generate the correct boundary events.&quot;);
+
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    window.jsTestIsAsync = true;
+
+    var u = new SpeechSynthesisUtterance(&quot;this is a test&quot;);
+    u.onstart = function(event) {
+       debug(&quot;Speech started&quot;);
+    }
+
+    u.onboundary = function(event) {
+       debug(&quot;Boundary event: &quot; + event.name + &quot;, Character index: &quot; + event.charIndex);
+    }
+
+    u.onend = function(event) {
+       finishJSTest();
+    }
+
+    // Queue the first job which will start speaking immediately.
+    speechSynthesis.speak(u);
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesiscancelcrashexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesiscancelcrashexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-crash-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+This tests that cancelling speech at the right time will not crash due to mismanaging of the queue during a cancel.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesiscancelcrashhtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesiscancelcrashhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-crash.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-crash.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-crash.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-crash.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    description(&quot;This tests that cancelling speech at the right time will not crash due to mismanaging of the queue during a cancel.&quot;);
+
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    window.jsTestIsAsync = true;
+
+    function speak() {
+        var x = window.parent.speechSynthesis;
+        x.cancel();
+        x.resume();
+        x.speak(new SpeechSynthesisUtterance(&quot;X&quot;));
+     }
+     speak();
+
+     // Don't crash!
+     setTimeout(&quot;speak(); finishJSTest()&quot;, 52);
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesiscancelexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesiscancelexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+This tests that cancelling a speech job fires the right events.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Speech started
+PASS speechSynthesis.pending is true
+Speech error received because we cancelled and speech should no longer be pending.
+PASS speechSynthesis.pending is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesiscancelhtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesiscancelhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-cancel.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-cancel.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,54 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    description(&quot;This tests that cancelling a speech job fires the right events.&quot;);
+
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    window.jsTestIsAsync = true;
+
+    var u = new SpeechSynthesisUtterance(&quot;this is a test&quot;);
+    u.onstart = function(event) {
+       debug(&quot;Speech started&quot;);
+    }
+
+    u.onerror = function(event) {
+       debug(&quot;Speech error received because we cancelled and speech should no longer be pending.&quot;);
+       shouldBeFalse(&quot;speechSynthesis.pending&quot;);
+       finishJSTest();
+    }
+
+    // Queue the first job which will start speaking immediately.
+    speechSynthesis.speak(u);
+
+    // Make a few more jobs, so that when we cancel, it will clear the entire queue.
+    var u2 = new SpeechSynthesisUtterance(&quot;this is a second test&quot;);
+    speechSynthesis.speak(u2);
+
+    // Make a few more jobs, so that when we cancel, it will clear the entire queue.
+    var u3 = new SpeechSynthesisUtterance(&quot;this is a third test&quot;);
+    speechSynthesis.speak(u3);
+
+    // While we have two jobs, speech synthesis should report that it's pending.
+    shouldBeTrue(&quot;speechSynthesis.pending&quot;);
+
+    // Cancel speaking.
+    setTimeout(&quot;speechSynthesis.cancel()&quot;, &quot;1&quot;); 
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesiscrashonbadutteranceexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesiscrashonbadutteranceexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+This tests that passing in the wrong type of data won't crash speech synthesis code
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesiscrashonbadutterancehtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesiscrashonbadutterancehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    description(&quot;This tests that passing in the wrong type of data won't crash speech synthesis code&quot;);
+
+     // Don't crash. Speak is supposed to take an utterance, not a string.
+     speechSynthesis.speak('Hello World');
+
+     // Don't crash. An utterance voice is supposed to take a voice object, not a string.
+     var x = new SpeechSynthesisUtterance('Hello World');
+     x.voice = &quot;asdf&quot;;
+
+     // Don't crash. An utterance is supposed to take a string, not a number.
+     x = new SpeechSynthesisUtterance(223);
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesiselapsedtimeexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesiselapsedtimeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-elapsed-time-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+This tests that elapsed time is a number that is reasonable.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Our start time for speech should be very small.
+PASS startTime &lt; .5 is true
+Word boundary received: startTime should be less than the current elapsed time.
+PASS startTime &lt; event.elapsedTime is true
+Word boundary received: startTime should be less than the current elapsed time.
+PASS startTime &lt; event.elapsedTime is true
+The finished elapsed time should be small and the startTime should have occurred before the end.
+PASS startTime &lt; event.elapsedTime is true
+PASS event.elapsedTime &lt; 1 is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesiselapsedtimehtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesiselapsedtimehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-elapsed-time.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-elapsed-time.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-elapsed-time.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-elapsed-time.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    description(&quot;This tests that elapsed time is a number that is reasonable.&quot;);
+
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+
+    window.jsTestIsAsync = true;
+
+    var u = new SpeechSynthesisUtterance(&quot;hello word&quot;);
+
+    var startTime = 0;
+    u.onstart = function(event) {
+       startTime = event.elapsedTime;
+       debug(&quot;Our start time for speech should be very small.&quot;);
+       shouldBeTrue(&quot;startTime &lt; .5&quot;);
+    }
+    u.onboundary = function(event) {
+       debug(&quot;Word boundary received: startTime should be less than the current elapsed time.&quot;);
+       shouldBeTrue(&quot;startTime &lt; event.elapsedTime&quot;);
+    }
+
+    u.onend = function(event) {
+       debug(&quot;The finished elapsed time should be small and the startTime should have occurred before the end.&quot;);
+       shouldBeTrue(&quot;startTime &lt; event.elapsedTime&quot;);
+       shouldBeTrue(&quot;event.elapsedTime &lt; 1&quot;);
+       finishJSTest();
+    }
+
+    speechSynthesis.speak(u);
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisgcutterancecrashexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisgcutterancecrashexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+This tests that there isn't a crash if the utterance object is garbage-collected before speaking finishes.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisgcutterancecrashhtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisgcutterancecrashhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    description(&quot;This tests that there isn't a crash if the utterance object is garbage-collected before speaking finishes.&quot;);
+
+    window.jsTestIsAsync = true;
+
+    speechSynthesis.speak(new SpeechSynthesisUtterance(&quot;test&quot;));
+    gc();
+
+    window.setInterval(function() {
+       if (!speechSynthesis.speaking)
+           finishJSTest();
+    }, 10);
+
+&lt;/script&gt;
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesispauseresumeexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesispauseresumeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+This tests that pausing/resuming speech jobs works as expected.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+On pause event received.
+PASS speechSynthesis.paused is true
+PASS speechSynthesis.speaking is true
+On resume event received.
+PASS speechSynthesis.paused is false
+PASS speechSynthesis.speaking is true
+On end event received.
+PASS speechSynthesis.paused is false
+PASS speechSynthesis.speaking is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesispauseresumehtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesispauseresumehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,53 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    description(&quot;This tests that pausing/resuming speech jobs works as expected.&quot;);
+
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    window.jsTestIsAsync = true;
+
+    var u = new SpeechSynthesisUtterance(&quot;this is a test&quot;);
+
+    // Verify that callbacks and state are correct for paused and speaking states.
+    u.onpause = function(event) {
+       debug(&quot;On pause event received.&quot;);
+       shouldBeTrue(&quot;speechSynthesis.paused&quot;);
+       shouldBeTrue(&quot;speechSynthesis.speaking&quot;);
+    }
+
+    u.onresume  = function(event) {
+       debug(&quot;On resume event received.&quot;);
+       shouldBeFalse(&quot;speechSynthesis.paused&quot;);
+       shouldBeTrue(&quot;speechSynthesis.speaking&quot;);
+    }

+    u.onend = function(event) {
+       debug(&quot;On end event received.&quot;);
+       shouldBeFalse(&quot;speechSynthesis.paused&quot;);
+       shouldBeFalse(&quot;speechSynthesis.speaking&quot;);
+       finishJSTest();
+    }
+
+    speechSynthesis.speak(u);
+
+    // Quickly pause and resume the speech job.
+    setTimeout(&quot;speechSynthesis.pause()&quot;, &quot;1&quot;); 
+    setTimeout(&quot;speechSynthesis.resume()&quot;, &quot;2&quot;); 
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisspeakemptystringexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisspeakemptystringexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+This tests that an empty string sent to the synthesizer still generates a callback.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS speechSynthesis.speaking is false
+PASS event.elapsedTime &gt; 0 is true
+PASS speechSynthesis.speaking is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisspeakemptystringhtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisspeakemptystringhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-empty-string.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-empty-string.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-empty-string.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,42 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    description(&quot;This tests that an empty string sent to the synthesizer still generates a callback.&quot;);
+
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+
+    window.jsTestIsAsync = true;
+
+    // Start a very short speaking job that will finish quickly.
+    var u = new SpeechSynthesisUtterance(&quot;&quot;);
+
+    u.onstart = function(event) {
+       shouldBeTrue(&quot;event.elapsedTime &gt; 0&quot;);
+       shouldBeTrue(&quot;speechSynthesis.speaking&quot;);
+    }
+    u.onend = function(event) {
+       shouldBeTrue(&quot;event.elapsedTime &gt; 0&quot;);
+       shouldBeFalse(&quot;speechSynthesis.speaking&quot;);
+       finishJSTest();
+    }
+
+    shouldBeFalse(&quot;speechSynthesis.speaking&quot;);
+    speechSynthesis.speak(u);
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisspeakexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisspeakexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+This tests that the basic mechanisms of speaking text work, including sending the job and receving the callback.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS speechSynthesis.speaking is false
+PASS event.elapsedTime &gt; 0 is true
+PASS speechSynthesis.speaking is true
+PASS event.elapsedTime &gt; 0 is true
+PASS speechSynthesis.speaking is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisspeakhtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisspeakhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-speak.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    description(&quot;This tests that the basic mechanisms of speaking text work, including sending the job and receving the callback.&quot;);
+
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+
+    window.jsTestIsAsync = true;
+
+    // Start a very short speaking job that will finish quickly.
+    var u = new SpeechSynthesisUtterance(&quot; &quot;);
+
+    u.onstart = function(event) {
+       shouldBeTrue(&quot;event.elapsedTime &gt; 0&quot;);
+       shouldBeTrue(&quot;speechSynthesis.speaking&quot;);
+    }
+
+    u.addEventListener('end', function(e) { 
+       shouldBeTrue(&quot;event.elapsedTime &gt; 0&quot;);
+       shouldBeFalse(&quot;speechSynthesis.speaking&quot;);
+       finishJSTest();
+    });
+
+    shouldBeFalse(&quot;speechSynthesis.speaking&quot;);
+    speechSynthesis.speak(u);
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisutteranceusesvoiceexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisutteranceusesvoiceexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+This tests that we can get synthesizer voices on the Mac
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Verify that setting and retrieving the voice works.
+PASS u.voice.name == voice.name is true
+Speech job finished successfully.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisutteranceusesvoicehtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisutteranceusesvoicehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,42 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+    description(&quot;This tests that we can get synthesizer voices on the Mac&quot;);
+
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+
+    window.jsTestIsAsync = true;
+
+    var list = speechSynthesis.getVoices();
+    var voice = list[0];
+
+    // Start a very short speaking job that will finish quickly.
+    var u = new SpeechSynthesisUtterance(&quot;this is a test string.&quot;);
+    u.voice = voice;
+
+    debug(&quot;Verify that setting and retrieving the voice works.&quot;);
+    shouldBeTrue(&quot;u.voice.name == voice.name&quot;);
+
+    u.onend = function(event) {
+       debug(&quot;Speech job finished successfully.&quot;);
+       finishJSTest();
+    }
+
+    speechSynthesis.speak(u);    
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisvoicesexpectedtxtfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisvoicesexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-voices-expected.txt (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-voices-expected.txt) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-voices-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-voices-expected.txt        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+This tests that we can get synthesizer voices on the Mac
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS voiceCount &gt; 0 is true
+PASS foundEnglishVoice is true
+PASS foundDefaultVoice is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastspeechsynthesisspeechsynthesisvoiceshtmlfromrev172999trunkLayoutTestsplatformmacfastspeechsynthesisspeechsynthesisvoiceshtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-voices.html (from rev 172999, trunk/LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-voices.html) (0 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-voices.html                                (rev 0)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-voices.html        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -0,0 +1,41 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+    if (window.internals)
+        window.internals.enableMockSpeechSynthesizer();
+
+    description(&quot;This tests that we can get synthesizer voices on the Mac&quot;);
+
+    var speech = window.speechSynthesis;
+    var list = speech.getVoices();
+
+    var foundDefaultVoice = false;
+    var foundEnglishVoice = false;
+    var voiceCount = list.length;
+
+    for (var k = 0; k &lt; list.length; k++ ) {
+        var voice = list[k];
+        if (voice.lang == &quot;en-US&quot;) {
+            foundEnglishVoice = true;
+        }
+        if (voice.default) {
+            foundDefaultVoice = true;
+        }
+    }
+
+    shouldBeTrue(&quot;voiceCount &gt; 0&quot;);
+    shouldBeTrue(&quot;foundEnglishVoice&quot;);
+    shouldBeTrue(&quot;foundDefaultVoice&quot;);
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformgtkTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/TestExpectations (172999 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/TestExpectations        2014-08-27 07:56:09 UTC (rev 172999)
+++ trunk/LayoutTests/platform/gtk/TestExpectations        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -67,6 +67,7 @@
</span><span class="cx"> # X-Content-Type-Options (ENABLE_NOSNIFF) is not enabled.
</span><span class="cx"> webkit.org/b/71851 http/tests/security/contentTypeOptions [ Skip ]
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> # Accelerated overflow scrolling (ENABLE_ACCELERATED_OVERFLOW_SCROLLING) is not enabled.
</span><span class="cx"> Bug(GTK) fast/repaint/overflow-scroll-touch-repaint.html [ Skip ]
</span><span class="cx"> 
</span><span class="lines">@@ -342,6 +343,9 @@
</span><span class="cx"> # Snapshotted plugins not enabled
</span><span class="cx"> webkit.org/b/98696 plugins/snapshotting [ Skip ]
</span><span class="cx"> 
</span><ins>+# Missing WebSpeech implementation
+webkit.org/b/136224 fast/speechsynthesis [ Skip ]
+
</ins><span class="cx"> # Skip the perf/ tests in debug builds
</span><span class="cx"> Bug(GTK) [ Debug ] perf [ Skip ]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformwinTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/win/TestExpectations (172999 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/TestExpectations        2014-08-27 07:56:09 UTC (rev 172999)
+++ trunk/LayoutTests/platform/win/TestExpectations        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -2816,3 +2816,6 @@
</span><span class="cx"> webkit.org/b/72828 mathml/opentype/horizontal-munderover.html [ Failure ]
</span><span class="cx"> webkit.org/b/119038 mathml/presentation/mo-stretch.html [ Failure ]
</span><span class="cx"> webkit.org/b/119038 mathml/presentation/roots.xhtml [ Failure ]
</span><ins>+
+# Missing WebSpeech implementation
+webkit.org/b/136224 fast/speechsynthesis [ Skip ]
</ins></span></pre></div>
<a id="trunkSourcecmakeOptionsEflcmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/OptionsEfl.cmake (172999 => 173000)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/OptionsEfl.cmake        2014-08-27 07:56:09 UTC (rev 172999)
+++ trunk/Source/cmake/OptionsEfl.cmake        2014-08-27 08:04:14 UTC (rev 173000)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SECCOMP_FILTERS OFF)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON)
</span><del>-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS OFF)
</del><ins>+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS ON)
</ins><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPELLCHECK ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEMPLATE_ELEMENT ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS ON)
</span></span></pre>
</div>
</div>

</body>
</html>