From 317f11ed92575c63fbc64040bcf7b20edc1324ce Mon Sep 17 00:00:00 2001
From: Ray Schamp <ray@scratch.mit.edu>
Date: Fri, 4 May 2018 23:28:55 -0400
Subject: [PATCH] Use bowser rather than platform

bowser correctly detects Chrome Headless as Chrome, is already used by scratchr2, and is more actively maintained than platform.
---
 package.json                          |  2 +-
 src/containers/error-boundary.jsx     |  4 ++--
 src/lib/audio/shared-audio-context.js |  4 ++--
 src/lib/supported-browser.js          | 10 +++++-----
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/package.json b/package.json
index 2a5e742a7..8cf48af55 100644
--- a/package.json
+++ b/package.json
@@ -37,6 +37,7 @@
     "babel-plugin-transform-object-rest-spread": "^6.22.0",
     "babel-preset-env": "^1.6.1",
     "babel-preset-react": "^6.22.0",
+    "bowser": "1.9.3",
     "chromedriver": "2.38.2",
     "classnames": "2.2.5",
     "copy-webpack-plugin": "^4.5.1",
@@ -63,7 +64,6 @@
     "lodash.pick": "4.4.0",
     "minilog": "3.1.0",
     "mkdirp": "^0.5.1",
-    "platform": "1.3.5",
     "postcss-import": "^11.0.0",
     "postcss-loader": "^2.1.4",
     "postcss-simple-vars": "^4.0.0",
diff --git a/src/containers/error-boundary.jsx b/src/containers/error-boundary.jsx
index c140d0ee7..52e522d5a 100644
--- a/src/containers/error-boundary.jsx
+++ b/src/containers/error-boundary.jsx
@@ -1,6 +1,6 @@
 import React from 'react';
 import PropTypes from 'prop-types';
-import platform from 'platform';
+import bowser from 'bowser';
 import BrowserModalComponent from '../components/browser-modal/browser-modal.jsx';
 import CrashMessageComponent from '../components/crash-message/crash-message.jsx';
 import log from '../lib/log.js';
@@ -36,7 +36,7 @@ class ErrorBoundary extends React.Component {
             analytics.event({
                 category: 'Unsupported Browser Error',
                 action: `(Unsupported Browser) ${this.props.action}`,
-                label: `${platform.name} ${error.message}`
+                label: `${bowser.name} ${error.message}`
             });
         }
 
diff --git a/src/lib/audio/shared-audio-context.js b/src/lib/audio/shared-audio-context.js
index f7a109ac7..b459e9e8f 100644
--- a/src/lib/audio/shared-audio-context.js
+++ b/src/lib/audio/shared-audio-context.js
@@ -1,8 +1,8 @@
 import StartAudioContext from 'startaudiocontext';
-import platform from 'platform';
+import bowser from 'bowser';
 
 let AUDIO_CONTEXT;
-if (platform.name !== 'IE') {
+if (bowser.name !== 'IE') {
     AUDIO_CONTEXT = new (window.AudioContext || window.webkitAudioContext)();
 
     StartAudioContext(AUDIO_CONTEXT);
diff --git a/src/lib/supported-browser.js b/src/lib/supported-browser.js
index 507fb1dcf..891a67f05 100644
--- a/src/lib/supported-browser.js
+++ b/src/lib/supported-browser.js
@@ -1,14 +1,14 @@
-import platform from 'platform';
+import bowser from 'bowser';
 
 /**
  * Helper function to determine if the browser is supported.
  * @returns {boolean} False if the platform is definitely not supported.
  */
 export default function () {
-    if (platform.name === 'IE' ||
-        platform.name === 'Opera' ||
-        platform.name === 'Opera Mini' ||
-        platform.name === 'Silk') {
+    if (bowser.name === 'IE' ||
+        bowser.name === 'Opera' ||
+        bowser.name === 'Opera Mini' ||
+        bowser.name === 'Silk') {
         return false;
     }
     // @todo Should also test for versions of supported browsers
-- 
GitLab