From 0c16dd16ff698707151079fcfe61d8f8eeeb0026 Mon Sep 17 00:00:00 2001
From: Robert Long <robert@robertlong.me>
Date: Wed, 9 May 2018 14:59:04 -0700
Subject: [PATCH] Update audio-context-fix to work for in Chrome.

---
 src/hub.js                         |  2 +-
 src/utils/audio-context-fix.js     | 22 ++++++++++++++++++++++
 src/utils/ios-audio-context-fix.js | 23 -----------------------
 3 files changed, 23 insertions(+), 24 deletions(-)
 create mode 100644 src/utils/audio-context-fix.js
 delete mode 100644 src/utils/ios-audio-context-fix.js

diff --git a/src/hub.js b/src/hub.js
index 1c71658bf..cadf87e9f 100644
--- a/src/hub.js
+++ b/src/hub.js
@@ -17,7 +17,7 @@ import "aframe-billboard-component";
 import "aframe-rounded";
 import "webrtc-adapter";
 import "aframe-slice9-component";
-import "./utils/ios-audio-context-fix";
+import "./utils/audio-context-fix";
 
 import trackpad_dpad4 from "./behaviours/trackpad-dpad4";
 import joystick_dpad4 from "./behaviours/joystick-dpad4";
diff --git a/src/utils/audio-context-fix.js b/src/utils/audio-context-fix.js
new file mode 100644
index 000000000..4cca2a84a
--- /dev/null
+++ b/src/utils/audio-context-fix.js
@@ -0,0 +1,22 @@
+/**
+ * Mobile Safari and Chrome will start Audio contexts in a "suspended" state.
+ * A user interaction (touch/mouse event) is needed in order to resume the AudioContext.
+ */
+
+document.addEventListener("DOMContentLoaded", () => {
+  const ctx = THREE.AudioContext.getContext();
+
+  function resume() {
+    ctx.resume();
+
+    setTimeout(function() {
+      if (ctx.state === "running") {
+        document.body.removeEventListener("touchend", resume, false);
+        document.body.removeEventListener("mouseup", resume, false);
+      }
+    }, 0);
+  }
+
+  document.body.addEventListener("touchend", resume, false);
+  document.body.addEventListener("mouseup", resume, false);
+});
diff --git a/src/utils/ios-audio-context-fix.js b/src/utils/ios-audio-context-fix.js
deleted file mode 100644
index ce474194f..000000000
--- a/src/utils/ios-audio-context-fix.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Mobile Safari will start Audio contexts in a "suspended" state.
- * A user interaction (touch event) is needed in order to resume the AudioContext.
- */
-const iDevices = /\biPhone.*Mobile|\biPod|\biPad|AppleCoreMedia/;
-
-if (iDevices.test(navigator.userAgent)) {
-  document.addEventListener("DOMContentLoaded", () => {
-    const ctx = THREE.AudioContext.getContext();
-
-    function resume() {
-      ctx.resume();
-
-      setTimeout(function() {
-        if (ctx.state === "running") {
-          document.body.removeEventListener("touchend", resume, false);
-        }
-      }, 0);
-    }
-
-    document.body.addEventListener("touchend", resume, false);
-  });
-}
-- 
GitLab