@@ -67,7 +67,8 @@ https://github.com/servo/servo/pull/40307 (@mukilan, @mrobinson, #40307) composi
6767 # And let the Compositor create the `PainterId` when it creates a new `Painter`. Also make inline formatting code take
6868 # `LayoutContext` rather than threading it via the `InlineFormattingContextBuilder`.
6969 # Testing: Should preserve existing behavior, so covered by existing tests.
70- https://github.com/servo/servo/pull/40158 (@mrobinson, #40158) pixels: Store decoded images as RGBA premultiplied data (#40158)
70+ +https://github.com/servo/servo/pull/40158 (@mrobinson, #40158) pixels: Store decoded images as RGBA premultiplied data (#40158)
71+ perf; faster animated GIF rendering
7172 # Canvas expects input data to be in RGBA premultiplied format and
7273 # WebRender already supports RGBA and BGRA data as long as they are
7374 # premultiplied. Pre-multiplying up front allows:
@@ -88,7 +89,8 @@ https://github.com/servo/servo/pull/40158 (@mrobinson, #40158) pixels: Store dec
8889 # from things like image elements. We do not have that yet, but I argue that this change
8990 # is important anyway due to the amount that it reduces memory and file descriptor usage
9091 # as well as the cost of copying image data so much in memory.
91- https://github.com/servo/servo/pull/39384 (@shubhamg13, @boluochoufeng, #39384) Add support for LargestContentfulPaint PaintMetric (#39384)
92+ +https://github.com/servo/servo/pull/39384 (@shubhamg13, @boluochoufeng, #39384) Add support for LargestContentfulPaint PaintMetric (#39384)
93+ perf; LCP measurement
9294 # Steps for calculating LCP:
9395 # 1. When the pref for `largest_contentful_paint_enabled` is enabled, `LargestContentfulPaintCandidateCollector`
9496 # is created once per LayoutThread using `viewport_size`.
@@ -158,7 +160,7 @@ https://github.com/servo/servo/pull/40128 (@aaron-wgd, #40128) servoshell/deskto
158160 # Should fix docs workflow which currently fails because not enough space is left:
159161 # https://github.com/servo/servo/actions/runs/18964865479
160162 # run: https://github.com/servo/servo/actions/runs/18997885819
161- https://github.com/servo/servo/pull/40327 (@mukilan, #40327) wpt: Have `ServoRefTestExecutor` inherit from `RefTestExecutor` (#40327)
163+ - https://github.com/servo/servo/pull/40327 (@mukilan, #40327) wpt: Have `ServoRefTestExecutor` inherit from `RefTestExecutor` (#40327)
162164 # Since `ProcessTestExecutor` is only used by Servo and doesn't add much
163165 # on top of `ServoExecutor`, merge the former into the latter.
164166 # Also make `ServoExecutor` a mixin so that the derived classes can
@@ -298,7 +300,8 @@ https://github.com/servo/servo/pull/40205 (@yerke, #40205) layout: Show pointer
298300 dom; toggle events on HTMLDetailsElement
299301 # Implement ToggleEvent and use for details element
300302 # Testing: Covered by existing WPTs
301- https://github.com/servo/servo/pull/40328 (@mark-buer, #40328) devtools: Expose cache status for requests in network monitor. (#40328)
303+ +https://github.com/servo/servo/pull/40328 (@mark-buer, #40328) devtools: Expose cache status for requests in network monitor. (#40328)
304+ devtools
302305 # Expose cache status for requests in network monitor.
303306 # Testing: Net tests pass. No existing test infrastructure for devtools, adding them seems outside the scope of this PR.
304307 # Fixes: #40237
@@ -326,7 +329,8 @@ https://github.com/servo/servo/pull/40353 (@jdm, #40353) script: Trigger renderi
326329 # Testing: This change fixes some tests.
327330 # Fixes: #40348.
328331>>> 2025-11-07T06:18:32Z
329- https://github.com/servo/servo/pull/39714 (@shubhamg13, #39714) Add basic `IDL` implementation for `LargestContentfulPaint` (#39714)
332+ +https://github.com/servo/servo/pull/39714 (@shubhamg13, #39714) Add basic `IDL` implementation for `LargestContentfulPaint` (#39714)
333+ perf; `observe({type: "largest-contentful-paint"})` on PerformanceObserver
330334 # Add basic `IDL` implementation for `LargestContentfulPaint`
331335 # Testing: Tested locally
332336 # Fixes: N/A
@@ -380,7 +384,7 @@ https://github.com/servo/servo/pull/40462 (@Taym95, #40462) WebGLBuffer: follow
380384 # DOMString which owns the string it double copied it.
381385 # We now use Cow as input making both sides happy.
382386 # Testing: Does not change functionality.
383- https://github.com/servo/servo/pull/40461 (@mrobinson, #40461) net: Simplify `FetchResponseListener` and move it to `script` (#40461)
387+ - https://github.com/servo/servo/pull/40461 (@mrobinson, #40461) net: Simplify `FetchResponseListener` and move it to `script` (#40461)
384388 # `FetchReponseListener` has traditionally lived in `net` even though it
385389 # is only used in `script` currently. Because of the two way dependency,
386390 # it has also use a lot of templating to implement something pretty basic
@@ -835,7 +839,7 @@ https://github.com/servo/servo/pull/40411 (@simonwuelker, #40411) xpath: Handle
835839 # cause unnecessary merge conflicts.
836840 # Testing: New web platform tests start to pass
837841+https://github.com/servo/servo/pull/40402 (@mrobinson, @atbrakhi, #40402) libservo: Integrate context menu into the show_embedder_control API (#40402)
838- api; rework context menu api, embedders can now know the position and know what each item does (`show_context_menu(webview, result_sender, title, items)` → `ContextMenu.{id,position,items,select,dismiss}()`)
842+ api servoshell ; rework context menu api, embedders can now know the position and know what each item does (`show_context_menu(webview, result_sender, title, items)` → `ContextMenu.{id,position,items,select,dismiss}()`)
839843 # This PR integrates showing context menus into the
840844 # `WebViewDelegate::show_embedder_control` API. In addition,
841845 # `ContextMenuItem` and `ContextMenuAction` data types are exposed which
@@ -1784,7 +1788,8 @@ https://github.com/servo/servo/pull/40542 (@simonwuelker, #40542) xpath: Don't e
17841788 # Previously there where two functions defined in this function which was already
17851789 # roughly 600 lines. There was also a blocking section which was split out.
17861790 # Testing: Should not change functionality and tests still work.
1787- https://github.com/servo/servo/pull/40501 (@mrobinson, @atbrakhi, #40501) script: Add context-based context menu options (#40501)
1791+ +https://github.com/servo/servo/pull/40501 (@mrobinson, @atbrakhi, #40501) script: Add context-based context menu options (#40501)
1792+ api servoshell; copy link, open link in new, copy image link, open image in new, cut, copy, paste, select all
17881793 # Add context menu options for images, links, and editable text areas. In
17891794 # addition add the ability to show menu options that are disabled. This
17901795 # also improves the visual style of the context menu in egui as part of
@@ -1801,7 +1806,8 @@ https://github.com/servo/servo/pull/40541 (@simonwuelker, #40541) tests: Import
18011806 # fixed in followup changes. Firefox and chrome both pass all tests.
18021807 # Testing: This change adds new tests
18031808 # Fixes #39726
1804- https://github.com/servo/servo/pull/40554 (@Loirooriol, #40554) script: Pass the right base URI to inline sheets (#40554)
1809+ +https://github.com/servo/servo/pull/40554 (@Loirooriol, #40554) script: Pass the right base URI to inline sheets (#40554)
1810+ layout; inline <style> now takes <base> into account
18051811 # HTMLStyleElement was creating stylesheets using the URI of the document, ignoring ``.
18061812 # To avoid having to create the UrlExtraData twice (or clone it), this inlines the `stylesheetcontents_create_callback`.
18071813 # Testing: 2 WPT are now passing
@@ -2646,7 +2652,7 @@ https://github.com/servo/servo/pull/40616 (@TimvdLippe, #40616) Implement protoc
26462652 # [1]:
26472653 # https://github.com/rust-ammonia/rust-content-security-policy/blob/db8f2e97fed57a6f903ee4f5e8109e5ed4c10141/src/lib.rs#L1
26482654 # 550-L1569
2649- https://github.com/servo/servo/pull/40643 (@kkoyung, #40643) script: Flatten nested match arms in `NormalizedAlgorithm` (#40643)
2655+ - https://github.com/servo/servo/pull/40643 (@kkoyung, #40643) script: Flatten nested match arms in `NormalizedAlgorithm` (#40643)
26502656 # This patch flattens nested match arms in `NormalizedAlgorithm` to simplify our code. Moreover, primarily matching
26512657 # the algorithm names, instead of matching the enum variant types, makes more sense, since some algorithms share
26522658 # the same enum variant type.
@@ -2888,14 +2894,14 @@ https://github.com/servo/servo/pull/40757 (@kongbai1996, #40757) compositing: Do
28882894 # This results in a significant reduction in the number of `FrameMsg::SetScrollOffsets`, which in turn greatly
28892895 # reduces the number of `set_scroll_offsets` calls in the WebRender backend. This is beneficial for performance.
28902896 # Testing: This is an attempt to increase performance, so is covered by existing tests.
2891- https://github.com/servo/servo/pull/40758 (@jschwe, #40758) profiling: Fix missing span enter (#40758)
2897+ - https://github.com/servo/servo/pull/40758 (@jschwe, #40758) profiling: Fix missing span enter (#40758)
28922898 # If we don't enter the span, then nothing will be traced. This was overlooked during review of
28932899 # https://github.com/servo/servo/pull/40629.
28942900 # Also clean-up some `tracing` feature flag occurence, which is not needed when using the macro from profile_traits.
28952901 # Testing: Manually tested with `tracing-hitrace` feature
28962902-https://github.com/servo/servo/pull/40755 (@sagudev, #40755) CI: Do not `fail_fast` on push to main (#40755)
28972903 # Fixes: #40741
2898- https://github.com/servo/servo/pull/40753 (@mukilan, #40753) mach: Normalize the `--profile` argument to build commands (#40753)
2904+ - https://github.com/servo/servo/pull/40753 (@mukilan, #40753) mach: Normalize the `--profile` argument to build commands (#40753)
28992905 # The current logic treats the explict version of release and dev build specification i.e the `--profile release`
29002906 # and `--profile dev` options as custom profiles. This breaks other logic that explictly check for release and dev
29012907 # profile types, like the android build.
@@ -2907,7 +2913,8 @@ https://github.com/servo/servo/pull/40750 (@arihant2math, #40750) script: Finish
29072913 # I used find and replace to finish the job. All this PR does is replace all `Error::` occurrences with `Error::(None)`.
29082914 # Testing: Refactor
29092915 # Fixes: #39053
2910- https://github.com/servo/servo/pull/40742 (@webbeef, #40742) script: Optimize Node::insert (#40742)
2916+ +https://github.com/servo/servo/pull/40742 (@webbeef, #40742) script: Optimize Node::insert (#40742)
2917+ perf; faster parseFromString() on DOMParser
29112918 # - Change how the static node list is built to prevent a second iteration of new_nodes
29122919 # - Memoize some invariants of the parent
29132920 # Testing: No wpt regressions: https://github.com/webbeef/servo/actions/runs/19493174678
@@ -3382,7 +3389,8 @@ https://github.com/servo/servo/pull/40707 (@yezhizhen, #40707) Revert servo/serv
33823389 # node. This is a crude implementation, because we currently aren't taking
33833390 # into account what attributes changed, but at least it works.
33843391 # Testing: This doesn't have any test changes, but should fix the test situation described in #40419.
3385- https://github.com/servo/servo/pull/40607 (@mrobinson, #40607) libservo: Add `ContextMenuElementInformation` to for the context menu API (#40607)
3392+ +https://github.com/servo/servo/pull/40607 (@mrobinson, #40607) libservo: Add `ContextMenuElementInformation` to for the context menu API (#40607)
3393+ api; element_info() on ContextMenu
33863394 # This new data structure allows passing more information when popping up
33873395 # context menus. It's possible in the future that it will be adapted into
33883396 # a more generic "hit test result" type API ala WebKit, but for now, this is probably
@@ -3432,7 +3440,7 @@ https://github.com/servo/servo/pull/40685 (@tharkum, #40685) html: Fire the <med
34323440 # The associated WPT PR: https://github.com/web-platform-tests/wpt/pull/56014
34333441 # Testing: Improvements in the following tests
34343442 # - html/semantics/embedded-content/media-elements/ready-states/autoplay.html
3435- https://github.com/servo/servo/pull/40686 (@kkoyung, #40686) script: Fix wrongly matched normalized algorithm in `NormalizedAlgorithm::get_key_length` (#40686)
3443+ - https://github.com/servo/servo/pull/40686 (@kkoyung, #40686) script: Fix wrongly matched normalized algorithm in `NormalizedAlgorithm::get_key_length` (#40686)
34363444 # In `NormalizedAlgorithm::get_key_length`, we match the wrong enum variants for HKDF and PBKDF2. Therefore, the
34373445 # function wrongly returns `NotSupportedError` for them. It causes a few WPT tests fail. This patch fix it with
34383446 # correct enum variants.
@@ -3541,7 +3549,8 @@ https://github.com/servo/servo/pull/40653 (@TimvdLippe, #40653) libservo: Notify
35413549 # https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/%s
35423550 # ```
35433551 # Part of #40615
3544- https://github.com/servo/servo/pull/40799 (@mrobinson, #40799) libservo: Remove `Servo::animating()` (#40799)
3552+ +https://github.com/servo/servo/pull/40799 (@mrobinson, #40799) libservo: Remove `Servo::animating()` (#40799)
3553+ api; removed in favour of RefreshDriver
35453554 # Instead of relying on `Sevo::animating()` in servoshell to drive the
35463555 # event loop, it is sufficient to just let the `RefreshDriver` wake it up
35473556 # when it is time to re-render.
@@ -4392,7 +4401,8 @@ https://github.com/servo/servo/pull/40872 (@yezhizhen, #40872) Remove unnecessar
43924401 # a rebase manually by commenting `@dependabot rebase`.
43934402 # [//]: # (dependabot-automerge-start)
43944403 # [//]: # (dependabot-automerge-end)
4395- https://github.com/servo/servo/pull/40913 (@simonwuelker, #40913) fonts: Don't panic when font information contains invalid UTF-8 (#40913)
4404+ +https://github.com/servo/servo/pull/40913 (@simonwuelker, #40913) fonts: Don't panic when font information contains invalid UTF-8 (#40913)
4405+ crash; fix panic with unusual fonts
43964406 # `freetype` gives us `*const c_char` which is not necessarily UTF-8. In some cases we can simply ignore such fonts
43974407 # instead of panicking. (We can also save on allocation when comparing font formats)
43984408 # Testing: Covered by existing tests
@@ -4500,7 +4510,7 @@ https://github.com/servo/servo/pull/40890 (@Taym95, #40890) Fixes ByteLengthQueu
45004510 # [ByteLengthQueuingStrategy: size behaves as expected with strange arguments]
45014511 # expected: TIMEOUT
45024512 # ```
4503- https://github.com/servo/servo/pull/40895 (@yezhizhen, #40895) display_list: Fix doc for `ScrollType` (#40895)
4513+ - https://github.com/servo/servo/pull/40895 (@yezhizhen, #40895) display_list: Fix doc for `ScrollType` (#40895)
45044514 # In #37412 we renamed `ScrollSensitivity` to `ScrollType`. This PR updates the doc.
45054515>>> 2025-11-28T06:11:01Z
45064516https://github.com/servo/servo/pull/40857 (@kkoyung, #40857) script: Add new KeyFormat and KeyUsage for modern algorithms (#40857)
@@ -4509,7 +4519,8 @@ https://github.com/servo/servo/pull/40857 (@kkoyung, #40857) script: Add new Key
45094519 # This patch adds those new key formats and key usages, preparing for the implementation of the new algorithms.
45104520 # Testing: No behavioral changes in existing cryptographic algorithms. Existing tests suffice.
45114521 # Fixes: Part of #40687
4512- https://github.com/servo/servo/pull/40447 (@stevennovaryo, #40447) dom: Focus scroll to the element only if it is not visible (#40447)
4522+ +https://github.com/servo/servo/pull/40447 (@stevennovaryo, #40447) dom: Focus scroll to the element only if it is not visible (#40447)
4523+ dom; focus no longer scrolls if element is visible
45134524 # Currently when we call a `Focus` we always scroll a focusable element to the center of
45144525 # the container. However, this would causes a different behavior where UAs wouldn't scroll
45154526 # when a focus is called to a visible element. This PR add implementations following the behavior of Firefox
@@ -4617,7 +4628,8 @@ https://github.com/servo/servo/pull/40918 (@mrobinson, #40918) script: Break the
46174628 # multiprocess mode while causing a panic to happen due to a null pointer
46184629 # dereference. The sad tab appeared after this change, so things seem to work
46194630 # properly still. Testing crashes is tricky with the way we test servo now.
4620- https://github.com/servo/servo/pull/40916 (@Loirooriol, @mrobinson, #40916) stylo: Add stacking context damage when outline-width becomes non-zero (#40916)
4631+ +https://github.com/servo/servo/pull/40916 (@Loirooriol, @mrobinson, #40916) stylo: Add stacking context damage when outline-width becomes non-zero (#40916)
4632+ layout; incremental layout for ‘outline’ changes
46214633 # Bumps Stylo to https://github.com/servo/stylo/pull/274
46224634 # Testing: Adding new test
46234635+https://github.com/servo/servo/pull/40883 (@mrobinson, @mukilan, #40883) servoshell: Add architectural support for opening multiple windows (#40883)
@@ -4665,7 +4677,8 @@ https://github.com/servo/servo/pull/40917 (@tharkum, #40917) html: Add new media
46654677>>> 2025-11-29T06:19:57Z
46664678-https://github.com/servo/servo/pull/40934 (@nacho, #40934) Fix various typos throughout the code base (#40934)
46674679 # null
4668- https://github.com/servo/servo/pull/40933 (@mrobinson, #40933) servoshell: Schedule keyboard shortcut exits so that they can be done cleanly (#40933)
4680+ +https://github.com/servo/servo/pull/40933 (@mrobinson, #40933) servoshell: Schedule keyboard shortcut exits so that they can be done cleanly (#40933)
4681+ crash; fix crashes when exiting servo
46694682 # This is a speculative fix for a crash mentioned by @mukilan[^1]. It will
46704683 # also make moving to a more consistent shutdown model (even one driven by
46714684 # dropping of the `Servo` instance) possible.
@@ -4765,7 +4778,8 @@ https://github.com/servo/servo/pull/40944 (@mrobinson, #40944) constellation: Br
47654778 # `Rc`.
47664779 # Testing: This should not change behavior in a way that is observable, so should
47674780 # be covered by existing tests.
4768- https://github.com/servo/servo/pull/40951 (@mrobinson, #40951) libservo: Clean up Servo exports and export more at the root (#40951)
4781+ +https://github.com/servo/servo/pull/40951 (@mrobinson, #40951) libservo: Clean up Servo exports and export more at the root (#40951)
4782+ api; `use servo::*`
47694783 # This change makes it easier for embedders to embed the types that they
47704784 # need by exporting almost everything necessary to use Servo at the root
47714785 # of libservo, apart from a few exceptions. In addition, the `Servo` is moved
@@ -4777,7 +4791,8 @@ https://github.com/servo/servo/pull/40953 (@mrobinson, #40953) servoshell: Alway
47774791 # This prevents crashes when exiting servoshell in different situations.
47784792 # For instance, this fixes a crash when running WPT tests on some systems.
47794793 # Testing: This fixes an issue when running WPT tests locally.
4780- https://github.com/servo/servo/pull/40948 (@kkoyung, #40948) script: Implement import/export key operation of ChaCha20-Poly1305 (#40948)
4794+ +https://github.com/servo/servo/pull/40948 (@kkoyung, #40948) script: Implement import/export key operation of ChaCha20-Poly1305 (#40948)
4795+ dom; crypto.subtle.importKey("ChaCha20-Poly1305") and exportKey() for ChaCha20-Poly1305 keys
47814796 # Start adding ChaCha20-Poly1305 support to WebCrypto API.
47824797 # This patch implements "import key" operation and "export key" operation of ChaCha20-Poly1305, using the crate
47834798 # `chacha20poly1305` to support the cryptographic calculation.
0 commit comments