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

misc/wasm: add polyfill for TextEncoder/TextDecoder for Edge support #27296

Conversation

silbinarywolf
Copy link
Contributor

Edge supports WASM but not TextEncoder or TextDecoder.
This PR adds a polyfill to misc/wasm/wasm_exec.js to fix this.

Fixes #27295

@googlebot googlebot added the cla: yes Used by googlebot to label PRs as having a valid CLA. The text of this label should not change. label Aug 28, 2018
@gopherbot
Copy link
Contributor

Message from Gerrit User 5976:

Patch Set 1:

Congratulations on opening your first change. Thank you for your contribution!

Next steps:
Within the next week or so, a maintainer will review your change and provide
feedback. See https://golang.org/doc/contribute.html#review for more info and
tips to get your patch through code review.

Most changes in the Go project go through a few rounds of revision. This can be
surprising to people new to the project. The careful, iterative review process
is our way of helping mentor contributors and ensuring that their contributions
have a lasting impact.

During May-July and Nov-Jan the Go project is in a code freeze, during which
little code gets reviewed or merged. If a reviewer responds with a comment like
R=go1.11, it means that this CL will be reviewed as part of the next development
cycle. See https://golang.org/s/release for more details.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 13620:

Patch Set 1:

Polyfills should be provided by the user. Please move this to the other polyfill in wasm_exec.html.

Who is the author of this polyfill? Are we allowed to use it? Do we need to add attribution?


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 1:

Patch Set 1:

Polyfills should be provided by the user. Please move this to the other polyfill in wasm_exec.html.

Who is the author of this polyfill? Are we allowed to use it? Do we need to add attribution?

The author is the GitHub user Yaffle, and it was taken from their gists here:
https://gist.github.com/Yaffle/5458286

Since it doesn't seem to have a license attached, I'll assume we cannot use it.

I tested the following polyfill and that seems to work fine as well, it's also licensed under "Apache License 2.0" which seems like it should be OK? (Though I'm not sure when it comes to licensing)
https://github.com/samthor/fast-text-encoding/

I also had a look for other implementations on GitHub and looked at their licensing, but it seemed to either use "Apache License 2.0", "Creative Commons Attribution 4.0 International License" or be unclear.
ie.

If this is a problem, is it OK if I rewrite the implementation so that it doesn't resemble these?
Alternatively, I could just change this PR to simply be a code comment that tells the user that if they want Edge support, they will need a polyfill for TextEncoder/TextDecoder.

Thoughts?


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 24096:

Patch Set 1:

Patch Set 1:

Patch Set 1:

Polyfills should be provided by the user. Please move this to the other polyfill in wasm_exec.html.

Who is the author of this polyfill? Are we allowed to use it? Do we need to add attribution?

The author is the GitHub user Yaffle, and it was taken from their gists here:
https://gist.github.com/Yaffle/5458286

Since it doesn't seem to have a license attached, I'll assume we cannot use it.

I tested the following polyfill and that seems to work fine as well, it's also licensed under "Apache License 2.0" which seems like it should be OK? (Though I'm not sure when it comes to licensing)
https://github.com/samthor/fast-text-encoding/

I also had a look for other implementations on GitHub and looked at their licensing, but it seemed to either use "Apache License 2.0", "Creative Commons Attribution 4.0 International License" or be unclear.
ie.

If this is a problem, is it OK if I rewrite the implementation so that it doesn't resemble these?
Alternatively, I could just change this PR to simply be a code comment that tells the user that if they want Edge support, they will need a polyfill for TextEncoder/TextDecoder.

Thoughts?

I have commented on Yaffle's gist to add a license.

Apache License 2.0 is fine too, as long as we keep the license notice. I think we have an open issue somewhere to aggregate all the licences used in the code in a single big license file.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 12446:

Uploaded patch set 3: New patch set was added with same tree, parent, and commit message as Patch Set 2.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 3:

Patch Set 1:

Patch Set 1:

Patch Set 1:

Polyfills should be provided by the user. Please move this to the other polyfill in wasm_exec.html.

Who is the author of this polyfill? Are we allowed to use it? Do we need to add attribution?

The author is the GitHub user Yaffle, and it was taken from their gists here:
https://gist.github.com/Yaffle/5458286

Since it doesn't seem to have a license attached, I'll assume we cannot use it.

I tested the following polyfill and that seems to work fine as well, it's also licensed under "Apache License 2.0" which seems like it should be OK? (Though I'm not sure when it comes to licensing)
https://github.com/samthor/fast-text-encoding/

