Created attachment 656442 [details] [diff] [review] create the Uint8Array on the window Bug 786639 makes mozTCPSocket's arraybuffer binary type support useless to content, but there is a simple workaround of creating the uint8array so that it lives in the content window's compartment. Unit-test wise, this will be covered by the fix for bug 784893.
pushed to inbound: https://hg.mozilla.org/integration/mozilla-inbound/rev/b739aa9d9ede
Nice! Simple and logical fix.
The fix for bug 786639 has landed, so if this patch was backed out, things should still work. But it actually seems like we may want to keep this fix since it is arguably more correct to have the typed array live in the content window's compartment from both a memory-usage tracking perspective (ex: about:memory) and for efficiency. Donovan, does this seem reasonable? And if so, is there anything more required than to update the comment? In other words, is useWin as implemented okay, or should there be some cleanup? I think constructors may actually work now, so it's also possible that book-keeping could just be simplified if/when that ever happens.
I think it's best to keep the useWin implementation as you did it in the patch. It seems slightly more "correct" to me, and more representative of the intent. The typedarrays are given to the content, so they should be owned by the content. The about:memory thing alone is enough to make it worth it to leave this patch in, I think.