Re create B2G based on Android

Inferior to Gonk maybe, but at least supported :slight_smile:

1 Like

I just wanted to mention that it has been brought to my attention that Sailfish OS already maintain a Gecko fork for their Sailfish browser. Basically their fork is just adding an embedding API called ā€œembedliteā€ into Gecko, which they use to implement their QT wrapper so that they can run webviews on their devices. Thereā€™s some description of the layers involved here. Interestingly, the embedlite component which lives in their forked gecko codebase has no QT code ā€“ the QT wrapper lives entirely out of the gecko tree here.

Perhaps we could look into whether this embedlite API could provide us with a way to implement a Gonk replacement out of the gecko tree. If itā€™s working for Sailfish with QT, it seems like this could be possible (obviously a lot of work though). If this does work, then at the very least there would be two groups with an interest in maintaining a single gecko fork; this should be more promising than just the b2g people maintaining one.

I tend to remember their Gecko work is old and hard to keep in sync with us. That is what we are trying to avoid here.

And if itā€™s not a big big drop in performance, thatā€™s not a huge issue. Unless trying to run a game at 60fps, a small difference could be invisible for the user.

I think thereā€™s just no commercial target at all, right now. It would be more like Cyanogen mod (not Cyanogen OS), something that people install if they want.

3 Likes

As @benfrancis already stated, ā€œFirefox of Androidā€ works, so it is possible to create a usable web experience with this stack, just not with the same performance as B2G.

Right, and I think itā€™s enough.
I didnā€™t test Firefox for android (I have no android phone soā€¦ :smiley:) but I guess that if you have a decent browsing experience with it, you can have a decent phone experience. Even if itā€™s a bit longer for heavy tasks (games, batch processing, ā€¦)

Iā€™m actually not convinced by Benā€™s assertion about performance. Two data points:

  • b2gdroid was not much slower than a gonk b2g on the same hardware. Remember that Fennec doesnā€™t use e10s, so itā€™s likely not as responsive. I didnā€™t run benchmarks but b2gdroid UX issues where not in the ā€œitā€™s too slowā€ department.
  • blink is pretty competitive with native apps. so it can be done :wink:

Itā€™s true that memory usage will likely increase due to the larger stack. Well, weā€™re not targetting devices with 256MB of RAM anymore.

But the proof is in the pudding, so Iā€™ll talk more once Iā€™ll get something running.

3 Likes

So most of the features might run without any problem. Weā€™ll see if some heavier task (Video recording/playing, ā€¦) are more laggy.

Uhā€¦ does that means that the performance will be worse than b2gdroid ?
(I do not remember when e10s will be added to Fennec - Does someone knows it ?)

Right, and all the recent devices come with at least 1 GB of RAM, and more and more with >2GB.
If we are talking about a few MB, I didnā€™t believe itā€™s an issue.

I canā€™t wait to know the results :slight_smile:

1 Like

Sorry if I was not clear: fennec doesnā€™t use e10s, but b2gdroid did. So it works, and we will get the same performance as b2gdroid.

is b2gdroid based on fennec? What exactly is the difference?

Donā€™t worry, reading again your message, it was clear in fact ^^ (I just understood the contrary :sweat_smile:)
And thatā€™s a great thing.

I think my confusion came from that:

Iā€™m not really able to tell the difference. My understanding is that b2gdroid is a launcher, for all the gaia apps.

Roughly, B2GDroid is Mulet for Fennec

2 Likes

May I ask if anyone is exploring the Tizen hypothesis?

From what I can understand the system runs both native and web applications, but it seems a lot more similar to b2g os than Android.

More info: https://developer.tizen.org/development/getting-started/overview#type

Unfortunately, the Tizen bootloader is quite different with Android. Samsung Tizen-powered smartphones are not yet support Android such as CyanogenMod and other OS. But, we can flash it through ODIN and other alternatives.

EDIT: Oh, there is Download Mode in Tizen as well. If Tizen is used, how about some proprietary Android drivers? TBH, there are lots of Android device codenames available, so make sure to target the right one first (e.g. outdated devices and lower-middle range smartphones to help them ā€˜surviveā€™ through the power of the Web)

1 Like

This is from @astheroth who canā€™t post on his own, at the moment.

I donā€™t understand several things; perhaps you could explain me :slight_smile:

  1. As Far I know, b2g is gonk (linux kernel + aosp drivers + hal) +geeko + gaia, which are the adventages against android itself (as a complete operative system) and what do add value to this platform, speaking in OS design terms?
  1. Why and what parts would you take from android to build this rebuilt-OS? What would we lose, and what would we get?
  1. It appears as Mozilla is moving its coins to Servo, and Gecko would not be developed any more; would we think on using Servo instead Gecko? Perhaps; we can recieve Mozillaā€™s feedback or its developers; at leastā€¦

Thatā€™s correct.

I think whatā€™s being proposed is to take AOSP as a base but only run one native app which is the B2G system app running on the Android port of Gecko, to completely replace the default Android UI. That would mean leaving behind the Gonk port of Gecko and using the Android port instead (which is built on top of the Java Android Runtime so adds an extra layer to the architecture but is still supported by Mozilla). This would probably still require a fork of mozilla-central to keep the b2g app and any residual APIs, but wouldnā€™t require maintaining the Gonk port of Gecko.

Thatā€™s not correct. Mozilla is starting to integrate some pieces from Servo (written in Rust) into Gecko. Servo is still an experimental future focused project and a long way away from being a competitive general purpose browser engine. One of the reasons given for removing B2G code from Gecko is to focus on the big changes Mozilla wants to make to Gecko to support Firefox.

Personally I donā€™t really like the idea of running Gecko on top of the Java Android Runtime, my main interest here was to have a fully web centric OS, and the curent plan doesnā€™t seems to go that way to my views as youā€™ll still be based on an underlying Java Runtimeā€¦

I know i donā€™t have the deep technical knowledge like some of you guys but Iā€™m willing to help and to learn but i really have a philosophical issue with Java, and if we work on to off it donā€™t understand how we can be at least as fast as the other app as soon as we add another level in the OSā€¦
Iā€™m sure this OS Structure will be a problem for us sooner or later, at least performance wonā€™t be good I have tested B2Gdroid on a Nexus 7 and i can tell it was not fluent at allā€¦

All this make me think,what is our target with this personally I want to propose to the public an alternative solution with a full Web interface, as i really believe this is the futur of the UI.

Even if itā€™s hard (very Hard) why donā€™t we just try to continue on Gonk ?
I donā€™t believe we are in a rush and if we manage to have something working in few months,with some basic app, we can increase the work force around the project ?

At the current status If i understand properly we should be able to have something working even if we still have to continue the clean up of the Mozilla Specifics API and add new one, but this OS is already running on couple of devices and should be able to run on more.
My question is could we be more optimistic, believe in ourself and work on growing up the community around B2G instead of saying itā€™s to hard letā€™s give up and do something easier which is not a good solution be at least it can work for developers to play around ,arenā€™t we about just to make a new toy for developper ?

Matthieu

1 Like

See this discussion https://twitter.com/bfrancis/status/780699124857466880

Yeah Basically Brendan Eich says it will be difficult, but iā€™m totally aware that as soon as a distrib goes public it needs more man power or even paid dev guy to go further, but my point is that we can think about this once we have something to demonstrate, for now we are still defining the next steps.