Diff
Modified: trunk/LayoutTests/ChangeLog (94342 => 94343)
--- trunk/LayoutTests/ChangeLog 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/LayoutTests/ChangeLog 2011-09-01 21:14:56 UTC (rev 94343)
@@ -1,3 +1,13 @@
+2011-09-01 Dominic Mazzoni <[email protected]>
+
+ Adds a new test that checks triggering speech input via an API call.
+ https://bugs.webkit.org/show_bug.cgi?id=60170
+
+ Reviewed by Dimitri Glazkov.
+
+ * fast/speech/input-text-speechtrigger-expected.txt: Added.
+ * fast/speech/input-text-speechtrigger.html: Added.
+
2011-09-01 Cary Clark <[email protected]>
Unreviewed; new baselines (Skia on Mac, next chunk of files)
Added: trunk/LayoutTests/fast/speech/input-text-speechstart-expected.txt (0 => 94343)
--- trunk/LayoutTests/fast/speech/input-text-speechstart-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/speech/input-text-speechstart-expected.txt 2011-09-01 21:14:56 UTC (rev 94343)
@@ -0,0 +1,10 @@
+Tests for triggering speech directly in a <input type="text" speech>.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS document.getElementById("speechInput").value is "Pictures of a sunset"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/speech/input-text-speechstart.html (0 => 94343)
--- trunk/LayoutTests/fast/speech/input-text-speechstart.html (rev 0)
+++ trunk/LayoutTests/fast/speech/input-text-speechstart.html 2011-09-01 21:14:56 UTC (rev 94343)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href=""
+<script src=""
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script type="text/_javascript_">
+description('Tests for triggering speech directly in a <input type="text" speech>.');
+
+function startSpeechInput(id) {
+ // Test that we can trigger speech with a method call to the input
+ // element, so the user agent could toggle speech via a keypress,
+ // for example.
+ var input = document.getElementById(id);
+ layoutTestController.startSpeechInput(input);
+}
+
+function onWebkitSpeechChange() {
+ shouldBeEqualToString('document.getElementById("speechInput").value', 'Pictures of a sunset');
+ finishJSTest();
+}
+
+function run() {
+ if (window.layoutTestController && window.eventSender) {
+ layoutTestController.addMockSpeechInputResult('Pictures of a sunset', 1.0, '');
+ startSpeechInput("speechInput");
+ }
+}
+
+window._onload_ = run;
+window.jsTestIsAsync = true;
+window.successfullyParsed = true;
+</script>
+<script src=""
+<input id='speechInput' x-webkit-speech _onwebkitspeechchange_="onWebkitSpeechChange()">
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (94342 => 94343)
--- trunk/Source/WebCore/ChangeLog 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebCore/ChangeLog 2011-09-01 21:14:56 UTC (rev 94343)
@@ -1,3 +1,22 @@
+2011-09-01 Dominic Mazzoni <[email protected]>
+
+ Add API functions to enable starting and stopping speech input,
+ and checking the current speech input state.
+ https://bugs.webkit.org/show_bug.cgi?id=60170
+
+ Reviewed by Dimitri Glazkov.
+
+ Test: fast/speech/input-text-speechstart.html
+
+ * html/shadow/TextControlInnerElements.cpp:
+ (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
+ (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
+ (WebCore::InputFieldSpeechButtonElement::stopSpeechInput):
+ * html/shadow/TextControlInnerElements.h:
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::speechButtonElement):
+ * rendering/RenderTextControlSingleLine.h:
+
2011-09-01 Tim Horton <[email protected]>
REGRESSION: Rendering artifacts on a rotated, pattern filled SVG shape
Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp (94342 => 94343)
--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -434,16 +434,11 @@
if (event->type() == eventNames().clickEvent && m_listenerId) {
switch (m_state) {
- case Idle: {
- AtomicString language = input->computeInheritedLanguage();
- String grammar = input->getAttribute(webkitgrammarAttr);
- IntRect rect = renderer()->absoluteBoundingBoxRect();
- if (speechInput()->startRecognition(m_listenerId, rect, language, grammar, document()->securityOrigin()))
- setState(Recording);
- }
+ case Idle:
+ startSpeechInput();
break;
case Recording:
- speechInput()->stopRecording(m_listenerId);
+ stopSpeechInput();
break;
case Recognizing:
// Nothing to do here, we will continue to wait for results.
@@ -524,6 +519,25 @@
HTMLDivElement::detach();
}
+void InputFieldSpeechButtonElement::startSpeechInput()
+{
+ if (m_state != Idle)
+ return;
+
+ RefPtr<HTMLInputElement> input = static_cast<HTMLInputElement*>(shadowAncestorNode());
+ AtomicString language = input->computeInheritedLanguage();
+ String grammar = input->getAttribute(webkitgrammarAttr);
+ IntRect rect = input->renderer()->absoluteBoundingBoxRect();
+ if (speechInput()->startRecognition(m_listenerId, rect, language, grammar, document()->securityOrigin()))
+ setState(Recording);
+}
+
+void InputFieldSpeechButtonElement::stopSpeechInput()
+{
+ if (m_state == Recording)
+ speechInput()->stopRecording(m_listenerId);
+}
+
const AtomicString& InputFieldSpeechButtonElement::shadowPseudoId() const
{
DEFINE_STATIC_LOCAL(AtomicString, pseudoId, ("-webkit-input-speech-button"));
Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.h (94342 => 94343)
--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.h 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.h 2011-09-01 21:14:56 UTC (rev 94343)
@@ -140,6 +140,8 @@
virtual void defaultEventHandler(Event*);
virtual bool isInputFieldSpeechButtonElement() const { return true; }
SpeechInputState state() const { return m_state; }
+ void startSpeechInput();
+ void stopSpeechInput();
// SpeechInputListener methods.
void didCompleteRecording(int);
Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp (94342 => 94343)
--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -111,13 +111,6 @@
return inputElement()->cancelButtonElement();
}
-#if ENABLE(INPUT_SPEECH)
-inline HTMLElement* RenderTextControlSingleLine::speechButtonElement() const
-{
- return inputElement()->speechButtonElement();
-}
-#endif
-
RenderStyle* RenderTextControlSingleLine::textBaseStyle() const
{
HTMLElement* innerBlock = innerBlockElement();
@@ -364,6 +357,13 @@
}
}
+#if ENABLE(INPUT_SPEECH)
+HTMLElement* RenderTextControlSingleLine::speechButtonElement() const
+{
+ return inputElement()->speechButtonElement();
+}
+#endif
+
bool RenderTextControlSingleLine::hasControlClip() const
{
// Apply control clip for text fields with decorations.
Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h (94342 => 94343)
--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h 2011-09-01 21:14:56 UTC (rev 94343)
@@ -49,6 +49,10 @@
void capsLockStateMayHaveChanged();
+#if ENABLE(INPUT_SPEECH)
+ HTMLElement* speechButtonElement() const;
+#endif
+
private:
virtual bool hasControlClip() const;
virtual LayoutRect controlClipRect(const LayoutPoint&) const;
@@ -120,9 +124,6 @@
HTMLElement* innerSpinButtonElement() const;
HTMLElement* resultsButtonElement() const;
HTMLElement* cancelButtonElement() const;
-#if ENABLE(INPUT_SPEECH)
- HTMLElement* speechButtonElement() const;
-#endif
bool m_searchPopupIsVisible;
bool m_shouldDrawCapsLockIndicator;
Modified: trunk/Source/WebKit/chromium/ChangeLog (94342 => 94343)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-09-01 21:14:56 UTC (rev 94343)
@@ -1,3 +1,19 @@
+2011-09-01 Dominic Mazzoni <[email protected]>
+
+ Add API functions to enable starting and stopping speech input,
+ and checking the current speech input state.
+ https://bugs.webkit.org/show_bug.cgi?id=60170
+
+ Reviewed by Dimitri Glazkov.
+
+ * public/WebInputElement.h:
+ * src/AssertMatchingEnums.cpp:
+ * src/WebInputElement.cpp:
+ (WebKit::WebInputElement::isSpeechInputEnabled):
+ (WebKit::WebInputElement::getSpeechInputState):
+ (WebKit::WebInputElement::startSpeechInput):
+ (WebKit::WebInputElement::stopSpeechInput):
+
2011-08-31 Greg Billock <[email protected]>
Add pass-throughs for NPObject/v8::Value marshalling to WebBindings
Modified: trunk/Source/WebKit/chromium/public/WebInputElement.h (94342 => 94343)
--- trunk/Source/WebKit/chromium/public/WebInputElement.h 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebKit/chromium/public/WebInputElement.h 2011-09-01 21:14:56 UTC (rev 94343)
@@ -42,6 +42,12 @@
// Provides readonly access to some properties of a DOM input element node.
class WebInputElement : public WebFormControlElement {
public:
+ enum SpeechInputState {
+ Idle,
+ Recording,
+ Recognizing,
+ };
+
WebInputElement() : WebFormControlElement() { }
WebInputElement(const WebInputElement& element) : WebFormControlElement(element) { }
@@ -78,6 +84,11 @@
WEBKIT_EXPORT bool isValidValue(const WebString&) const;
WEBKIT_EXPORT bool isChecked() const;
+ WEBKIT_EXPORT bool isSpeechInputEnabled() const;
+ WEBKIT_EXPORT SpeechInputState getSpeechInputState() const;
+ WEBKIT_EXPORT void startSpeechInput();
+ WEBKIT_EXPORT void stopSpeechInput();
+
// Exposes the default value of the maxLength attribute.
WEBKIT_EXPORT static int defaultMaxLength();
Modified: trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp (94342 => 94343)
--- trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -57,6 +57,7 @@
#include "Settings.h"
#include "StorageInfo.h"
#include "TextAffinity.h"
+#include "TextControlInnerElements.h"
#include "UserContentTypes.h"
#include "UserScriptTypes.h"
#include "UserStyleSheetTypes.h"
@@ -311,6 +312,10 @@
COMPILE_ASSERT_MATCHING_ENUM(WebIconURL::TypeTouch, TouchIcon);
COMPILE_ASSERT_MATCHING_ENUM(WebIconURL::TypeTouchPrecomposed, TouchPrecomposedIcon);
+COMPILE_ASSERT_MATCHING_ENUM(WebInputElement::Idle, InputFieldSpeechButtonElement::Idle);
+COMPILE_ASSERT_MATCHING_ENUM(WebInputElement::Recording, InputFieldSpeechButtonElement::Recording);
+COMPILE_ASSERT_MATCHING_ENUM(WebInputElement::Recognizing, InputFieldSpeechButtonElement::Recognizing);
+
COMPILE_ASSERT_MATCHING_ENUM(WebNode::ElementNode, Node::ELEMENT_NODE);
COMPILE_ASSERT_MATCHING_ENUM(WebNode::AttributeNode, Node::ATTRIBUTE_NODE);
COMPILE_ASSERT_MATCHING_ENUM(WebNode::TextNode, Node::TEXT_NODE);
Modified: trunk/Source/WebKit/chromium/src/WebInputElement.cpp (94342 => 94343)
--- trunk/Source/WebKit/chromium/src/WebInputElement.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Source/WebKit/chromium/src/WebInputElement.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -33,6 +33,9 @@
#include "HTMLInputElement.h"
#include "HTMLNames.h"
+#include "RenderObject.h"
+#include "RenderTextControlSingleLine.h"
+#include "TextControlInnerElements.h"
#include "WebString.h"
#include <wtf/PassRefPtr.h>
@@ -150,6 +153,59 @@
return constUnwrap<HTMLInputElement>()->checked();
}
+bool WebInputElement::isSpeechInputEnabled() const
+{
+#if ENABLE(INPUT_SPEECH)
+ return constUnwrap<HTMLInputElement>()->isSpeechEnabled();
+#else
+ return false;
+#endif
+}
+
+WebInputElement::SpeechInputState WebInputElement::getSpeechInputState() const
+{
+#if ENABLE(INPUT_SPEECH)
+ RenderObject* renderer = constUnwrap<HTMLInputElement>()->renderer();
+ if (!renderer)
+ return Idle;
+
+ RenderTextControlSingleLine* control = toRenderTextControlSingleLine(renderer);
+ InputFieldSpeechButtonElement* speechButton = toInputFieldSpeechButtonElement(control->speechButtonElement());
+ if (speechButton)
+ return static_cast<WebInputElement::SpeechInputState>(speechButton->state());
+#endif
+
+ return Idle;
+}
+
+void WebInputElement::startSpeechInput()
+{
+#if ENABLE(INPUT_SPEECH)
+ RenderObject* renderer = constUnwrap<HTMLInputElement>()->renderer();
+ if (!renderer)
+ return;
+
+ RenderTextControlSingleLine* control = toRenderTextControlSingleLine(renderer);
+ InputFieldSpeechButtonElement* speechButton = toInputFieldSpeechButtonElement(control->speechButtonElement());
+ if (speechButton)
+ speechButton->startSpeechInput();
+#endif
+}
+
+void WebInputElement::stopSpeechInput()
+{
+#if ENABLE(INPUT_SPEECH)
+ RenderObject* renderer = constUnwrap<HTMLInputElement>()->renderer();
+ if (!renderer)
+ return;
+
+ RenderTextControlSingleLine* control = toRenderTextControlSingleLine(renderer);
+ InputFieldSpeechButtonElement* speechButton = toInputFieldSpeechButtonElement(control->speechButtonElement());
+ if (speechButton)
+ speechButton->stopSpeechInput();
+#endif
+}
+
int WebInputElement::defaultMaxLength()
{
return HTMLInputElement::maximumLength;
Modified: trunk/Tools/ChangeLog (94342 => 94343)
--- trunk/Tools/ChangeLog 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/ChangeLog 2011-09-01 21:14:56 UTC (rev 94343)
@@ -1,3 +1,30 @@
+2011-09-01 Dominic Mazzoni <[email protected]>
+
+ Adds a LayoutTestController method to make it possible to test
+ starting speech input via an API call.
+ https://bugs.webkit.org/show_bug.cgi?id=60170
+
+ Reviewed by Dimitri Glazkov.
+
+ * DumpRenderTree/LayoutTestController.h:
+ * DumpRenderTree/chromium/LayoutTestController.cpp:
+ (LayoutTestController::LayoutTestController):
+ (LayoutTestController::startSpeechInput):
+ * DumpRenderTree/chromium/LayoutTestController.h:
+ * DumpRenderTree/efl/LayoutTestControllerEfl.cpp:
+ (LayoutTestController::startSpeechInput):
+ * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
+ (LayoutTestController::startSpeechInput):
+ * DumpRenderTree/mac/LayoutTestControllerMac.mm:
+ (LayoutTestController::startSpeechInput):
+ * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
+ (LayoutTestController::startSpeechInput):
+ * DumpRenderTree/qt/LayoutTestControllerQt.h:
+ * DumpRenderTree/win/LayoutTestControllerWin.cpp:
+ (LayoutTestController::startSpeechInput):
+ * DumpRenderTree/wx/LayoutTestControllerWx.cpp:
+ (LayoutTestController::startSpeechInput):
+
2011-09-01 Tim Horton <[email protected]>
Fix TestWebKitAPI build on clang-2.0
Modified: trunk/Tools/DumpRenderTree/LayoutTestController.h (94342 => 94343)
--- trunk/Tools/DumpRenderTree/LayoutTestController.h 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/LayoutTestController.h 2011-09-01 21:14:56 UTC (rev 94343)
@@ -125,6 +125,7 @@
void setSpatialNavigationEnabled(bool enable);
void setScrollbarPolicy(JSStringRef orientation, JSStringRef policy);
void setEditingBehavior(const char* editingBehavior);
+ void startSpeechInput(JSContextRef inputElement);
void setPageVisibility(const char* visibility) { }
void resetPageVisibility() { }
Modified: trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp (94342 => 94343)
--- trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -188,6 +188,7 @@
bindMethod("setAsynchronousSpellCheckingEnabled", &LayoutTestController::setAsynchronousSpellCheckingEnabled);
bindMethod("showWebInspector", &LayoutTestController::showWebInspector);
bindMethod("simulateDesktopNotificationClick", &LayoutTestController::simulateDesktopNotificationClick);
+ bindMethod("startSpeechInput", &LayoutTestController::startSpeechInput);
bindMethod("suspendAnimations", &LayoutTestController::suspendAnimations);
bindMethod("testRepaint", &LayoutTestController::testRepaint);
bindMethod("waitForPolicyDelegate", &LayoutTestController::waitForPolicyDelegate);
@@ -1725,6 +1726,26 @@
m_shell->webViewHost()->speechInputControllerMock()->addMockRecognitionResult(cppVariantToWebString(arguments[0]), arguments[1].toDouble(), cppVariantToWebString(arguments[2]));
}
+void LayoutTestController::startSpeechInput(const CppArgumentList& arguments, CppVariant* result)
+{
+ result->setNull();
+ if (arguments.size() != 1)
+ return;
+
+ WebElement element;
+ if (!WebBindings::getElement(arguments[0].value.objectValue, &element))
+ return;
+
+ WebInputElement* input = toWebInputElement(&element);
+ if (!input)
+ return;
+
+ if (!input->isSpeechInputEnabled())
+ return;
+
+ input->startSpeechInput();
+}
+
void LayoutTestController::layerTreeAsText(const CppArgumentList& args, CppVariant* result)
{
result->set(m_shell->webView()->mainFrame()->layerTreeAsText(m_showDebugLayerTree).utf8());
Modified: trunk/Tools/DumpRenderTree/chromium/LayoutTestController.h (94342 => 94343)
--- trunk/Tools/DumpRenderTree/chromium/LayoutTestController.h 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/chromium/LayoutTestController.h 2011-09-01 21:14:56 UTC (rev 94343)
@@ -360,6 +360,7 @@
// Speech input related functions.
void addMockSpeechInputResult(const CppArgumentList&, CppVariant*);
+ void startSpeechInput(const CppArgumentList&, CppVariant*);
void layerTreeAsText(const CppArgumentList& args, CppVariant* result);
Modified: trunk/Tools/DumpRenderTree/efl/LayoutTestControllerEfl.cpp (94342 => 94343)
--- trunk/Tools/DumpRenderTree/efl/LayoutTestControllerEfl.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/efl/LayoutTestControllerEfl.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -384,6 +384,13 @@
notImplemented();
}
+void LayoutTestController::startSpeechInput(JSContextRef inputElement)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+ notImplemented();
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool enabled)
{
if (!enabled) {
Modified: trunk/Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp (94342 => 94343)
--- trunk/Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -502,6 +502,12 @@
// See https://bugs.webkit.org/show_bug.cgi?id=39485.
}
+void LayoutTestController::startSpeechInput(JSContextRef inputElement)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool enabled)
{
WebKitIconDatabase* database = webkit_get_icon_database();
Modified: trunk/Tools/DumpRenderTree/mac/LayoutTestControllerMac.mm (94342 => 94343)
--- trunk/Tools/DumpRenderTree/mac/LayoutTestControllerMac.mm 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/mac/LayoutTestControllerMac.mm 2011-09-01 21:14:56 UTC (rev 94343)
@@ -482,6 +482,12 @@
// See https://bugs.webkit.org/show_bug.cgi?id=39485.
}
+void LayoutTestController::startSpeechInput(JSContextRef inputElement)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool iconDatabaseEnabled)
{
// FIXME: Workaround <rdar://problem/6480108>
Modified: trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp (94342 => 94343)
--- trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -875,6 +875,12 @@
// See https://bugs.webkit.org/show_bug.cgi?id=39485.
}
+void LayoutTestController::startSpeechInput(const QString& inputElement)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::evaluateScriptInIsolatedWorld(int worldID, const QString& script)
{
DumpRenderTreeSupportQt::evaluateScriptInIsolatedWorld(m_drt->webPage()->mainFrame(), worldID, script);
Modified: trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.h (94342 => 94343)
--- trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.h 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.h 2011-09-01 21:14:56 UTC (rev 94343)
@@ -233,6 +233,7 @@
bool geolocationPermission() const { return m_geolocationPermission; }
void addMockSpeechInputResult(const QString& result, double confidence, const QString& language);
+ void startSpeechInput(const QString& inputElement);
// Empty stub method to keep parity with object model exposed by global LayoutTestController.
void abortModal() {}
Modified: trunk/Tools/DumpRenderTree/win/LayoutTestControllerWin.cpp (94342 => 94343)
--- trunk/Tools/DumpRenderTree/win/LayoutTestControllerWin.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/win/LayoutTestControllerWin.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -450,6 +450,12 @@
// See https://bugs.webkit.org/show_bug.cgi?id=39485.
}
+void LayoutTestController::startSpeechInput(JSContextRef inputElement)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool iconDatabaseEnabled)
{
// See also <rdar://problem/6480108>
Modified: trunk/Tools/DumpRenderTree/wx/LayoutTestControllerWx.cpp (94342 => 94343)
--- trunk/Tools/DumpRenderTree/wx/LayoutTestControllerWx.cpp 2011-09-01 21:06:26 UTC (rev 94342)
+++ trunk/Tools/DumpRenderTree/wx/LayoutTestControllerWx.cpp 2011-09-01 21:14:56 UTC (rev 94343)
@@ -376,6 +376,12 @@
// See https://bugs.webkit.org/show_bug.cgi?id=39485.
}
+void LayoutTestController::startSpeechInput(JSContextRef inputElement)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool iconDatabaseEnabled)
{
// FIXME: implement