I also had a look for other implementations on GitHub and looked at their licensing, but it seemed to either use "Apache License 2.0", "Creative Commons Attribution 4.0 International License" or be unclear.
ie.

If this is a problem, is it OK if I rewrite the implementation so that it doesn't resemble these?
Alternatively, I could just change this PR to simply be a code comment that tells the user that if they want Edge support, they will need a polyfill for TextEncoder/TextDecoder.

Thoughts?

I have commented on Yaffle's gist to add a license.

Apache License 2.0 is fine too, as long as we keep the license notice. I think we have an open issue somewhere to aggregate all the licences used in the code in a single big license file.

Alright thanks!
I've updated the PR so that the polyfill is in wasm_exec.html.

Assuming Yaffle adds a license or gives the OK, is there any other changes you'd like me to make?
Do I need to squash my commits / rebase as well?


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 13620:

Patch Set 3:

(4 comments)


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 12446:

Uploaded patch set 5: New patch set was added with same tree, parent, and commit message as Patch Set 4.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 3:

Patch Set 3:

(4 comments)

I've made the changes requested.
I've also moved the polyfill to execute before "wasm_exec.js" because TextEncoder and TextDecoder are referenced immediately when the script is included, causing a crash in Edge.

Perhaps the encoder/decoder const variables in wasm_exec.js should be instantiated in the Go class constructor or similar? (So the polyfill can be included after the script but before initialization of new Go())


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 12446:

Uploaded patch set 7: New patch set was added with same tree, parent, and commit message as Patch Set 6.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 12446:

Uploaded patch set 9: New patch set was added with same tree, parent, and commit message as Patch Set 8.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 12446:

Uploaded patch set 11: New patch set was added with same tree, parent, and commit message as Patch Set 10.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 11:

(4 comments)

Patch Set 3:

Patch Set 3:

(4 comments)

I've made the changes requested.
I've also moved the polyfill to execute before "wasm_exec.js" because TextEncoder and TextDecoder are referenced immediately when the script is included, causing a crash in Edge.

Perhaps the encoder/decoder const variables in wasm_exec.js should be instantiated in the Go class constructor or similar? (So the polyfill can be included after the script but before initialization of new Go())

Commented too soon and missed a semicolon on the "window.TextDecoder = function(){};".
Rebased on master and also fixed that!


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 24096:

Patch Set 11:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 11:

(1 comment)

Patch Set 11:

(1 comment)

Added comment to your feedback item


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 24096:

Patch Set 11:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 24096:

Patch Set 11:

Sorry for commenting this late in the review.

But I just saw a polyfill implementation of textencoder in the MDN site https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder#Polyfill. I think that is a better candidate to avoid licensing issues.

Also, the MDN docs point to this repo - https://github.com/inexorabletash/text-encoding which has a public license and has both encoding and decoding functions.

I know its a pain to change the algo at this stage of the review and I have no problems as such with the existing implementation. Up to Richard/Brad to take a final call.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 11:

Patch Set 11:

Sorry for commenting this late in the review.

But I just saw a polyfill implementation of textencoder in the MDN site https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder#Polyfill. I think that is a better candidate to avoid licensing issues.

Also, the MDN docs point to this repo - https://github.com/inexorabletash/text-encoding which has a public license and has both encoding and decoding functions.

I know its a pain to change the algo at this stage of the review and I have no problems as such with the existing implementation. Up to Richard/Brad to take a final call.

I'm happy to do this, I just want confirmation first!


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 13620:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Sorry for commenting this late in the review.

But I just saw a polyfill implementation of textencoder in the MDN site https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder#Polyfill. I think that is a better candidate to avoid licensing issues.

Also, the MDN docs point to this repo - https://github.com/inexorabletash/text-encoding which has a public license and has both encoding and decoding functions.

I know its a pain to change the algo at this stage of the review and I have no problems as such with the existing implementation. Up to Richard/Brad to take a final call.

I'm happy to do this, I just want confirmation first!

Unfortunately the gist https://gist.github.com/Yaffle/5458286 still has no license at all.

The license of MDN code snippets is CC0, which is good, but there seems to be no polyfill for the decoder.

The project https://github.com/inexorabletash/text-encoding is in the public domain as well, but it is quite large. What about just referencing it:

<script src="https://unpkg.com/[email protected]/lib/encoding.js"></script>

Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 24096:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Sorry for commenting this late in the review.

