From cd982ca7d008622b90c558cc9aaa60dd7f46979e Mon Sep 17 00:00:00 2001 From: Ferhat Date: Wed, 20 Nov 2019 08:56:56 -0800 Subject: [PATCH] Fix edge detection for correct dom_renderer reset (flutter/engine#13940) --- .../lib/web_ui/lib/src/engine/browser_detection.dart | 6 ++++++ .../lib/web_ui/lib/src/engine/semantics/text_field.dart | 1 + 2 files changed, 7 insertions(+) diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/browser_detection.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/browser_detection.dart index 9cdc61edbd4..fffcadeef6e 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/browser_detection.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/browser_detection.dart @@ -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 diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/semantics/text_field.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/semantics/text_field.dart index 107d9237c82..8ce6682ed15 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/semantics/text_field.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/semantics/text_field.dart @@ -60,6 +60,7 @@ class TextField extends RoleManager { switch (browserEngine) { case BrowserEngine.blink: + case BrowserEngine.edge: case BrowserEngine.firefox: case BrowserEngine.unknown: _initializeForBlink();