From 8861eca99b6ab0ceecf23a1e9c911c2f4395b0ca Mon Sep 17 00:00:00 2001 From: chrisgarrity <chrisg@media.mit.edu> Date: Wed, 21 Mar 2018 11:17:07 -0400 Subject: [PATCH] Add more browsers to the unsupported list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added: - Opera (including Opera Mini) - Silk Not Added: - Vivialdi - appears to be ‘Chrome’ in `platform.name` --- src/components/browser-modal/browser-modal.jsx | 4 ++-- src/containers/error-boundary.jsx | 7 ++++++- src/containers/preview-modal.jsx | 5 +---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/components/browser-modal/browser-modal.jsx b/src/components/browser-modal/browser-modal.jsx index c410f7f62..9052d5f57 100644 --- a/src/components/browser-modal/browser-modal.jsx +++ b/src/components/browser-modal/browser-modal.jsx @@ -9,7 +9,7 @@ import styles from './browser-modal.css'; const messages = defineMessages({ label: { id: 'gui.unsupportedBrowser.label', - defaultMessage: 'Internet Explorer is not supported', + defaultMessage: 'Browser is not supported', description: '' } }); @@ -31,7 +31,7 @@ const BrowserModal = ({intl, ...props}) => ( <p> { /* eslint-disable max-len */ } <FormattedMessage - defaultMessage="We're very sorry, but Scratch 3.0 does not support Internet Explorer. We recommend trying a newer browser such as Google Chrome, Mozilla Firefox, or Microsoft Edge." + defaultMessage="We're very sorry, but Scratch 3.0 does not support Internet Explorer, Opera or Silk. We recommend trying a newer browser such as Google Chrome, Mozilla Firefox, or Microsoft Edge." description="Unsupported browser description" id="gui.unsupportedBrowser.description" /> diff --git a/src/containers/error-boundary.jsx b/src/containers/error-boundary.jsx index d7083f052..4c473a737 100644 --- a/src/containers/error-boundary.jsx +++ b/src/containers/error-boundary.jsx @@ -35,7 +35,12 @@ class ErrorBoundary extends React.Component { render () { if (this.state.hasError) { - if (platform.name === 'IE') { + // don't use array.includes because that's something that causes IE to crash. + if ( + platform.name === 'IE' || + platform.name === 'Opera' || + platform.name === 'Opera Mini' || + platform.name === 'Silk') { return <BrowserModalComponent onBack={this.handleBack} />; } return <CrashMessageComponent onReload={this.handleReload} />; diff --git a/src/containers/preview-modal.jsx b/src/containers/preview-modal.jsx index 1209f251f..3fa6c8f03 100644 --- a/src/containers/preview-modal.jsx +++ b/src/containers/preview-modal.jsx @@ -36,10 +36,7 @@ class PreviewModal extends React.Component { this.props.onViewProject(); } supportedBrowser () { - if (platform.name === 'IE') { - return false; - } - return true; + return !['IE', 'Opera', 'Opera Mini', 'Silk', 'Vivaldi'].includes(platform.name); } render () { return (this.supportedBrowser() ? -- GitLab