But I just saw a polyfill implementation of textencoder in the MDN site https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder#Polyfill. I think that is a better candidate to avoid licensing issues.

Also, the MDN docs point to this repo - https://github.com/inexorabletash/text-encoding which has a public license and has both encoding and decoding functions.

I know its a pain to change the algo at this stage of the review and I have no problems as such with the existing implementation. Up to Richard/Brad to take a final call.

I'm happy to do this, I just want confirmation first!

Unfortunately the gist https://gist.github.com/Yaffle/5458286 still has no license at all.

The license of MDN code snippets is CC0, which is good, but there seems to be no polyfill for the decoder.

The project https://github.com/inexorabletash/text-encoding is in the public domain as well, but it is quite large. What about just referencing it:

<script src="https://unpkg.com/[email protected]/lib/encoding.js"></script>

That works. But I wouldn't want to inject a large script unconditionally. Let's check for TextEncoder support and then inject it if it's not there.

Something like this -
if (!window.TextEncoder || !window.TextDecoder) {
let s = document.createElement('script');
s.src = "https://unpkg.com/[email protected]/lib/encoding.js"
document.body.appendChild(s)
}


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 13620:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Sorry for commenting this late in the review.

But I just saw a polyfill implementation of textencoder in the MDN site https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder#Polyfill. I think that is a better candidate to avoid licensing issues.

Also, the MDN docs point to this repo - https://github.com/inexorabletash/text-encoding which has a public license and has both encoding and decoding functions.

I know its a pain to change the algo at this stage of the review and I have no problems as such with the existing implementation. Up to Richard/Brad to take a final call.

I'm happy to do this, I just want confirmation first!

Unfortunately the gist https://gist.github.com/Yaffle/5458286 still has no license at all.

The license of MDN code snippets is CC0, which is good, but there seems to be no polyfill for the decoder.

The project https://github.com/inexorabletash/text-encoding is in the public domain as well, but it is quite large. What about just referencing it:

<script src="https://unpkg.com/[email protected]/lib/encoding.js"></script>

That works. But I wouldn't want to inject a large script unconditionally. Let's check for TextEncoder support and then inject it if it's not there.

Something like this -
if (!window.TextEncoder || !window.TextDecoder) {
let s = document.createElement('script');
s.src = "https://unpkg.com/[email protected]/lib/encoding.js"
document.body.appendChild(s)
}

You could use https://cdn.jsdelivr.net/npm/[email protected]/lib/encoding.min.js, which is only 5.6 KB on the wire. At this size I would prefer the simpler code.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 24096:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Sorry for commenting this late in the review.

But I just saw a polyfill implementation of textencoder in the MDN site https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder#Polyfill. I think that is a better candidate to avoid licensing issues.

Also, the MDN docs point to this repo - https://github.com/inexorabletash/text-encoding which has a public license and has both encoding and decoding functions.

I know its a pain to change the algo at this stage of the review and I have no problems as such with the existing implementation. Up to Richard/Brad to take a final call.

I'm happy to do this, I just want confirmation first!

Unfortunately the gist https://gist.github.com/Yaffle/5458286 still has no license at all.

The license of MDN code snippets is CC0, which is good, but there seems to be no polyfill for the decoder.

The project https://github.com/inexorabletash/text-encoding is in the public domain as well, but it is quite large. What about just referencing it:

<script src="https://unpkg.com/[email protected]/lib/encoding.js"></script>

That works. But I wouldn't want to inject a large script unconditionally. Let's check for TextEncoder support and then inject it if it's not there.

Something like this -
if (!window.TextEncoder || !window.TextDecoder) {
let s = document.createElement('script');
s.src = "https://unpkg.com/[email protected]/lib/encoding.js"
document.body.appendChild(s)
}

You could use https://cdn.jsdelivr.net/npm/[email protected]/lib/encoding.min.js, which is only 5.6 KB on the wire. At this size I would prefer the simpler code.

SGTM.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Patch Set 11:

Sorry for commenting this late in the review.

But I just saw a polyfill implementation of textencoder in the MDN site https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder#Polyfill. I think that is a better candidate to avoid licensing issues.

Also, the MDN docs point to this repo - https://github.com/inexorabletash/text-encoding which has a public license and has both encoding and decoding functions.

I know its a pain to change the algo at this stage of the review and I have no problems as such with the existing implementation. Up to Richard/Brad to take a final call.

