diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index d35c07d3b52..1a2debac04f 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -28544,7 +28544,7 @@ class SpeechGrammarList extends JavaScriptObject
// BSD-style license that can be found in the LICENSE file.
@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Native("SpeechRecognition")
+@Native("SpeechRecognition,webkitSpeechRecognition")
class SpeechRecognition extends EventTarget {
// To suppress missing implicit constructor warnings.
factory SpeechRecognition._() {
diff --git a/tools/dom/scripts/generator.py b/tools/dom/scripts/generator.py
index 6ac22ce9283..ad3761eae19 100644
--- a/tools/dom/scripts/generator.py
+++ b/tools/dom/scripts/generator.py
@@ -342,6 +342,8 @@ _dart2js_dom_custom_native_specs = monitored.Dict(
'RTCDataChannel,DataChannel',
'ScriptProcessorNode':
'ScriptProcessorNode,JavaScriptAudioNode',
+ 'SpeechRecognition':
+ 'SpeechRecognition,webkitSpeechRecognition',
'TransitionEvent':
'TransitionEvent,WebKitTransitionEvent',
'CSSKeyframeRule':
diff --git a/tools/dom/web_library_bindings.dart b/tools/dom/web_library_bindings.dart
index f41e7241c8c..a733d1a5503 100644
--- a/tools/dom/web_library_bindings.dart
+++ b/tools/dom/web_library_bindings.dart
@@ -5062,6 +5062,17 @@ final Map>> nativeTypeToDartMembers = {
'removeStream': {'removeStream'},
'removeTrack': {'removeTrack'},
'signalingState': {'signalingState'}
+ },
+ 'webkitSpeechRecognition': {
+ 'abort': {'abort'},
+ 'audioTrack': {'audioTrack'},
+ 'continuous': {'continuous'},
+ 'grammars': {'grammars'},
+ 'interimResults': {'interimResults'},
+ 'lang': {'lang'},
+ 'maxAlternatives': {'maxAlternatives'},
+ 'start': {'start'},
+ 'stop': {'stop'}
}
};
@@ -9755,7 +9766,7 @@ final Map> dartTypeToNativeTypes = {
'SpanElement': {'HTMLSpanElement'},
'SpeechGrammar': {'SpeechGrammar'},
'SpeechGrammarList': {'SpeechGrammarList'},
- 'SpeechRecognition': {'SpeechRecognition'},
+ 'SpeechRecognition': {'SpeechRecognition', 'webkitSpeechRecognition'},
'SpeechRecognitionAlternative': {'SpeechRecognitionAlternative'},
'SpeechRecognitionError': {'SpeechRecognitionError'},
'SpeechRecognitionEvent': {'SpeechRecognitionEvent'},