LulumiProject / lulumi-browser

Lulumi-browser is a lightweight browser coded with Vue.js 2 and Electron.
Apache License 2.0
438 stars 90 forks source link

Add WebExtensions APIs to support extensions from chrome and FF. #19

Open qazbnm456 opened 7 years ago

qazbnm456 commented 7 years ago

We now have https://github.com/electron/electron/issues/5842 for Accessibility DevTools extension. How about implementing more WebExtensions APIs to support more extensions that are on chrome and FF.

qazbnm456 commented 7 years ago

Currently Implemented APIs

qazbnm456 commented 7 years ago

APIs needed for uBlock

qazbnm456 commented 7 years ago

APIs needed for thegreatsuspender

Some extension APIs need to be implemented by writing some C++ code in the lower layer, such as extension.getBackgroundPage and extension.getViews.

Will consider writing on my own or use Muon instead, though lots of code will have to be rewritten because Muon has removed the support for running Node.js in renderer processes. Ref: https://github.com/brave/muon/issues/165 https://github.com/brave/browser-laptop/issues/253

qazbnm456 commented 7 years ago

APIs needed for Grammarly for Chrome

We can extract the source code from .crx file through http://crxextractor.com/ or via https://github.com/6IX7ine/cromos.

jeromevalentin commented 6 years ago

APIs needed for Virtual Keyboard

82318179 commented 6 years ago

这个浏览器现在支持windows吗?

qazbnm456 commented 6 years ago

@82318179 支持,但還有很多功能未完善。

qazbnm456 commented 6 years ago

APIs needed for Steward

samuelmaddock commented 6 years ago

Hey @qazbnm456, I just discovered your project and was wondering if you had any plans to contribute these API additions back into the main electron repo.

qazbnm456 commented 6 years ago

Hi @samuelmaddock, there's no such a plan to contribute these API additions back to electron currently since several dirty hacks have been done in this repo. But I'm thinking about making these API as a package to provide a way injecting them to existing electron apps like https://github.com/koush/electron-chrome.

Maybe after finishing the package mentioned above, I'll try to clean up the implementations and pick some back to upstream.

Thanks for your question.

sentialx commented 6 years ago

Hi @qazbnm456. Have you managed how to impement extension.getBackgroundPage() in C++?

qazbnm456 commented 6 years ago

Hi @Sential, I was busy before, so I didn't have the spare time figuring out how to implement it. I'll tackle this problem in the near future by mimicking the implementation of chrome.

sentialx commented 6 years ago

Have you got Discord? Mine is Sential#9122. I want to talk about extensions API with you.

qazbnm456 commented 6 years ago

@Sential I don't have one. I'll add and chat with you on weekend, perhaps, if I have time. Thank you!

qazbnm456 commented 6 years ago

Been spending several days looking into extension system of chromium and found out that some extension APIs need lots of effort to be implemented, e.g. extension.getBackgroundPage() and extension.getViews().

Would revisit them again after electron migrates to OOPIF architecture.

samuelmaddock commented 6 years ago

@qazbnm456 Checkout Muon if you need a reference. They have a good amount of the extensions API implemented. https://github.com/brave/muon

sentialx commented 6 years ago

@qazbnm456 Have you managed to get uBlock Origin's cosmetic filtering to work?

stewartlord commented 5 years ago

@qazbnm456 Any further progress implementing extension.getBackgroundPage()?

qazbnm456 commented 5 years ago

@stewartlord No, still have some problems making it work. It's more complicated than I expected and I'll look into it again when I'm available sometime.

wangfei1988 commented 5 years ago

thanks

wangfei1988 commented 5 years ago

可以支持安卓 和ios吗

qazbnm456 commented 5 years ago

@wangfei1988 很抱歉,沒有喔!Lulumi 底層是 Electron,而 Electron 沒有支援 Android 和 IOS。

samuelmaddock commented 5 years ago

@qazbnm456 i wanted to point out that i've been contributing to electron to add better support for chrome extensions https://github.com/electron/electron/pulls/samuelmaddock

soon i'll be looking into supporting additional chrome.* APIs. send me an email, listed on my profile, if you'd be interested in helping out. 🙂

qazbnm456 commented 5 years ago

Hi @samuelmaddock, it's great to have you in Electron team so as to push the implementation of chrome.* APIs better.

minpoo commented 5 years ago

点击关闭浏览器后,进程没有被杀死,在window上,第二次打开导致失败,怎么解决