I'm happy to do this, I just want confirmation first!

Unfortunately the gist https://gist.github.com/Yaffle/5458286 still has no license at all.

The license of MDN code snippets is CC0, which is good, but there seems to be no polyfill for the decoder.

The project https://github.com/inexorabletash/text-encoding is in the public domain as well, but it is quite large. What about just referencing it:

<script src="https://unpkg.com/[email protected]/lib/encoding.js"></script>

That works. But I wouldn't want to inject a large script unconditionally. Let's check for TextEncoder support and then inject it if it's not there.

Something like this -
if (!window.TextEncoder || !window.TextDecoder) {
let s = document.createElement('script');
s.src = "https://unpkg.com/[email protected]/lib/encoding.js"
document.body.appendChild(s)
}

You could use https://cdn.jsdelivr.net/npm/[email protected]/lib/encoding.min.js, which is only 5.6 KB on the wire. At this size I would prefer the simpler code.

I'm happy with either JS files being loaded. Keep in mind that make the polyfill work, I'd have to restructure the code to something like this:

<!doctype html>

<title>Go wasm</title> <script> let go; let mod, inst;
	if (!WebAssembly.instantiateStreaming) { // polyfill
		WebAssembly.instantiateStreaming = async (resp, importObject) => {
			const source = await (await resp).arrayBuffer();
			return await WebAssembly.instantiate(source, importObject);
		};
	}
	// Add polyfill for TextEncoder and TextDecoder for Microsoft Edge 17/18 support
	// https://caniuse.com/#feat=textencoder
	if (!window.TextEncoder || !window.TextDecoder) {
		let s = document.createElement('script');
		s.src = "https://unpkg.com/[email protected]/lib/encoding.js"
		s.onload = function() {
			polyfillsInitialized();
		};
		document.head.appendChild(s)
	} else {
		polyfillsInitialized();
	}
	function polyfillsInitialized() {
		let s = document.createElement('script');
		s.src = "wasm_exec.js"
		s.onload = function() {
			main();
		};
		document.head.appendChild(s)
	}
	function main() {
		go = new Go();
		WebAssembly.instantiateStreaming(fetch("test.wasm"), go.importObject).then((result) => {
			mod = result.module;
			inst = result.instance;
			document.getElementById("runButton").disabled = false;
		});
	}
	async function run() {
		console.clear();
		await go.run(inst);
		inst = await WebAssembly.instantiate(mod, go.importObject); // reset instance
	}
</script>
<button onClick="run();" id="runButton" disabled>Run</button>

Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 24096:

Patch Set 11:

Richard meant to include https://cdn.jsdelivr.net/npm/[email protected]/lib/encoding.min.js directly in a script tag. Then you don't need any additional complexity.


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

This PR (HEAD: 07a8bfe) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/131718 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link
Contributor

This PR (HEAD: 00722c4) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/131718 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 11:

Patch Set 11:

Richard meant to include https://cdn.jsdelivr.net/npm/[email protected]/lib/encoding.min.js directly in a script tag. Then you don't need any additional complexity.

Alright sounds good to me!
I gave it a test in Edge+Chrome and pushed it up!


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 13620:

Patch Set 13: Code-Review+1

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

This PR (HEAD: a587eda) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/131718 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link
Contributor

Message from Gerrit User 24096:

Patch Set 14: Code-Review+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 28917:

Patch Set 14:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

Message from Gerrit User 13620:

Patch Set 14: Code-Review+2


Please don’t reply on this GitHub thread. Visit golang.org/cl/131718.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link
Contributor

This PR is being closed because golang.org/cl/131718 has been merged.

@gopherbot gopherbot closed this Sep 29, 2018
gopherbot pushed a commit that referenced this pull request Sep 29, 2018
Edge supports WASM but not TextEncoder or TextDecoder.
This PR adds a polyfill to `misc/wasm/wasm_exec.js` to fix this.

Fixes #27295

Change-Id: Ie35ee5604529b170a5dc380eb286f71bdd691d3e
GitHub-Last-Rev: a587eda
GitHub-Pull-Request: #27296
Reviewed-on: https://go-review.googlesource.com/131718
Reviewed-by: Agniva De Sarker <[email protected]>
Reviewed-by: Richard Musiol <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes Used by googlebot to label PRs as having a valid CLA. The text of this label should not change.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

misc/wasm: Microsoft Edge 18 (latest) crashes due to TextEncoder not being supported
3 participants