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

Muon-based Brave Browser Integrations #312

Closed
olizilla opened this issue Nov 16, 2017 · 14 comments
Closed

Muon-based Brave Browser Integrations #312

olizilla opened this issue Nov 16, 2017 · 14 comments
Assignees

Comments

@olizilla
Copy link
Member

olizilla commented Nov 16, 2017

@lidel, Q4 2018


historical notes about Muon-based Brave (early 2018)

ipfs-companion runs in brave!

The following ipfs address styles resolve, either to a local gateway, or the public one.

  • ipfs.io/ipfs/QmZyRCtk8MGpuWXn2d1QyTfLWKMTHrT2aHs2vDkfry5zKT
  • ipfs://QmZyRCtk8MGpuWXn2d1QyTfLWKMTHrT2aHs2vDkfry5zKT
  • dweb:/ipfs/QmZyRCtk8MGpuWXn2d1QyTfLWKMTHrT2aHs2vDkfry5zKT

screenshot 2017-11-16 10 14 43

In the case of ipfs:// style, brave prompts the user if it's ok to "open in an external application. The url shown is the gateway url rather than what's been entered in the url bar, which could cause confusion.

screenshot 2017-11-16 10 15 03

A nice feature of using the ipfs:// form is that it is preserved in the url bar. The other forms are translated to a gateway url.

NURI style isn't supported (just for completeness)
/ipfs/QmZyRCtk8MGpuWXn2d1QyTfLWKMTHrT2aHs2vDkfry5zKT is redirected to
file:///ipfs/QmZyRCtk8MGpuWXn2d1QyTfLWKMTHrT2aHs2vDkfry5zKT

Brave supports a subset of the the chrome-extensions api, so there are few issues to figure out.

Things to get working

Missing apis

We can talk to brave about getting this enabled in muon.

  • contextMenus.create (means no ipfs option appears when right clicking on a page)
  • contextMenus.update
  • idle.queryState
  • runtime.openOptionsPage (this causes the Open Preferences fail)

Requested, brave/browser-laptop#9556 (comment)

Minor

  • Copy canonical address and Copy public gateway url works, but there is a console error afterwards
Uncaught (in promise) {message: "Access to extension API denied."}
WebGL: http://127.0.0.1:5001/ipfs/QmPhnvn747LqwPYMJmQVorMaGbMSgA7mRRoyyZYz3DoZRQ/#/connections
@olizilla

This comment has been minimized.

@olizilla

This comment has been minimized.

@lidel lidel added the kind/maintenance Work required to avoid breaking changes or harm to project's status quo label Nov 20, 2017
@lidel lidel added this to the 2018-Q1 milestone Dec 2, 2017
@olizilla

This comment has been minimized.

@olizilla

This comment has been minimized.

@lidel lidel added the status/in-progress In progress label Mar 7, 2018
@olizilla
Copy link
Member Author

olizilla commented Apr 27, 2018

Great news, we're working with the Brave team directly, and our goal is to get go-ipfs bundled with the browser, and exposed to the WebExtension.

@whyrusleeping what would be a sensible default config and args for running a go-ipfs daemon as a utility process in a browser; the end user will only use it via ipfs-companion.

Something like

ipfs daemon --init  --migrate=true  --enable-gc --routing=dhtclient

@mojoaxel
Copy link

our goal is to get go-ifps bundled with the browser

Why go-ipfs and not js-ipfs?

@lidel
Copy link
Member

lidel commented Apr 27, 2018

Why go-ipfs and not js-ipfs?

@mojoaxel maturity, feature set and general performance when run as a background service. At this time go-ipfs is easier on CPU and provides dhtclient mode which decreases ambient bandwidth use and smaller battery drain (key characteristics of something that is expected to run in background all the time). Key selling point for js-ipfs is that it works in browser environments, but if we can bundle go-ipfs, it is a better experience for now (js-ipfs will improve eventually, with things like WASM etc).

@whyrusleeping
Copy link
Member

@olizilla Yeah, thats a good start. We also might want to run it with a lowered connection count.

@magik6k do we have an init profile that would work well for this?

@magik6k
Copy link
Member

magik6k commented Apr 28, 2018

There is the lowpower profile, but it might be a bit too aggressive - https://github.com/ipfs/go-ipfs/blob/master/repo/config/profile.go#L153-L158

@olizilla
Copy link
Member Author

@magik6j @whyrusleeping something like a --profile=desktop that we could recommend for ipfs companion users would be rad. We've been suggestion people add --routing=dhtclient but a profile seems like a better fit. Should I open an issue for it on go-ipfs?

@whyrusleeping
Copy link
Member

@olizilla yes, please do. We'll try and get that added before the next release.

@lidel
Copy link
Member

lidel commented Aug 23, 2018

cc brave/brave-browser#819

@lidel lidel added this to the 2018-Q4 milestone Oct 22, 2018
@lidel lidel assigned lidel and unassigned olizilla Oct 22, 2018
@lidel lidel changed the title Brave browser integration Brave Browser Integrations Oct 22, 2018
@lidel
Copy link
Member

lidel commented Oct 22, 2018

Brave announced first release of Chromium-based version. IPFS Companion works perfectly with Chromium-based Brave, and this PR updates our docs to reflect that. I also updated #312 (comment) to provide better intro to currently ongoing work.

2018-10-22-105404_900x519_scrot

@lidel lidel changed the title Brave Browser Integrations Muon-based Brave Browser Integrations Apr 22, 2019
@lidel lidel removed status/in-progress In progress kind/maintenance Work required to avoid breaking changes or harm to project's status quo labels Apr 22, 2019
@lidel
Copy link
Member

lidel commented Apr 22, 2019

Work related to Chromium-based Brave continues in #716

@lidel lidel closed this as completed Apr 22, 2019
@lidel lidel removed this from the 2018-Q4 milestone Apr 22, 2019
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

No branches or pull requests

5 participants