From a5c452c6ef1fb0aead051e231ce9a07fec4718d7 Mon Sep 17 00:00:00 2001
From: Benjamin Kott <benjamin.kott@wfp2.com>
Date: Fri, 4 Mar 2016 11:27:02 +0100
Subject: [PATCH] [BUGFIX] Adjust UserAgent checks in RTE to detect Edge
 correctly

Resolves: #70373
Releases: master, 7.6, 6.2
Change-Id: I8cb505a051ecfbc0f423d32cbc121545cec35bf4
Reviewed-on: https://review.typo3.org/47037
Reviewed-by: Mathias Schreiber <mathias.schreiber@wmdb.de>
Tested-by: Mathias Schreiber <mathias.schreiber@wmdb.de>
Reviewed-by: Frank Naegler <frank.naegler@typo3.org>
Reviewed-by: Nicole Cordes <typo3@cordes.co>
Reviewed-by: Daniel Maier <dani-maier@gmx.de>
Tested-by: Daniel Maier <dani-maier@gmx.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
---
 .../JavaScript/HTMLArea/UserAgent/UserAgent.js      | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/typo3/sysext/rtehtmlarea/Resources/Public/JavaScript/HTMLArea/UserAgent/UserAgent.js b/typo3/sysext/rtehtmlarea/Resources/Public/JavaScript/HTMLArea/UserAgent/UserAgent.js
index 0ef0d8851673..b00bc03d1e8f 100644
--- a/typo3/sysext/rtehtmlarea/Resources/Public/JavaScript/HTMLArea/UserAgent/UserAgent.js
+++ b/typo3/sysext/rtehtmlarea/Resources/Public/JavaScript/HTMLArea/UserAgent/UserAgent.js
@@ -21,21 +21,24 @@ define([], function () {
 	var userAgent = navigator.userAgent.toLowerCase();
 	var documentMode = document.documentMode,
 		isOpera = /opera/i.test(userAgent),
-		isChrome = /\bchrome\b/i.test(userAgent),
-		isWebKit = /webkit/i.test(userAgent),
+		isEdge = /edge/i.test(userAgent),
+		isChrome = !isEdge && /\bchrome\b/i.test(userAgent),
+		isWebKit = !isEdge && /webkit/i.test(userAgent),
+		isSafari = !isEdge && !isChrome && /safari/i.test(userAgent),
 		isIE = (!isOpera && /msie/i.test(userAgent)) || /trident/i.test(userAgent),
 		isIE6 = isIE && /msie 6/i.test(userAgent),
 		isIE7 = isIE && (/msie 7/i.test(userAgent) || documentMode == 7),
 		isIE8 = isIE && ((/msie 8/i.test(userAgent) && documentMode != 7) || documentMode == 8),
 		isIEBeforeIE9 = isIE6 || isIE7 || isIE8 || (isIE && typeof documentMode !== 'undefined' && documentMode < 9),
-		isGecko = !isWebKit && !isIE && /gecko/i.test(userAgent),
+		isGecko = !isWebKit && !isIE && !isEdge && /gecko/i.test(userAgent),
 		isiPhone = /iphone/i.test(userAgent),
 		isiPad = /ipad/i.test(userAgent);
 	return {
 		isOpera: isOpera,
+		isEdge: isEdge,
 		isChrome: isChrome,
 		isWebKit: isWebKit,
-		isSafari: !isChrome && /safari/i.test(userAgent),
+		isSafari: isSafari,
 		isIE: isIE,
 		isIE6: isIE6,
 		isIE7: isIE7,
@@ -58,7 +61,7 @@ define([], function () {
 		 * @return boolean true if the client is supported
 		 */
 		isSupported: function () {
-			return isGecko || isWebKit || isOpera || (isIE && !isIEBeforeIE9);
+			return isGecko || isWebKit || isOpera || isEdge ||(isIE && !isIEBeforeIE9);
 		}
 	};
 });
-- 
GitLab