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

Designing New File System API for WebExtensions #169

Open
lidel opened this issue May 25, 2018 · 2 comments
Open

Designing New File System API for WebExtensions #169

lidel opened this issue May 25, 2018 · 2 comments
Labels
exp/wizard Extensive knowledge (implications, ramifications) required P2 Medium: Good to have, but can wait until someone steps up status/ready Ready to be worked

Comments

@lidel
Copy link
Member

lidel commented May 25, 2018

FYSA a new WebExtension File System API is being proposed/designed as a part of mozilla/libdweb#8 (comment)
It would enable js-ipfs running within browser extension context to have access to a better storage backend in Firefox.

My initial understanding is that we could create a special version of IPFSRepo - Default Browser stack for WebExtension contexts and replace default browser datastores with ones that take advantage of the new API.

I am not familiar with this area and it is unclear to me if we would want to create a totally new datastore like datastore-fs, or just a new levelup backend store for js-datastore-level.

Ideally, someone with prior experience in creating js-datastore implementation should review it and provide feedback for proposal from mozilla/libdweb#8 (comment) if anything is missing or unclear. (Update: API changed since then )

Thoughts?
Let's make sure we don't miss this opportunity.

cc @dignifiedquire @diasdavid

@lidel lidel added help wanted Seeking public contribution on this issue exp/wizard Extensive knowledge (implications, ramifications) required labels May 25, 2018
@lidel lidel changed the title Supporting New File System API for WebExtensions Designing New File System API for WebExtensions May 25, 2018
@dignifiedquire
Copy link
Member

I scanned the API, and it seems to have everything needed to implement the filesystem datastore in good way. For the level datastore, we will still want to use the leveldb provided by the browser.

@daviddias daviddias added the status/deferred Conscious decision to pause or backlog label May 30, 2018
@lidel
Copy link
Member Author

lidel commented Aug 16, 2018

Status update:

Quick thoughts:

While low priority, detecting and using IDBMutableFile could improve performance of long running node in browser context (namely, ipfs-companion). Not sure if we want to implement a separate datastore, or make current one automatically detect and use it instead of IndexedDB. Thoughts?

WebExtension FileSystem API requires user interaction and lacks watch feature, but if that missing piece lands in future it could be a venue for things like mounting and synchronizing MFS directory via browser extension.

@daviddias daviddias added status/ready Ready to be worked P2 Medium: Good to have, but can wait until someone steps up and removed status/deferred Conscious decision to pause or backlog help wanted Seeking public contribution on this issue labels Dec 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exp/wizard Extensive knowledge (implications, ramifications) required P2 Medium: Good to have, but can wait until someone steps up status/ready Ready to be worked
Projects
None yet
Development

No branches or pull requests

3 participants