diff --git a/src/assets/stylesheets/info-dialog.scss b/src/assets/stylesheets/info-dialog.scss
index 242fd4da41ef77600b12a13dda0897160ed95664..d0dcd57634d5d47f177d2cdf043dc8d908b1863a 100644
--- a/src/assets/stylesheets/info-dialog.scss
+++ b/src/assets/stylesheets/info-dialog.scss
@@ -184,4 +184,5 @@
   -moz-appearance: none;
   -webkit-appearance: none;
   margin: auto;
+  text-decoration: none;
 }
diff --git a/src/react-components/info-dialog.js b/src/react-components/info-dialog.js
index 780cdab029a3344df0ca0243d4653ebd9571e38d..1aa5f29438372ffc1aaa6c7046bf9c3a751c8b46 100644
--- a/src/react-components/info-dialog.js
+++ b/src/react-components/info-dialog.js
@@ -224,12 +224,9 @@ class InfoDialog extends Component {
           <span>
             To enter Hubs with Oculus or SteamVR, you can use Firefox.
             <p />
-            <button
-              className="info-dialog--action-button"
-              onClick={() => (document.location = "https://www.mozilla.org/firefox")}
-            >
+            <a className="info-dialog--action-button" href="https://www.mozilla.org/firefox">
               Download Firefox
-            </button>
+            </a>
             <p />
             <span style={{ fontSize: "0.8em" }}>
               For a full list of browsers with experimental VR support, visit{" "}
diff --git a/src/react-components/ui-root.js b/src/react-components/ui-root.js
index 09eb060a8e9e6e1300caa405abf6884b24a2fd6d..e622efc035d4ce17ff90cc9b767df5f87f04ff32 100644
--- a/src/react-components/ui-root.js
+++ b/src/react-components/ui-root.js
@@ -546,7 +546,7 @@ class UIRoot extends Component {
               WebRTC Data Channels
             </a>, which is required to use Hubs.<br />If you&quot;d like to use Hubs with Oculus or SteamVR, you can{" "}
             <a href="https://www.mozilla.org/firefox" rel="noreferrer noopener">
-              Download Firefox.
+              Download Firefox
             </a>.
           </div>
         );
diff --git a/src/utils/vr-caps-detect.js b/src/utils/vr-caps-detect.js
index 11ed8ca68c1957c8cd0b5def98bd638e52023764..79c425da26428b227daa71890b443f913640abc2 100644
--- a/src/utils/vr-caps-detect.js
+++ b/src/utils/vr-caps-detect.js
@@ -44,14 +44,10 @@ const GENERIC_ENTRY_TYPE_DEVICE_BLACKLIST = [/cardboard/i];
 export async function getAvailableVREntryTypes() {
   const isSamsungBrowser = browser.name === "chrome" && navigator.userAgent.match(/SamsungBrowser/);
   const isOculusBrowser = navigator.userAgent.match(/Oculus/);
-  const isChromium = navigator.userAgent.match(/Chromium/);
-  const isSupermedium = navigator.userAgent.match(/supermedium/i);
 
   // This needs to be kept up-to-date with the latest browsers that can support VR and Hubs.
   // Checking for navigator.getVRDisplays always passes b/c of polyfill.
-  const isWebVRCapableBrowser =
-    (mobiledetect.mobile() && (browser.name === "chrome" || isSamsungBrowser || isOculusBrowser)) || // Mobile
-    (!mobiledetect.mobile() && (browser.name === "firefox" || isChromium || isSupermedium)); // Desktop
+  const isWebVRCapableBrowser = window.hasNativeWebVRImplementation;
 
   const isDaydreamCapableBrowser = !!(isWebVRCapableBrowser && browser.name === "chrome" && !isSamsungBrowser);