mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Fix firefox detection to fix app startup for other browsers (flutter/engine#14145)
This commit is contained in:
parent
294e4deceb
commit
5bb2256d2f
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user