Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Future of BrowserHTML and Servo nightly builds

2,768 views
Skip to first unread message

Paul Rouget

unread,
Jan 22, 2018, 12:43:25 PM1/22/18
to dev-servo
tl;dr: we are planning to retire BrowserHTML, remove the mozbrowser
code from Servo, and greatly improve the usability of the Glutin port.

BrowserHTML was built as an experiment. Following the path of Firefox
OS, we built a browser in HTML to learn more about turning Servo, the
web engine, into a usable project. We learned a lot about the benefits
and inconveniences of the Browser API (à la Firefox OS) and the
Electron approach.

The flexibility of using the web platform was a major advantage to
rapidly build and experiment with new UI concepts, and deliver a
usable software on Linux, Mac and Windows.

At the same time, we learned that bending the web standards to fit
these needs comes with major costs. Code complexity, security issues
and maintaining efforts. Adding non-standards behaviors to Servo,
especially at this stage in the project, is not a challenge we find
worth our energy just now. We found that separating Servo, the web
engine, from the application logic is a lot more beneficial.

Last year, we have improved the Servo embedding API. We have been
experimenting with building functional browsers in Rust and other
3rd-party technologies (C# and Xamarin), on mobile and desktop, and
learned a lot. Now - we want our efforts to be focused on improving
Servo as a web engine. We will be bringing back to the original Glutin
ports all the features we introduced in Servo last year.


Some specifics:

- we willw unfork glutin
- bring tabs support to Glutin (basically, the MiniUI port of
ServoShell: https://github.com/paulrouget/servoshell#mini-ui)
- implement more keybindings
- more controls to toggle the different debug modes
- support a minimal UI to navigate to a new URL with search support
- move more libservo code to /ports

Expect BrowserHTML to be removed from Servo Nightly in the near future.

Also - I'd like to add that the MiniUI we built for ServoShell might
look a bit simplistic, but we found that having a keyboard-driven
browser is surprisingly satisfying, especially for developers. We hope
you will enjoy it as much as we do :)

--
Paul Rouget

Fabrice Desre

unread,
Jan 22, 2018, 10:00:25 PM1/22/18
to dev-...@lists.mozilla.org
Hi Paul,

I have a couple of questions:
- Are there any plans for a <web-view> like tag? I'm surprised that
Electron-like functionality is not of higher interest, since this is the
kind of situation where you can build an applications within the limits
of Servo web compat support.
- What are the options for embedders to provide content in contexts like
an about:preferences page? Is that out of scope and expected to be done
with the embedding UI toolkit?

Thanks!

David Teller

unread,
Jan 23, 2018, 1:37:55 AM1/23/18
to dev-...@lists.mozilla.org
Hi Fabrice,

As far as I can tell, Electron-like-with-Servo is still alive, with the
project called Starling. I don't think it's meant to be
source-compatible with Electron, but my understanding is that it is
meant to be more webby.

I have no idea how far the project is, though.

Cheers,
David

Paul Rouget

unread,
Jan 23, 2018, 5:18:16 AM1/23/18
to dev-servo
On Mon, Jan 22, 2018 at 10:55 PM, Fabrice Desre <fab...@desre.org> wrote:
> Hi Paul,
>
> I have a couple of questions:
> - Are there any plans for a <web-view> like tag? I'm surprised that
> Electron-like functionality is not of higher interest, since this is the
> kind of situation where you can build an applications within the limits of
> Servo web compat support.

We are interested, but it's not a priority for now.

> - What are the options for embedders to provide content in contexts like an
> about:preferences page? Is that out of scope and expected to be done with
> the embedding UI toolkit?

It's not possible yet, but the same way we have allow_navigation, we
could allow servo to let the embedder resolve/redirect an URL, or even
provide the content, like with Gecko protocol handlers.
> _______________________________________________
> dev-servo mailing list
> dev-...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-servo
0 new messages