Fix edge detection for correct dom_renderer reset (flutter/engine#13940)

This commit is contained in:
Ferhat 2019-11-20 08:56:56 -08:00 committed by GitHub
parent 3daba45b72
commit cd982ca7d0
2 changed files with 7 additions and 0 deletions

View File

@ -16,6 +16,9 @@ enum BrowserEngine {
/// The engine that powers Firefox.
firefox,
/// The engine that powers Edge.
edge,
/// We were unable to detect the current browser engine.
unknown,
}
@ -30,10 +33,13 @@ BrowserEngine get browserEngine => _browserEngine ??= _detectBrowserEngine();
BrowserEngine _detectBrowserEngine() {
final String vendor = html.window.navigator.vendor;
final String agent = html.window.navigator.userAgent;
if (vendor == 'Google Inc.') {
return BrowserEngine.blink;
} else if (vendor == 'Apple Computer, Inc.') {
return BrowserEngine.webkit;
} else if (agent.contains('Edge/')) {
return BrowserEngine.edge;
} else if (vendor == '') {
// An empty string means firefox:
// https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vendor

View File

@ -60,6 +60,7 @@ class TextField extends RoleManager {
switch (browserEngine) {
case BrowserEngine.blink:
case BrowserEngine.edge:
case BrowserEngine.firefox:
case BrowserEngine.unknown:
_initializeForBlink();