- Date: Monday 29th January 2024 at 16:00 UTC
- Location: https://meet.jit.si/Servo-TSC
- Status update
- Embedding experiments
- Tauri
- Dioxus
- Cleaning-up script crate & SpiderMonkey integration
- Approach to support Xterm JS
- Infrastructure costs
- LF Europe crowdfunding
- Outreach
- AOB
Attending:
- TSC members: atbrakhi, cybai, emilio, gterzian, Loirooriol, mrego, mrobinson, mukilan
- Other: jkelleyrtp, matlu, nicoburns, Taym95, wusyong
rego: We've made a few blog posts, so folks should be up to date.
rego: https://servo.org/blog/2024/01/26/two-months-in-servo/ https://servo.org/blog/2024/01/19/embedding-update/
rego: There's one about the integration with Tauri and with wry and we also have a bunch of CSS support improvements / focus areas.
The new and legacy layout engine are very close wrt to WPT tests.
There has been a lot of work on stability, code health, and CI improvements. We've had a lot of people joining the community with active discussion on Zulip.
rego: We had some questions from Gregory about whether or not Tauri will be the default embedding framework for Servo. We've made an example, but that doesn't mean it has to be the default. It's just to have a first example.
rakhi: Mid last year, we wanted to see if we could have graphical user interface around the browser. The egui minibrowser is the result of that. We also started working with Tauri. This is not something that is going to be the default. It is just to answer the community's request for an embedding example. This collaboration with Tauri is perfect for us.
Yu Wei: I agree that shouldn't be the default. What we should is to try to make Servo's exposed API flexible enough to satisfy embedders. I think a lot of people are really interested in how Tauri & Servo will work out. I think it works pretty great, such that it can be one of Tauri's dependencies. This kind of demo proves that it can work somehow.
Yu Wei: The next move from us is probably to move this demo into a full-fledged webview library. The reason for wry is that we'd like to abstract all the web view. Servo can already do that, so it's probably better to remove this complexity. My next move is trying to move it to a full-fledged project.
We'd like to push the features we want into Servo.
Things we want: multiple top-level web views / some ipc mechanism with script.
rego: The next embedding experiment is with Dioxus.
Jonathan: explains Dioxus
Jonathan: We focused on HTML / CSS when exposing an API for our users.
Jonathan: Tauri can be used as a target, but we'd really like to have a native renderer that takes pieces of Servo and renders to wgpu.
Martin: I'm excited about the integration of Stylo into Dioxus, in regard to untangling style from Servo, we want to put it in a different repository (probably the biggest thing is the preferences provider)
Martin: The properties that are not working are probably turn off in Servo because flexbox implementation doesn't support them yet
Jonathan: It'd be nice to get the preferences separated, so it should help to create a new demo
Aside from the config stuff, it was also pulling in all of the WebRender crate and the webrender-api crate.
nico: That would also need to be untangled as well.
mats: It would be nice to have a slide about this sort of thing when we give our talk at FOSDEM
gregory: Last time I made a quick presentation about the coupling between SpiderMonkey and the script crate. I highlighted some low-hanging fruit to hide SpiderMonkey dependencies in DOM bindings folder.
gregory: The good news is that we're making progress on this low-hanging fruit. And various community members are starting to take over. Thanks to the folks working on that.
We're switching from using JSObject pointers to TypedArrays.
gregory: Lots of motivated people to work on issues.
gregory: The question came up about why this software isn't working in Servo. It's using a bunch of modern web apis that Servo doesn't implement yet. These are relatively complicated, but not too complicated such as ResizeObserver (ready for review).
ResizeObserver does involve some complication, but hopefully will motivate others to work on things.
Also hope to work on IntersectionObserver and font access API. I would like to announce that I have funding now.
Martin: You mention you got the ResizeObserver first patch, who does it look regarding WPT tests?
gregory: If you look at the least it doesn't look good, because most are failing; but there are a lot of subtests if one fails the test as a whole is marked as failure; a lot of the subtests are passing the basic case works, some calculations are off, I want a review about how I get the date from layout
I couldn't find the border box, only the content box; there are some tests with scrollbars where calculations are wrong; the overall mechanism work
Martin: For these APIs, specially the ones what have tricky integration with the event loop; probably the biggest concern is related to timing issues; some things we implemented quite ok but not following the spec, we have some issues with iframes related to that; if we can avoid adding things like that
gregory: The event loop integration I think I got it more or less fine, tests use rAF()
the layout calculations I'm leaving them out but I agree we should avoid this kind of timing issues
rego: We have an AWS account that we are using for Servo that is costing us < $100 per month. We used to pay that with the crowdfunding money from Servo (2022ish). Last year Igalia started to take over that cost and attempting to get reimbursed from the Linux Foundation.
rego: We haven't been able to make this work in a consistent way.
rego: LF offered to do a one time payment, so Igalia will request the cost from June to December 2023 (around 700 USD).
rego: https://crowdfunding.lfx.linuxfoundation.org/projects/servo rego: https://docs.linuxfoundation.org/lfx/crowdfunding
rego: We have enough money from the crowfunding to pay for these infrastructure costs. This money cannot be paid to corporation, but can be paid to people. We have this mechanism, but we cannot even use it to pay infrastructure costs.
rego: https://opencollective.com/
rego: Maybe it makes sense to move to something else for crowdfunding work, we propose OpenCollective.
The usage of the money would still be decided in the TSC meetings.
Yu Wei: In Tauri we use Open Collective. We have found similar issues. I think moving to OC won't solve all problems.
Yu Wei: The cost is < $100 per month. I can talk to Tauri and other folks to see if they'd like to donate.
rego: With the money we have in the crowdfunding, we have enough, but it's an issue with tooling.
mats: If we move, and I think we should, maybe we could create company / friend packages which could allow getting some funding from non-individuals. This was set up by LF US and this can be tricky for non-US organizations.
mats: We can also use this money for things other than infra if we had a bit more money.
rego: This Saturday we'll be at FOSDEM.
rego: We'll be there showcasing Servo as part of the LF stand.
Yu Wei: One thing that I forgot to mention is that wrt to shipping a prebuilt spidermonkey. Is this part of the plan for Servo?
rakhi: one question: I also have a branch where I'm trying to build a demo. There's an issue where you might need a Servo dependency and they have to install it (even with a prebuilt binary).
Wu Yu Wei: This is the issue I'm collecting feedback on prebuilt sm tauri-apps/wry#1153
rego: One thing I forgot to mention yesterday on the infra costs, is that we've applied for AWS credits for open source project, today we got confirmation that we've granted some credits, so we'll be using them to pay AWS costs (if we manage to keep the costs low it could be enough to cover the whole 2024)