Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not crash if non-prefixed AudioContext isn't available #11

Merged
merged 1 commit into from Aug 31, 2018

Conversation

warpdesign
Copy link
Contributor

Safari 11.x only has prefixed webAudioContext: without this patch the polyfill crashes.

Fixes #9

Safari 11.x only has prefixed `webAudioContext`: without this patch the polyfill crashes.
@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

@warpdesign
Copy link
Contributor Author

I signed it.

@googlebot
Copy link

CLAs look good, thanks!

Copy link
Collaborator

@developit developit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a small change - I can make it if you want, or you can!

@@ -47,7 +47,7 @@ if (typeof AudioWorkletNode !== 'function') {
return scriptProcessor;
};

Object.defineProperty(AudioContext.prototype, 'audioWorklet', {
Object.defineProperty((window.AudioContext||webkitAudioContext).prototype, 'audioWorklet', {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will crash if neither are defined. Need to do:

(self.AudioContext || self.webkitAudioContext)

@developit
Copy link
Collaborator

FWIW I usually recommend "polyfilling" AudioContext in Safari globally:

if (!window.AudioContext && window.webkitAudioContext) = window.AudioContext = window.webkitAudioContext;

@developit developit merged commit eca684d into GoogleChromeLabs:master Aug 31, 2018
@warpdesign warpdesign deleted the patch-1 branch August 31, 2018 12:27
@developit
Copy link
Collaborator

Shipped in 1.1.1! Cheers.

@warpdesign
Copy link
Contributor Author

My app now work perfectly in Safari & Firefox!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crash in Safari 11.1.2
3 participants