jimmywarting / StreamSaver.js

StreamSaver writes stream to the filesystem directly asynchronous
https://jimmywarting.github.io/StreamSaver.js/example.html
MIT License
4.04k stars 418 forks source link

Example doesn't work in firefox #88

Closed biscoe916 closed 5 years ago

biscoe916 commented 5 years ago

Tried running the example in the latest version of Firefox (65.0.1 (64-bit)), but to no avail.

I get the prompt saying ReadableStreams arent' supported, and I should update it in chrome.

biscoe916 commented 5 years ago

@jimmywarting I noticed a commit from 6 day ago (https://github.com/jimmywarting/StreamSaver.js/commit/ae8dc5aac7cecc31ba29699b6354b91db99b7ebc), where you moved FF support from No, to Yes. What am I doing wrong?

jimmywarting commented 5 years ago

I have updated the support detection and re-enabled the stream polyfill the problem is that it supports minium ServiceWorker+ReadableStream but made a check for WritableStream as well, but it can be polyfilled

I'm almost thinking of adding a other method to save a ReadableStream instead of using a WritableStream since all other browsers are so slow at adding WritableStream & TransformStream

biscoe916 commented 5 years ago

@jimmywarting I see, so the support detection needs to be updated? Would you like me to submit a PR?

jimmywarting commented 5 years ago

I already changed it

biscoe916 commented 5 years ago

The "fetch" example still doesn't work in firefox :(

jimmywarting commented 5 years ago

If you have been following https://github.com/jimmywarting/StreamSaver.js/pull/92#issuecomment-478649292 you will see a conversation about a mixing problem with native and or polyfilled versions of the stream api.

it have been solved now. The recommended way now is to include the ponyfilled version of the stream api instead of overriding the global state.

you can either include the ponyfilled cdn version and it will be taken cared for you or you can set it your self

StreamSaver.WritableStream = require('module').WritableStream

it has been fixed in #92 and changed in the example.html

the next thing to do is

Living this issue open till 2,3,4 are completed

VadimZhiltsov commented 5 years ago

@jimmywarting I've published it to gh-pages in my fork and it stills seems to be not working with FireFox on my end.

image Chrome works well, but FF not. Are changes for FF support still required?

jimmywarting commented 5 years ago

quick update

Had to take a break from StreamSaver and work on other fun web torrenting things. But I did try to make an effort working with new features and other bug reports on StreamSaver today, but i never got the chance. probably going to be busy tomorrow also 😞

jimmywarting commented 5 years ago

FYI, I Have refactored quite a bit of code and it's working well in most browser now (even safari with the blob + a[download] fallback)

I'm ready to make a release very soon. But i can't just put it up there b/c ppl rely on the current mitm + sw hosted on github pages. So i have to make sure that the old StreamSaver lib is backward compatible when i upload the new mitm + sw to github pages before i can even make a new release.

It's too late now to make the switch now. Have to watch out for any breaking changes. So the plan is

Now when i came to think about it i May also have to update the registered service worker somehow if it's already installed. that will also be a task for tomorrow also.


The new release will make the StreamSaver more in control of the url + output + header and what not and make the sw more like a echoing server. the new release will also have support for transferable readable streams