Fix firefox detection to fix app startup for other browsers (flutter/engine#14145)

This commit is contained in:
Ferhat 2019-12-05 10:48:55 -08:00 committed by GitHub
parent 294e4deceb
commit 5bb2256d2f

View File

@ -19,6 +19,9 @@ enum BrowserEngine {
/// The engine that powers Edge.
edge,
/// The engine that powers Internet Explorer 11.
ie11,
/// We were unable to detect the current browser engine.
unknown,
}
@ -33,14 +36,16 @@ BrowserEngine get browserEngine => _browserEngine ??= _detectBrowserEngine();
BrowserEngine _detectBrowserEngine() {
final String vendor = html.window.navigator.vendor;
final String agent = html.window.navigator.userAgent;
final String agent = html.window.navigator.userAgent.toLowerCase();
if (vendor == 'Google Inc.') {
return BrowserEngine.blink;
} else if (vendor == 'Apple Computer, Inc.') {
return BrowserEngine.webkit;
} else if (agent.contains('Edge/')) {
} else if (agent.contains('edge/')) {
return BrowserEngine.edge;
} else if (vendor == '') {
} else if (agent.contains('trident/7.0')) {
return BrowserEngine.ie11;
} else if (vendor == '' && agent.contains('firefox')) {
// An empty string means firefox:
// https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vendor
return BrowserEngine.firefox;
@ -48,7 +53,6 @@ BrowserEngine _detectBrowserEngine() {
// Assume blink otherwise, but issue a warning.
print('WARNING: failed to detect current browser engine.');
return BrowserEngine.unknown;
}