-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
script: Implement the FontFaceSet
DOM API
#32576
Conversation
🔨 Triggering try run (#9608697235) for Linux WPT, MacOS, Windows, Android, OpenHarmony |
Test results for linux-wpt-layout-2013 from try job (#9608697235): Flaky unexpected result (13)
Stable unexpected results that are known to be intermittent (15)
Stable unexpected results (22)
|
Test results for linux-wpt-layout-2020 from try job (#9608697235): Flaky unexpected result (18)
Stable unexpected results that are known to be intermittent (18)
Stable unexpected results (3)
|
|
🔨 Triggering try run (#9609402674) for Linux WPT |
Test results for linux-wpt-layout-2020 from try job (#9609402674): Flaky unexpected result (13)
Stable unexpected results that are known to be intermittent (19)
Stable unexpected results (2)
|
Test results for linux-wpt-layout-2013 from try job (#9609402674): Flaky unexpected result (13)
Stable unexpected results that are known to be intermittent (16)
Stable unexpected results (19)
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple of initial comments...
By the way, re the resizeobserver failures in layout 2013: not sure we should run them, and also why the interface is absent when we do. Is it present in 2020 by way of the dir.ini` file in meta
components/script/dom/window.rs
Outdated
@@ -1980,6 +1980,15 @@ impl Window { | |||
); | |||
} | |||
|
|||
let document = self.Document(); | |||
let pending_web_fonts = self.layout.borrow().waiting_for_web_fonts_to_load(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You want to scope the borrow so that it is dropped before font_face_set.fulfill_ready_promise_if_needed();
, because since the promise calls into JS, it is very hard to be sure there will not be another borrow of layout
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't the lifetime of the borrow limited to the end of the statement since the Ref
returned is a temporary and waiting_for_web_fonts_to_load()
returns a boolean?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes you're right, and more importantly: I forgot about the promise enqueuing mechanism, so the borrow will have been dropped by the time the microtask runs. Altough I am actually not sure if calling resolve_native
goes throught that, I will double check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EDIT: resolve_native
does not go through the microtask stuff...
// `document.fonts.ready` are run by the event loop only when it performs a microtask | ||
// checkpoint. Without the call below, this never happens and the promise is 'stuck' | ||
// waiting to be resolved until another event forces a microtask checkpoint. | ||
self.rendering_opportunity(pipeline_id); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is correct, because the mechanism that resolves the promise is not the microtask checkpoint(which by the way in our wrong implementation is called once after each iteration of the event-loop, so it is called after handling this message as well), but rather the call to reflow
, which does happens in the "update the rendering"(not always), but I think in your case the reflow should happen after this(since a pending reflow is added above) as part of
servo/components/script/script_thread.rs
Line 2011 in 66edef8
window.reflow(ReflowGoal::Full, ReflowReason::PendingReflow); |
Also, see the other comment at reflow
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
. Does the promise not resolve without noting a rendering opp here?
Yes, that is what we observed. This example exhibits the issue if self.rendering_opportunity()
is removed.
<!DOCTYPE html>
<html>
<head>
<script>
document.fonts.ready.then(function() {
console.log("Promise resolved with", arguments);
})
</script>
<style>
@font-face {
font-family: 'FiraSans';
src: url('https://google.com/'); /* Force font loading to fail due to sanitizer error */
/* src: url('https://fonts.gstatic.com/s/firasans/v17/va9E4kDNxMZdWfMOD5Vvl4jL.woff2'); */
}
div {
font-family: "FiraSans";
}
</style>
</head>
<body>
<div>Test</div>
</body>
</html>
However, we don't observe the issue when src
is a valid font, so there maybe something more going on.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, thanks for clarifying. In that case, I think your fix is accidental, in that it works but doesn't address what I think is the underlying problem:
- The promise is resolved in one of the reflow calls at the end of the event-loop iteration:
servo/components/script/script_thread.rs
Line 1995 in 8121c98
debug!("Issuing batched reflows."); - The microtask checkpoint is done before, at
servo/components/script/script_thread.rs
Line 1974 in 8121c98
self.perform_a_microtask_checkpoint(); - The task you enqueue here runs(in the next iteration), followed by a micro tack checkpoint that runs the promise callback.
So I think the more direct way of addressing the problem, is to resolve the promise right here. Even though we are not in a "task", the micro task checkpoint will run after this. (remaining question: do you need to reflow before the promise callback runs?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Forget about the above, we don't need the microtask checkpoint. It may still be an idea to resolve the promise already here(and see if the problem is not in the logic around it, like the check for all web fonts having been loaded already).
Also a problem is that it is not clear that the document is fully loaded at this point, but that is a separate problem.
let is_ready_state_complete = document.ReadyState() == DocumentReadyState::Complete; | ||
|
||
if !pending_web_fonts && is_ready_state_complete { | ||
font_face_set.fulfill_ready_promise_if_needed(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is correct, instead the promise must be fulfilled as part of the switch-the-fontfaceset-to-loaded
. However the queuing of some of the task that call into this mechanism seems to originate in methods on FontFace
(the constructor for example), so perhaps some kind of partial implementation of that interface should be part of this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think @mrobinson and I discussed this approach during implementation but decided not to have a new task because currently we are only interested in document.font.ready
, so implementing step 3 of switch-the-fontfaceset-to-loaded
(Fulfill font face set’s [[ReadyPromise]]
attribute’s value with font face set) is necessary but not step 4.
I'm not too familiar with the working of our task queue implementation or the specification, so I'll discuss this again with Martin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok I see. See my other comment then for a more direct temporary solution.
Ok, to summarize:
|
@gterzian by 'promise handler' do you mean the callbacks registered from the JS side using |
Ok, interesting. Can you please confirm that it runs via servo/components/script/microtask.rs Line 113 in 26bbfe9
Also, what happens if you resolve the promise inside |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok so confirmed about the microtask mechanism being used, and I think loading a web-font actually makes sense as a "rendering opportunity"(even though we probably want to move to the task queuing that the spec does later). LGTM
00fa70f
to
96eb265
Compare
@gterzian Thanks for the detailed review! We've pushed a small change to get the pending font count before we force a reflow in |
@mrobinson : The |
Add a skeleton implementation of FontFaceSet interface with support for resolving the `document.fonts.ready` Promise when the loading of web fonts is completed. This change exposes new failures in the web platform tests. These were ERROR before the change because `document.fonts.ready` caused a `ReferenceError` causing the tests to be aborted and they now FAIL: - /css/CSS2/linebox/vertical-align-top-bottom-001.html - /css/css-flexbox/flex-one-sets-flex-basis-to-zero-px.html - /css/css-fonts/generic-family-keywords-001.html - /css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html - /css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html - /css/css-text/text-autospace/text-autospace-ligature-001.html - /css/css-values/calc-size/calc-size-width.tentative.html These were TIMEOUT before the change because `document.fonts.ready` was a ReferenceError and the tests were asynchronous (reftest-wait). These now FAIL because the assertions are now executed after fonts are loaded: - /css/css-fonts/matching/fixed-stretch-style-over-weight.html - /css/css-fonts/matching/range-descriptor-reversed.html - /css/css-fonts/matching/stretch-distance-over-weight-distance.html - /css/css-fonts/matching/style-ranges-over-weight-direction.html - /css/css-fonts/variations/variable-box-font.html - /css/css-fonts/variations/variable-gpos-m2b.html - /css/css-fonts/variations/variable-gsub.html - /css/css-fonts/variations/variable-opsz-size-adjust.html - /css/css-position/sticky/position-sticky-change-top.html - /css/css-position/sticky/position-sticky-fixed-ancestor.html - /css/css-position/sticky/position-sticky-flexbox.html - /css/css-position/sticky/position-sticky-grid.html - /css/css-position/sticky/position-sticky-inline.html - /css/css-position/sticky/position-sticky-rendering.html - /css/css-position/sticky/position-sticky-stacking-context.html - /css/css-position/sticky/position-sticky-table-td-left.html - /css/css-position/sticky/position-sticky-table-td-right.html - /css/css-position/sticky/position-sticky-table-tfoot-bottom.html - /css/css-position/sticky/position-sticky-table-th-right.html - /css/css-position/sticky/position-sticky-table-thead-top.html - /css/css-position/sticky/position-sticky-table-tr-bottom.html - /css/css-position/sticky/position-sticky-table-tr-top.html - /css/css-position/sticky/position-sticky-writing-modes.html - /css/css-pseudo/marker-intrinsic-contribution-001.html - /css/css-text/hyphens/hyphens-character.html These tests now PASS due to this patch: * FAIL -> PASS - /html/canvas/element/text/2d.text.draw.fill.maxWidth.fontface.html - /html/canvas/element/text/2d.text.measure.width.empty.html * TIMEOUT -> PASS - /css/css-fonts/variations/font-descriptor-range-reversed.html - /css/css-fonts/variations/variable-opsz.html - /css/css-position/sticky/position-sticky-table-th-left.html * ERROR -> PASS - /css/css-fonts/generic-family-keywords-002.html - /css/css-fonts/generic-family-keywords-003.html * These two tests only PASS in Layout 2020: - /css/CSS2/positioning/inline-static-position-001.html - /css/cssom-view/getBoundingClientRect-empty-inline.html These two tests have subtests that PASS intermittenttly: - /fetch/metadata/generated/css-font-face.sub.tentative.html - /css/css-fonts/generic-family-keywords-001.html These tests are new TIMEOUTS that used to FAIL because `documents.fonts.ready` was undefined: - /resource-timing/TAO-match.html - /resource-timing/content-type.html - /resource-timing/nextHopProtocol-is-tao-protected.https.html The failure in `/resize-observer/change-layout-in-error.html` could be due to an issue in the ResizeObserver implementation that is now exposed with this change, but this needs more investigation. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Add a skeleton implementation of FontFaceSet interface with support for resolving the `document.fonts.ready` Promise when the loading of web fonts is completed. This change exposes new failures in the web platform tests. These were ERROR before the change because `document.fonts.ready` caused a `ReferenceError` causing the tests to be aborted and they now FAIL: - /css/CSS2/linebox/vertical-align-top-bottom-001.html - /css/css-flexbox/flex-one-sets-flex-basis-to-zero-px.html - /css/css-fonts/generic-family-keywords-001.html - /css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html - /css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html - /css/css-text/text-autospace/text-autospace-ligature-001.html - /css/css-values/calc-size/calc-size-width.tentative.html These were TIMEOUT before the change because `document.fonts.ready` was a ReferenceError and the tests were asynchronous (reftest-wait). These now FAIL because the assertions are now executed after fonts are loaded: - /css/css-fonts/matching/fixed-stretch-style-over-weight.html - /css/css-fonts/matching/range-descriptor-reversed.html - /css/css-fonts/matching/stretch-distance-over-weight-distance.html - /css/css-fonts/matching/style-ranges-over-weight-direction.html - /css/css-fonts/variations/variable-box-font.html - /css/css-fonts/variations/variable-gpos-m2b.html - /css/css-fonts/variations/variable-gsub.html - /css/css-fonts/variations/variable-opsz-size-adjust.html - /css/css-position/sticky/position-sticky-change-top.html - /css/css-position/sticky/position-sticky-fixed-ancestor.html - /css/css-position/sticky/position-sticky-flexbox.html - /css/css-position/sticky/position-sticky-grid.html - /css/css-position/sticky/position-sticky-inline.html - /css/css-position/sticky/position-sticky-rendering.html - /css/css-position/sticky/position-sticky-stacking-context.html - /css/css-position/sticky/position-sticky-table-td-left.html - /css/css-position/sticky/position-sticky-table-td-right.html - /css/css-position/sticky/position-sticky-table-tfoot-bottom.html - /css/css-position/sticky/position-sticky-table-th-right.html - /css/css-position/sticky/position-sticky-table-thead-top.html - /css/css-position/sticky/position-sticky-table-tr-bottom.html - /css/css-position/sticky/position-sticky-table-tr-top.html - /css/css-position/sticky/position-sticky-writing-modes.html - /css/css-pseudo/marker-intrinsic-contribution-001.html - /css/css-text/hyphens/hyphens-character.html These tests now PASS due to this patch: * FAIL -> PASS - /html/canvas/element/text/2d.text.draw.fill.maxWidth.fontface.html - /html/canvas/element/text/2d.text.measure.width.empty.html * TIMEOUT -> PASS - /css/css-fonts/variations/font-descriptor-range-reversed.html - /css/css-fonts/variations/variable-opsz.html - /css/css-position/sticky/position-sticky-table-th-left.html * ERROR -> PASS - /css/css-fonts/generic-family-keywords-002.html - /css/css-fonts/generic-family-keywords-003.html * These two tests only PASS in Layout 2020: - /css/CSS2/positioning/inline-static-position-001.html - /css/cssom-view/getBoundingClientRect-empty-inline.html These two tests have subtests that PASS intermittenttly: - /fetch/metadata/generated/css-font-face.sub.tentative.html - /css/css-fonts/generic-family-keywords-001.html These tests are new TIMEOUTS that used to FAIL because `documents.fonts.ready` was undefined: - /resource-timing/TAO-match.html - /resource-timing/content-type.html - /resource-timing/nextHopProtocol-is-tao-protected.https.html The failure in `/resize-observer/change-layout-in-error.html` could be due to an issue in the ResizeObserver implementation that is now exposed with this change, but this needs more investigation. Co-authored-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Add a skeleton implementation of FontFaceSet interface with support for resolving the `document.fonts.ready` Promise when the loading of web fonts is completed. This change exposes new failures in the web platform tests. These were ERROR before the change because `document.fonts.ready` caused a `ReferenceError` causing the tests to be aborted and they now FAIL: - /css/CSS2/linebox/vertical-align-top-bottom-001.html - /css/css-flexbox/flex-one-sets-flex-basis-to-zero-px.html - /css/css-fonts/generic-family-keywords-001.html - /css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html - /css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html - /css/css-text/text-autospace/text-autospace-ligature-001.html - /css/css-values/calc-size/calc-size-width.tentative.html These were TIMEOUT before the change because `document.fonts.ready` was a ReferenceError and the tests were asynchronous (reftest-wait). These now FAIL because the assertions are now executed after fonts are loaded: - /css/css-fonts/matching/fixed-stretch-style-over-weight.html - /css/css-fonts/matching/range-descriptor-reversed.html - /css/css-fonts/matching/stretch-distance-over-weight-distance.html - /css/css-fonts/matching/style-ranges-over-weight-direction.html - /css/css-fonts/variations/variable-box-font.html - /css/css-fonts/variations/variable-gpos-m2b.html - /css/css-fonts/variations/variable-gsub.html - /css/css-fonts/variations/variable-opsz-size-adjust.html - /css/css-position/sticky/position-sticky-change-top.html - /css/css-position/sticky/position-sticky-fixed-ancestor.html - /css/css-position/sticky/position-sticky-flexbox.html - /css/css-position/sticky/position-sticky-grid.html - /css/css-position/sticky/position-sticky-inline.html - /css/css-position/sticky/position-sticky-rendering.html - /css/css-position/sticky/position-sticky-stacking-context.html - /css/css-position/sticky/position-sticky-table-td-left.html - /css/css-position/sticky/position-sticky-table-td-right.html - /css/css-position/sticky/position-sticky-table-tfoot-bottom.html - /css/css-position/sticky/position-sticky-table-th-right.html - /css/css-position/sticky/position-sticky-table-thead-top.html - /css/css-position/sticky/position-sticky-table-tr-bottom.html - /css/css-position/sticky/position-sticky-table-tr-top.html - /css/css-position/sticky/position-sticky-writing-modes.html - /css/css-pseudo/marker-intrinsic-contribution-001.html - /css/css-text/hyphens/hyphens-character.html These tests now PASS due to this patch: * FAIL -> PASS - /html/canvas/element/text/2d.text.draw.fill.maxWidth.fontface.html - /html/canvas/element/text/2d.text.measure.width.empty.html * TIMEOUT -> PASS - /css/css-fonts/variations/font-descriptor-range-reversed.html - /css/css-fonts/variations/variable-opsz.html - /css/css-position/sticky/position-sticky-table-th-left.html * ERROR -> PASS - /css/css-fonts/generic-family-keywords-002.html - /css/css-fonts/generic-family-keywords-003.html * These two tests only PASS in Layout 2020: - /css/CSS2/positioning/inline-static-position-001.html - /css/cssom-view/getBoundingClientRect-empty-inline.html These two tests have subtests that PASS intermittenttly: - /fetch/metadata/generated/css-font-face.sub.tentative.html - /css/css-fonts/generic-family-keywords-001.html These tests are new TIMEOUTS that used to FAIL because `documents.fonts.ready` was undefined: - /resource-timing/TAO-match.html - /resource-timing/content-type.html - /resource-timing/nextHopProtocol-is-tao-protected.https.html The failure in `/resize-observer/change-layout-in-error.html` could be due to an issue in the ResizeObserver implementation that is now exposed with this change, but this needs more investigation. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Proper GPUDevice cleanup (#32520) * Make device cleanup right * Use weakref for GPUDevice in globalscope * No need to destroy device on drop * DeviceReason early return * make remove_gpu_device to be the only way to remove device * crown: remove references to workspace manifest (#32567) The way our shell.nix works requires crown's Cargo.toml to be self-contained so that it can be built as a nix derivation in isolation. Fixes #32552. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * ohos: Add fallback font for serif (#32555) The fallback behavior seems to have changed recently. Now we need to explicitly add a fallback for `serif` otherwise no font is selected. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * add codeowners file, set gterzian as owner for components/script (#32568) * config: fix panic in PrefValue to [f64; 4] conversion (#32571) The `Iterator::all` method consumes the input iterator `f` so when we reuse `f` in `f.flatten().collect()` it yields an empty Vector in the case where all the elements are successfully converted using try_into(). This causes out of bounds access when indexing into the resulting Vector to extract the individual components. Fixes #32570. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * android: Remove serde-json build-dependency (#32573) There is no need to add `serde-json` as a build-dependency (which causes serde to be built twice when cross-compiling - once for host and once for the target) Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * layout: Add very basic support for showing text in input boxes (#32365) This only paints text in input fields. Selection and cursor are still not painted. In addition to adding this feature, the change also updates the user-agent.css with the latest from the HTML specification. Extra padding and extraneous settings (such as a bogus line-height and min-height) are also removed from servo.css. This leads to some new passes. There are some new passes, this introduces failures as inserting text reveals issues that were hidden before. Notably: - failures in `/html/editing/editing-0/spelling-and-grammar-checking/`: We do not support spell-checking. - Most of the rest of the new failures are missing features of input boxes that are also missing in legacy layout. * layout: Simplify `Contents` a little (#32487) Instead of duplicating some of `NonReplacedContents` in `Contents`, divide it into either replaced and non-replaced content, since this is how the layout system processes `Contents` always. In addition, stop using `TryInto` to match replaced or non-replaced contents, as it is quite confusing to handle an `Err` as a success case. * use app unit in box_fragement (#32349) * DevTools: Implement watcher actor (#32509) * feat: base for watcher * feat: some more watcher tests * feat: implement getWatcher * refactor: clean up getWatcher * feat: implement watchTargets * feat: implement watchResources * feat: very messy watchTargets fix * refactor: clean browsing context * feat: target configuration * refactor: start cleanup * refactor: more doc coments * refactor: clean browsing context * build(deps): bump displaydoc from 0.2.4 to 0.2.5 (#32578) Bumps [displaydoc](https://github.com/yaahc/displaydoc) from 0.2.4 to 0.2.5. - [Changelog](https://github.com/yaahc/displaydoc/blob/master/CHANGELOG.md) - [Commits](https://github.com/yaahc/displaydoc/commits/v0.2.5) --- updated-dependencies: - dependency-name: displaydoc dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump proc-macro2 from 1.0.85 to 1.0.86 (#32577) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.85 to 1.0.86. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.85...1.0.86) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump syn from 2.0.66 to 2.0.67 (#32579) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.66 to 2.0.67. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.66...2.0.67) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update web-platform-tests to revision b'f46bf6aa167e2838a8b93501a1a998ffde90d879' (#32581) Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org> * Add suppression comments + Suppress lazy_static (#32584) Co-authored-by: Jonas Zeunert <jonas@zeunert.org> * Make `crown` optional (#32494) * Make `crown` optional Add the optional `--use-crown` flag to mach * --use-crown for all platforms in CI Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Add documentation for `--use-crown` Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Update python/servo/command_base.py Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com> Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * Raise Error if CARGO_BUILD_RUSTC conflicts with --use-crown Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * add dummy RUSTFLAG to trigger re-checking Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> --------- Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com> * android: Use location_bar_input_to_url instead of re-implementing (#32586) We can use the same function as the desktop version Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * android: Rename the Android app to reflect servo.org ownership and `servoshell` (#32554) Signed-off-by: Martin Robinson <mrobinson@igalia.com> * mach: Expose a `--skip-static-analysis` to `mach boostrap` (#32587) This should speed up runners which just need to run the WPT tests. Fixes #32582. * build(deps): bump libloading from 0.8.3 to 0.8.4 (#32590) Bumps [libloading](https://github.com/nagisa/rust_libloading) from 0.8.3 to 0.8.4. - [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.3...0.8.4) --- updated-dependencies: - dependency-name: libloading dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump syn from 2.0.67 to 2.0.68 (#32588) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.67 to 2.0.68. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.67...2.0.68) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Upgrade stylo to 2024-05-31 (#32474) * Upgrade stylo to 2024-05-31 * Fixup for https://phabricator.services.mozilla.com/D211731 * Fixup for https://phabricator.services.mozilla.com/D207779 * Fixup for https://phabricator.services.mozilla.com/D207781 * Update test expectations * build(deps): bump lazy_static from 1.4.0 to 1.5.0 (#32591) Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases) - [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.4.0...1.5.0) --- updated-dependencies: - dependency-name: lazy_static dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * clippy: fix some warnings in desktop and some components (#32583) * clippy: fix some warnings in ports/servoshell/desktop Signed-off-by: ItsSunnyMonster <100400733+ItsSunnyMonster@users.noreply.github.com> * style: fix formatting Signed-off-by: ItsSunnyMonster <100400733+ItsSunnyMonster@users.noreply.github.com> * clippy: fix warnings in bluetooth, devtools and servo components Signed-off-by: ItsSunnyMonster <100400733+ItsSunnyMonster@users.noreply.github.com> * clippy: remove comments Signed-off-by: ItsSunnyMonster <100400733+ItsSunnyMonster@users.noreply.github.com> --------- Signed-off-by: ItsSunnyMonster <100400733+ItsSunnyMonster@users.noreply.github.com> * Switch flex layout to app units (#32599) * build(deps): bump uuid from 1.8.0 to 1.9.0 (#32589) Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.8.0 to 1.9.0. - [Release notes](https://github.com/uuid-rs/uuid/releases) - [Commits](https://github.com/uuid-rs/uuid/compare/1.8.0...1.9.0) --- updated-dependencies: - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Clean up some unused dependencies (#32600) * build(deps): bump uuid from 1.9.0 to 1.9.1 (#32608) Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.9.0 to 1.9.1. - [Release notes](https://github.com/uuid-rs/uuid/releases) - [Commits](https://github.com/uuid-rs/uuid/compare/1.9.0...1.9.1) --- updated-dependencies: - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump serde_bytes from 0.11.14 to 0.11.15 (#32610) Bumps [serde_bytes](https://github.com/serde-rs/bytes) from 0.11.14 to 0.11.15. - [Release notes](https://github.com/serde-rs/bytes/releases) - [Commits](https://github.com/serde-rs/bytes/compare/0.11.14...0.11.15) --- updated-dependencies: - dependency-name: serde_bytes dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump serde_json from 1.0.117 to 1.0.118 (#32609) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.117 to 1.0.118. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.117...v1.0.118) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump icu_properties from 1.5.0 to 1.5.1 (#32612) Bumps [icu_properties](https://github.com/unicode-org/icu4x) from 1.5.0 to 1.5.1. - [Release notes](https://github.com/unicode-org/icu4x/releases) - [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md) - [Commits](https://github.com/unicode-org/icu4x/commits) --- updated-dependencies: - dependency-name: icu_properties dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump zerovec from 0.10.2 to 0.10.3 (#32614) Bumps [zerovec](https://github.com/unicode-org/icu4x) from 0.10.2 to 0.10.3. - [Release notes](https://github.com/unicode-org/icu4x/releases) - [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md) - [Commits](https://github.com/unicode-org/icu4x/commits) --- updated-dependencies: - dependency-name: zerovec dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump zerovec-derive from 0.10.2 to 0.10.3 (#32611) Bumps [zerovec-derive](https://github.com/unicode-org/icu4x) from 0.10.2 to 0.10.3. - [Release notes](https://github.com/unicode-org/icu4x/releases) - [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md) - [Commits](https://github.com/unicode-org/icu4x/commits) --- updated-dependencies: - dependency-name: zerovec-derive dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bitflags from 2.5.0 to 2.6.0 (#32613) Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.5.0 to 2.6.0. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.5.0...2.6.0) --- updated-dependencies: - dependency-name: bitflags dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add a directory listing feature for `file` URLs (#32580) Signed-off-by: Bobulous <Bobulous@users.noreply.github.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Bobulous <Bobulous@users.noreply.github.com> * script: Implement the `FontFaceSet` DOM API (#32576) Add a skeleton implementation of FontFaceSet interface with support for resolving the `document.fonts.ready` Promise when the loading of web fonts is completed. This change exposes new failures in the web platform tests. These were ERROR before the change because `document.fonts.ready` caused a `ReferenceError` causing the tests to be aborted and they now FAIL: - /css/CSS2/linebox/vertical-align-top-bottom-001.html - /css/css-flexbox/flex-one-sets-flex-basis-to-zero-px.html - /css/css-fonts/generic-family-keywords-001.html - /css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html - /css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html - /css/css-text/text-autospace/text-autospace-ligature-001.html - /css/css-values/calc-size/calc-size-width.tentative.html These were TIMEOUT before the change because `document.fonts.ready` was a ReferenceError and the tests were asynchronous (reftest-wait). These now FAIL because the assertions are now executed after fonts are loaded: - /css/css-fonts/matching/fixed-stretch-style-over-weight.html - /css/css-fonts/matching/range-descriptor-reversed.html - /css/css-fonts/matching/stretch-distance-over-weight-distance.html - /css/css-fonts/matching/style-ranges-over-weight-direction.html - /css/css-fonts/variations/variable-box-font.html - /css/css-fonts/variations/variable-gpos-m2b.html - /css/css-fonts/variations/variable-gsub.html - /css/css-fonts/variations/variable-opsz-size-adjust.html - /css/css-position/sticky/position-sticky-change-top.html - /css/css-position/sticky/position-sticky-fixed-ancestor.html - /css/css-position/sticky/position-sticky-flexbox.html - /css/css-position/sticky/position-sticky-grid.html - /css/css-position/sticky/position-sticky-inline.html - /css/css-position/sticky/position-sticky-rendering.html - /css/css-position/sticky/position-sticky-stacking-context.html - /css/css-position/sticky/position-sticky-table-td-left.html - /css/css-position/sticky/position-sticky-table-td-right.html - /css/css-position/sticky/position-sticky-table-tfoot-bottom.html - /css/css-position/sticky/position-sticky-table-th-right.html - /css/css-position/sticky/position-sticky-table-thead-top.html - /css/css-position/sticky/position-sticky-table-tr-bottom.html - /css/css-position/sticky/position-sticky-table-tr-top.html - /css/css-position/sticky/position-sticky-writing-modes.html - /css/css-pseudo/marker-intrinsic-contribution-001.html - /css/css-text/hyphens/hyphens-character.html These tests now PASS due to this patch: * FAIL -> PASS - /html/canvas/element/text/2d.text.draw.fill.maxWidth.fontface.html - /html/canvas/element/text/2d.text.measure.width.empty.html * TIMEOUT -> PASS - /css/css-fonts/variations/font-descriptor-range-reversed.html - /css/css-fonts/variations/variable-opsz.html - /css/css-position/sticky/position-sticky-table-th-left.html * ERROR -> PASS - /css/css-fonts/generic-family-keywords-002.html - /css/css-fonts/generic-family-keywords-003.html * These two tests only PASS in Layout 2020: - /css/CSS2/positioning/inline-static-position-001.html - /css/cssom-view/getBoundingClientRect-empty-inline.html These two tests have subtests that PASS intermittenttly: - /fetch/metadata/generated/css-font-face.sub.tentative.html - /css/css-fonts/generic-family-keywords-001.html These tests are new TIMEOUTS that used to FAIL because `documents.fonts.ready` was undefined: - /resource-timing/TAO-match.html - /resource-timing/content-type.html - /resource-timing/nextHopProtocol-is-tao-protected.https.html The failure in `/resize-observer/change-layout-in-error.html` could be due to an issue in the ResizeObserver implementation that is now exposed with this change, but this needs more investigation. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com> * Switch replaced layout to app units (#32625) * layout: Enable parallel layout for tables (#32477) This simply wraps row and column-based layout of table sells in a `par_iter()` unconditionally enabling parallel layout for tables. In the future we can choose to adjust the conditions under which layout is done in parallel. * build(deps): bump the gstreamer-related group with 2 updates (#32626) Bumps the gstreamer-related group with 2 updates: [glib](https://github.com/gtk-rs/gtk-rs-core) and [glib-macros](https://github.com/gtk-rs/gtk-rs-core). Updates `glib` from 0.19.8 to 0.19.9 - [Release notes](https://github.com/gtk-rs/gtk-rs-core/releases) - [Changelog](https://github.com/gtk-rs/gtk-rs-core/blob/master/CHANGELOG.md) - [Commits](https://github.com/gtk-rs/gtk-rs-core/compare/0.19.8...0.19.9) Updates `glib-macros` from 0.19.8 to 0.19.9 - [Release notes](https://github.com/gtk-rs/gtk-rs-core/releases) - [Changelog](https://github.com/gtk-rs/gtk-rs-core/blob/master/CHANGELOG.md) - [Commits](https://github.com/gtk-rs/gtk-rs-core/compare/0.19.8...0.19.9) --- updated-dependencies: - dependency-name: glib dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gstreamer-related - dependency-name: glib-macros dependency-type: indirect update-type: version-update:semver-patch dependency-group: gstreamer-related ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * html: Parse a comma-separated list of faces in the `<font>` tag (#32622) This change parses a comma-separated list of faces in the `<font>` tag and also moves the parsing code from `stylo` to Servo. This means that the servo-specific code can be removed from stylo decreasing the differences between Gecko and Servo's version of `stylo`. * build(deps): bump either from 1.12.0 to 1.13.0 (#32627) Bumps [either](https://github.com/rayon-rs/either) from 1.12.0 to 1.13.0. - [Commits](https://github.com/rayon-rs/either/compare/1.12.0...1.13.0) --- updated-dependencies: - dependency-name: either dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Avoid Esc shortcut to close Servo (#32603) * Avoid Esc shortcut to close Servo Keep Esc shortcut to leave fullscreen, but avoid to close Servo (as this is not common in other similar apps, and can be shortcut used in some web apps for other things). * Send Esc to the page * CONTRIBUTING: add AI contributions policy (#32287) * CONTRIBUTING: add AI contributions policy Co-authored-by: Martin Robinson <mrobinson@igalia.com> * Be more explicit about how the policy may be revised * Reword point about copyright issues * Fix missing word in ethical issues --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com> * use au in AtomicLineItem (#32630) * webgpu: Update wgpu and revamp computepass (#32575) * Do not wait on drop, but rather wake poller thread * Update wgpu and render stuff * Set some good expectations * Update wgpu again * handle IPC error as warning * More good expectations * Some more expectations CTS does not match the spec: https://github.com/gpuweb/cts/issues/3806 * This expectations are due to other changes in servo also happening on main * Explain error_command_encoders and remove RefCell around it * fixup * store validness of passes * More good expectations * More docs * this assert is wrong * This is even more right per CTS/spec Only Command encoder state errors are allowed here, but wgpu does not exposes them. * More good expectations * One bad expectation * Fix my english * layout: Make `geom.rs` logical geoemetry types more ergonomic (#32633) Make using the logical geometry types more ergonomic by having them all implement `Copy` (at most 4 64-bit numbers), similar to what `euclid` does. In addition add an implementation of `Neg` for `LogicalVec` and `LogicalSides` as it will be used in upcoming table implementation code. * Replace null-byte terminated string literals with C-string literals (#32631) Signed-off-by: Mu Xianming <mu.xianming@lmwn.com> Co-authored-by: Mu Xianming <mu.xianming@lmwn.com> * Add OpenHarmony support to servoshell (#32594) * Generate EGL bindings for ohos Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Adjust servoshell `bin` error message for android/ohos Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * ohos: disable WebGL offscreen buffers are not implemented yet on ohos. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Add OpenHarmony support to servoshell Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Share ResourceReaderInstance Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Share android/ohos HostTrait Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Share servo glue Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * Pass Init options from ArkTS to Servo Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * f rebase ResourceReaderMethods Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * fixup! Share ResourceReaderInstance Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Fix typo Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Update Cargo.lock Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * ohos: Move WebGL check to webgl thread Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Remove commented code Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Remove commented and duplicate / unused code Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> --------- Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * build(deps): bump ab_glyph from 0.2.26 to 0.2.27 (#32637) Bumps [ab_glyph](https://github.com/alexheretic/ab-glyph) from 0.2.26 to 0.2.27. - [Release notes](https://github.com/alexheretic/ab-glyph/releases) - [Commits](https://github.com/alexheretic/ab-glyph/compare/ab-glyph-0.2.26...ab-glyph-0.2.27) --- updated-dependencies: - dependency-name: ab_glyph dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump zerovec from 0.10.3 to 0.10.4 (#32639) Bumps [zerovec](https://github.com/unicode-org/icu4x) from 0.10.3 to 0.10.4. - [Release notes](https://github.com/unicode-org/icu4x/releases) - [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md) - [Commits](https://github.com/unicode-org/icu4x/commits) --- updated-dependencies: - dependency-name: zerovec dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump log from 0.4.21 to 0.4.22 (#32638) Bumps [log](https://github.com/rust-lang/log) from 0.4.21 to 0.4.22. - [Release notes](https://github.com/rust-lang/log/releases) - [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/log/compare/0.4.21...0.4.22) --- updated-dependencies: - dependency-name: log dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Sync WPT with upstream (30-06-2024) (#32649) * Update web-platform-tests to revision b'639fa536940371f833fbbcc10104e20f435f9777' Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org> * Delete tests/wpt/meta/css/css-values/cap-invalidation.html.ini * Update css-font-face.https.sub.tentative.html.ini --------- Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org> Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com> * android: fix application name used in ./mach run (#32652) This patch also switches the code to python format strings so that the application name can be interpolated where needed. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * build(deps): bump object from 0.36.0 to 0.36.1 (#32658) Bumps [object](https://github.com/gimli-rs/object) from 0.36.0 to 0.36.1. - [Changelog](https://github.com/gimli-rs/object/blob/master/CHANGELOG.md) - [Commits](https://github.com/gimli-rs/object/compare/0.36.0...0.36.1) --- updated-dependencies: - dependency-name: object dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump serde_json from 1.0.118 to 1.0.119 (#32661) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.118 to 1.0.119. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.118...v1.0.119) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump mime_guess from 2.0.4 to 2.0.5 (#32660) * build(deps): bump mime_guess from 2.0.4 to 2.0.5 Bumps [mime_guess](https://github.com/abonander/mime_guess) from 2.0.4 to 2.0.5. - [Commits](https://github.com/abonander/mime_guess/commits) --- updated-dependencies: - dependency-name: mime_guess dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Remove libloading from servo-tidy.toml --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Touchet <alextouchet@outlook.com> * mark test/wpt as vendored in .gitattributes (#32663) although expectation and _mozilla test are ours * Add production-stripped cargo profile (#32651) * Add production-stripped cargo profile Stripping the binary significantly reduces the size significantly (in my tests to about 1/3 of the original size). Enabling lto and setting `codegen-units = 1` allows further size optimizations at the cost of increased compile-time. Probably not everyone wants a stripped binary, since it makes backtraces less useful. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Move lto and cgu option to production profile Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> --------- Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * webgpu: Implement ShaderCompilationInfo (#32642) * ShaderCompilationInfo * expectations * Handle CompilationInfo promise in GPUShaderModule * Fix my english * fix clippy warning (#32667) * build(deps): bump serde_json from 1.0.119 to 1.0.120 (#32668) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.119 to 1.0.120. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.119...v1.0.120) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump idna from 1.0.1 to 1.0.2 (#32669) Bumps [idna](https://github.com/servo/rust-url) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/servo/rust-url/releases) - [Commits](https://github.com/servo/rust-url/compare/idna-v1.0.1...idna-v1.0.2) --- updated-dependencies: - dependency-name: idna dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * use au in TextFragment (#32653) * layout: Allow rendering LineItems independent of inline box (#32666) Refactor inline layout to allow rendering line items in the second stage to be rendered in any order, independent of their parent inline box. This will allow line items to be reordered, effectively allowing the splitting of inline boxes, for the purposes of BiDi and any other inline reordering feature. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com> * build(deps): bump zerocopy from 0.7.34 to 0.7.35 (#32678) Bumps [zerocopy](https://github.com/google/zerocopy) from 0.7.34 to 0.7.35. - [Release notes](https://github.com/google/zerocopy/releases) - [Changelog](https://github.com/google/zerocopy/blob/main/CHANGELOG.md) - [Commits](https://github.com/google/zerocopy/commits) --- updated-dependencies: - dependency-name: zerocopy dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump sctk-adwaita from 0.8.1 to 0.8.3 (#32679) Bumps [sctk-adwaita](https://github.com/PolyMeilex/sctk-adwaita) from 0.8.1 to 0.8.3. - [Release notes](https://github.com/PolyMeilex/sctk-adwaita/releases) - [Changelog](https://github.com/PolyMeilex/sctk-adwaita/blob/master/CHANGELOG.md) - [Commits](https://github.com/PolyMeilex/sctk-adwaita/commits) --- updated-dependencies: - dependency-name: sctk-adwaita dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * layout: Add support for table captions (#32657) This adds initial support for table captions. To do this, the idea of the table wrapper becomes a bit more concrete. Even so, the wrapper is still reponsible for allocating space for the grid's border and padding, as those properties are specified on the wrapper and not grid in CSS. In order to account for this weirdness of HTML/CSS captions and grid are now laid out and placed with a negative offset in the table wrapper content rect. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com> * webgpu: Remove mutex around Identities (#32682) * servoshell: Update all egui dependencies and group them for dependabot (#32683) This updates egui, making the necessary changes to maintain behavior. In addition, it groups dependencies so that they are updated in a single PR by dependabot, avoiding manual work. * build(deps): bump windows_i686_gnullvm from 0.52.5 to 0.52.6 (#32689) Bumps [windows_i686_gnullvm](https://github.com/microsoft/windows-rs) from 0.52.5 to 0.52.6. - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits) --- updated-dependencies: - dependency-name: windows_i686_gnullvm dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump wayland-scanner from 0.31.2 to 0.31.3 (#32690) Bumps [wayland-scanner](https://github.com/smithay/wayland-rs) from 0.31.2 to 0.31.3. - [Release notes](https://github.com/smithay/wayland-rs/releases) - [Changelog](https://github.com/Smithay/wayland-rs/blob/master/historical_changelog.md) - [Commits](https://github.com/smithay/wayland-rs/commits) --- updated-dependencies: - dependency-name: wayland-scanner dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump wayland-client from 0.31.3 to 0.31.4 (#32691) Bumps [wayland-client](https://github.com/smithay/wayland-rs) from 0.31.3 to 0.31.4. - [Release notes](https://github.com/smithay/wayland-rs/releases) - [Changelog](https://github.com/Smithay/wayland-rs/blob/master/historical_changelog.md) - [Commits](https://github.com/smithay/wayland-rs/commits) --- updated-dependencies: - dependency-name: wayland-client dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Updated all kill_*_id functions defined in indentityhub.rs to free_*_id naming format for issue 32685 (#32688) Signed-off-by: newmoneybigbucks <newmoneybigbucks@protonmail.com> * DevTools: Add parser tool (#32684) * feat: add devtools parser tool * feat: improve documentation * Make task_info as `macos` specific (#32693) rust-analyzer breaks on Linux (when invoked without mach), because it tries to compile the c files, and doesn't find `mach_init.h` Since we don't need task_info on non-mac platforms, just make the crate empty on other platforms. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * clippy: Fix a bunch of warnings in `script` (#32680) This is just a portion of the errors that are remaining to be fixed. * webgpu: Update wgpu and revamp RenderPass (#32665) * Update wgpu and revamp RenderPass * Set good expectations * Set one bad expectation * send_render_command * small fixups * docs * doc * Put RenderPass inside PassState * Use Pass enum for ComputePass too * fix docs * clippy: Fix warnings in `shared` and `config`, `fonts`, `layout`, and `layout_2020` components (#32674) * build(deps): bump wayland-cursor from 0.31.3 to 0.31.4 (#32701) Bumps [wayland-cursor](https://github.com/smithay/wayland-rs) from 0.31.3 to 0.31.4. - [Release notes](https://github.com/smithay/wayland-rs/releases) - [Changelog](https://github.com/Smithay/wayland-rs/blob/master/historical_changelog.md) - [Commits](https://github.com/smithay/wayland-rs/commits) --- updated-dependencies: - dependency-name: wayland-cursor dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * layout_2013: Remove code preventing writing mode assertion failures (#32698) It's actually kind of useful that this code crashes, as it points out a problem. Additionally, we aren't going to be maintaining Layout 2013 any longer so it is very unlikely that these bugs will ever be fixed. This allows us to reduce our diff with upstream Stylo. Closes #30577. * fonts: Stop using `Stylesheet::effective_font_face_rules` (#32699) This function doesn't exist in upstream Stylo and is fairly unecessary. Removing it will help reduce the difference between downstream Stylo and upstream Stylo. * build(deps): bump ab_glyph from 0.2.27 to 0.2.28 (#32709) Bumps [ab_glyph](https://github.com/alexheretic/ab-glyph) from 0.2.27 to 0.2.28. - [Release notes](https://github.com/alexheretic/ab-glyph/releases) - [Commits](https://github.com/alexheretic/ab-glyph/compare/ab-glyph-0.2.27...ab-glyph-0.2.28) --- updated-dependencies: - dependency-name: ab_glyph dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump emath from 0.28.0 to 0.28.1 (#32710) Bumps [emath](https://github.com/emilk/egui) from 0.28.0 to 0.28.1. - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.28.0...0.28.1) --- updated-dependencies: - dependency-name: emath dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump the egui-related group with 2 updates (#32708) Bumps the egui-related group with 2 updates: [egui](https://github.com/emilk/egui) and [egui-winit](https://github.com/emilk/egui). Updates `egui` from 0.28.0 to 0.28.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.28.0...0.28.1) Updates `egui-winit` from 0.28.0 to 0.28.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.28.0...0.28.1) --- updated-dependencies: - dependency-name: egui dependency-type: direct:production update-type: version-update:semver-patch dependency-group: egui-related - dependency-name: egui-winit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: egui-related ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add more crates to egui Dependabot group (#32711) * build(deps): bump egui_glow in the egui-related group (#32712) Bumps the egui-related group with 1 update: [egui_glow](https://github.com/emilk/egui). Updates `egui_glow` from 0.28.0 to 0.28.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.28.0...0.28.1) --- updated-dependencies: - dependency-name: egui_glow dependency-type: direct:production update-type: version-update:semver-patch dependency-group: egui-related ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * script: Impl cloning of JSPrincipals (#32706) * Impl cloning of JSPrincipals * bincode as workspace dependency * Update mozjs and cc * Replace null-byte terminated string literals with C-string literals (#32716) * simple conversion from byte string to c-string Signed-off-by: Bum Kim <bumcrystlbum@gmail.com> * convert byte strings to c-strings to c_char ptr Signed-off-by: Bum Kim <bumcrystlbum@gmail.com> --------- Signed-off-by: Bum Kim <bumcrystlbum@gmail.com> * Update web-platform-tests to revision b'4e3b5de2eb8218cf18a1674618994efeb96e2cc0' (#32717) Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org> * Add customElements.getName (#32715) * Add customElements.getName * rebaseline * Set compositor's cursor_pos properly (#32718) * android: sign release APK with a custom key. (#32721) This PR adds support for signing all APKs we produce on the CI with a custom signing key. Currently the logic falls back to the debug key (which is generated by AGP and not persistent) if the environment variable for the keystore is not set. This allows local developer builds to work without requiring a key store. Once #32720 is resolved, we could sign just the production builds and remove the conditional logic. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * readme: Clarify that `rust` and `cargo` must be in your path after rustup runs (#32722) Fixes #32670. * ci: fix security issue in try job workflow (#32724) This [issue][1] was reported by GitHub user @RedYetiDev via the Security Advisory reporting mechanism on GitHub. The fix is also based on their proposed solution. The issue is that `refs/pull/{pr_number}/head` points to the latest commit of a PR and so it could be different than the commit that was reviewed when the try label was applied. The fix is to use the exact commit sha at the point when the try job is triggered, which is available in the `github` context as `github.event.pull_request.head.sha`. [1]: https://github.com/servo/servo/security/advisories/GHSA-fxqr-xgh8-3577 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Aviv Keller <38299977+RedYetiDev@users.noreply.github.com> * DevTools: Replace camel case variable names (#32726) * refactor: rename to snake case * refactor: more renaming * chore: format * chore: clean * layout: Improve layout of table captions (#32695) - Instead of treating captions as a `BlockFormattingContext`, treat it as a `NonReplacedFormattingContext`, which allows reusing flow layout for captions -- fixing some issues with sizing. - Pass in the proper size of the containing block when laying out, fixing margin calculation. - Follow the unspecified rules about how various size properties on captions affect their size. - Improve linebreaking around atomics, which is tested by caption-related tests. This fixes intrinsic size calculation regarding soft wrap opportunities around atomic and also makes the code making these actual soft wrap opportunities a bit better. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com> * android/ohos: fonts: Ignore ascii case when searching for font family (#32725) The input for this function commonly comes from a `LowercaseString`, while our actual font family name has cases. Since font family lookup should be case-neutral, we do a compare ignoring the ascii case. I'm not too familiar with the CSS standard so I'm not 100% sure if this is sufficient, or if we need to use a different method to compare strings for arbitrary non-ascii font names. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Remove unused ToWebRender implementation (#32729) * Avoid unnecessary clones for URLs (#32694) * fonts: Add support for generic font families and font size configuration (#32673) This adds support for generic font families in Servo and allows for configuration of them as well as their default font sizes. One interesting fix here is that now monospace default to 13px, like it does in other browsers. In addition to that, this exposes a new interface in Stylo which allows setting a default style. This is quite useful for fonts, but also for other kinds of default style settings -- like text zoom. Fixes #8371. Fixes #14773. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com> * build(deps): bump gilrs from 0.10.7 to 0.10.8 (#32734) Bumps [gilrs](https://gitlab.com/gilrs-project/gilrs) from 0.10.7 to 0.10.8. - [Commits](https://gitlab.com/gilrs-project/gilrs/compare/v0.10.7...v0.10.8) --- updated-dependencies: - dependency-name: gilrs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump serde from 1.0.203 to 1.0.204 (#32735) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.203 to 1.0.204. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.203...v1.0.204) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump syn from 2.0.68 to 2.0.69 (#32738) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.68 to 2.0.69. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.68...2.0.69) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump cc from 1.0.104 to 1.0.106 (#32739) Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.0.104 to 1.0.106. - [Release notes](https://github.com/rust-lang/cc-rs/releases) - [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.104...cc-v1.0.106) --- updated-dependencies: - dependency-name: cc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump gilrs-core from 0.5.12 to 0.5.13 (#32733) Bumps [gilrs-core](https://gitlab.com/gilrs-project/gilrs) from 0.5.12 to 0.5.13. - [Commits](https://gitlab.com/gilrs-project/gilrs/compare/gilrs-core-v0.5.12...gilrs-core-v0.5.13) --- updated-dependencies: - dependency-name: gilrs-core dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump clipboard-win from 5.3.1 to 5.4.0 (#32736) Bumps [clipboard-win](https://github.com/DoumanAsh/clipboard-win) from 5.3.1 to 5.4.0. - [Commits](https://github.com/DoumanAsh/clipboard-win/commits) --- updated-dependencies: - dependency-name: clipboard-win dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump target-lexicon from 0.12.14 to 0.12.15 (#32737) Bumps [target-lexicon](https://github.com/bytecodealliance/target-lexicon) from 0.12.14 to 0.12.15. - [Commits](https://github.com/bytecodealliance/target-lexicon/compare/v0.12.14...v0.12.15) --- updated-dependencies: - dependency-name: target-lexicon dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix more clippy (#32740) * Remove media element state changes triggered by network responses (#32643) * Do not change media element ready state when network response is complete. * Do not fire multiple error events for the same media content. * Inform media backend when media response is complete. * Continue delaying the load event when a complete media response is received. * Only mark a media response as complete when the response is the active one. * Update expectations for imagebitmap tests using video element. * Update fetch ORB video test expectations. * Update media CSS selector test expectation for non-implemented feature. * Update expectations for media element tests that now work. * Updat expected result for failing reftest. * Update expected failure for test that loads an audio file in a video element. * Update media test expectation for unimplemented track feature. * Do not process media element ready state changes that are unchanged. * Reset media element ready state to Current when playback finishes. * Set media element ready state to Enough when appropriate player event is received. * Update test expectations. * Update in-tree docs to point to the new book (#32743) * Update in-tree docs to point to the new book * Revive build setup section in README as quickstart guide * Apply feedback about titles * DevTools: Display console messages and errors (#32727) * feat: add streams to browsing context * feat: console now works! * feat: order console messages * feat: add streams to new browsing contexts * fix: apply suggestions Co-authored-by: Martin Robinson <mrobinson@igalia.com> --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com> * use au in inline (#32728) Signed-off-by: atbrakhi <atbrakhi@igalia.com> * build(deps): bump uuid from 1.9.1 to 1.10.0 (#32751) Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.9.1 to 1.10.0. - [Release notes](https://github.com/uuid-rs/uuid/releases) - [Commits](https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0) --- updated-dependencies: - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove unused implementation (#32754) Signed-off-by: atbrakhi <atbrakhi@igalia.com> * build(deps): bump darling from 0.20.9 to 0.20.10 (#32747) Bumps [darling](https://github.com/TedDriggs/darling) from 0.20.9 to 0.20.10. - [Release notes](https://github.com/TedDriggs/darling/releases) - [Changelog](https://github.com/TedDriggs/darling/blob/master/CHANGELOG.md) - [Commits](https://github.com/TedDriggs/darling/commits/v0.20.10) --- updated-dependencies: - dependency-name: darling dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump hyper from 0.14.29 to 0.14.30 (#32750) Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.29 to 0.14.30. - [Release notes](https://github.com/hyperium/hyper/releases) - [Changelog](https://github.com/hyperium/hyper/blob/v0.14.30/CHANGELOG.md) - [Commits](https://github.com/hyperium/hyper/compare/v0.14.29...v0.14.30) --- updated-dependencies: - dependency-name: hyper dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump vergen from 8.3.1 to 8.3.2 (#32748) Bumps [vergen](https://github.com/rustyhorde/vergen) from 8.3.1 to 8.3.2. - [Release notes](https://github.com/rustyhorde/vergen/releases) - [Commits](https://github.com/rustyhorde/vergen/commits) --- updated-dependencies: - dependency-name: vergen dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump syn from 2.0.69 to 2.0.70 (#32749) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.69 to 2.0.70. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.69...2.0.70) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump cc from 1.0.106 to 1.1.0 (#32746) Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.0.106 to 1.1.0. - [Release notes](https://github.com/rust-lang/cc-rs/releases) - [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.106...cc-v1.1.0) --- updated-dependencies: - dependency-name: cc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * shell: set `no-wgl` flag in servoshell instead (#32753) * Set no-wgl flag in servoshell instead Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> * Remove unused comment Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> --------- Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> * script: Use the new C string literal in the DOM bindings (#32741) * simple conversion to cstrings using as_ptr() Signed-off-by: Bum Kim <bumcrystlbum@gmail.com> * replaced byte strings with c strings using new helper functions Signed-off-by: Bum Kim <bumcrystlbum@gmail.com> * changed &[u8] type parameters to &CStr Signed-off-by: Bum Kim <bumcrystlbum@gmail.com> --------- Signed-off-by: Bum Kim <bumcrystlbum@gmail.com> * canvas: Remove as much usage of `font-kit` as possible (#32758) Do font selection using Servo's font backend, which is shared with the rest of layout. In addition, delay the creation of the `font-kit` font until just before rendering with `raqote`. The idea is that when `raqote` is no longer used, we can drop the `font-kit` dependency. This change has the side-effect of fixing text rendering in canvas, adding support for font fallback in canvas, and also correcting a bug in font selection with size overrides. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com> * Move legacy layout behind a feature flag (#32759) * Move legacy layout behind a feature flag For now the new feature flag would still be enabled by default, but disabling the `layout_2013` feature, gives the following binary size improvements for servoshell on Linux: - in debug mode from 1278MB -> 1201 MB - in release mode from 144MB -> 140MB - in production mode from 108MB -> 106MB Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Update components/servo/lib.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com> --------- Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com> * ohos: Add default log filter (#32760) Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * script: `document.visibilityState` and `document.hidden` (#32635) * Squashed commit of the following: commit 5e0ea9996cb0d8137c3e1cd04487a1065b61289d Author: Wu Yu Wei <yuweiwu@pm.me> Date: Thu Jul 11 13:37:51 2024 +0900 Move lint to new_inherited Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> commit a8cbfb1eef2650d153ef41c232d9e80e1118fc37 Merge: b819968f3e 7a33f8f008 Author: Wu Yu Wei <yuweiwu@pm.me> Date: Thu Jul 11 13:32:18 2024 +0900 Merge branch 'main' into visibility commit b819968f3eaa361c8a2cf3af679943ae2065ab32 Merge: eda2ec4c22 1c6b74e1f1 Author: Wu Wayne <yuweiwu@pm.me> Date: Tue Jul 9 14:26:43 2024 +0900 Merge branch 'main' into visibility commit eda2ec4c225c63236d6851ea525455cad8874ce5 Author: Wu Wayne <yuweiwu@pm.me> Date: Thu Jul 4 14:25:05 2024 +0900 Include page-visibility tests to wpt commit 9da7b4ee39b141e59e4a21a64445c4b08499463f Author: Wu Yu Wei <yuweiwu@pm.me> Date: Thu Jul 4 12:50:40 2024 +0900 Add TODO comment for future update commit 11f55fea3ead0c8fa07f16557a63cc6a77c15c3f Author: Wu Yu Wei <yuweiwu@pm.me> Date: Wed Jul 3 11:01:51 2024 +0900 Add spaces between steps commit 408c3e51f25867e85f894cd77a6355bc32f2aa00 Author: Wu Wayne <yuweiwu@pm.me> Date: Tue Jul 2 18:33:53 2024 +0900 Update MANIFEST.json commit 679fe4ffdd28554b11b4018395fac22a08ccbc34 Author: Wu Wayne <yuweiwu@pm.me> Date: Tue Jul 2 18:27:02 2024 +0900 Add VisibilityStateEntry to mozilla/interfaces.html commit 4a456a2b4a473fa795274edf56ecf660616f90eb Author: Wu Wayne <yuweiwu@pm.me> Date: Tue Jul 2 14:28:11 2024 +0900 Update meta results commit cd191447ff61de392526e00c13f765c2df7a269e Merge: 7ff480a698 ad01342f00 Author: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me> Date: Tue Jul 2 13:47:49 2024 +0900 Merge branch 'main' into visibility commit 7ff480a698413ac5526edfb1b8731373bb9d04ae Author: Wu Yu Wei <yuweiwu@pm.me> Date: Tue Jul 2 13:12:44 2024 +0900 Update description text of update_visibility_state commit 0e496b7bce4fd5476a1919737b00e8f0c9e2fdc8 Author: Wu Yu Wei <yuweiwu@pm.me> Date: Tue Jul 2 12:59:40 2024 +0900 Add specification link to VisibilityStateEntry methods commit 3e4a061450621bd17f19ff81099dd4daaeaea478 Author: Wu Yu Wei <yuweiwu@pm.me> Date: Tue Jul 2 12:31:53 2024 +0900 Add descriptive text to each step commit 8bbdfcae97db5002b09e5f5ecec6ae80d080dc95 Author: Wu Wayne <yuweiwu@pm.me> Date: Fri Jun 28 19:15:34 2024 +0900 mach fmt commit dc1c7a4aec6aba56af7afcfee6feadbee242a643 Author: Wu Wayne <yuweiwu@pm.me> Date: Fri Jun 28 19:01:00 2024 +0900 Add update_visibility_state commit 6aa18143319044dc084a9585ab064cd853bccc21 Author: Wu Wayne <yuweiwu@pm.me> Date: Fri Jun 28 16:06:25 2024 +0900 Add VisibilityStateEntry.webidl commit 638ae3cd563004334d35cc3fbdc1f918d29833d0 Author: Wu Yu Wei <yuweiwu@pm.me> Date: Fri Jun 28 13:39:29 2024 +0900 Add visibilityState and hidden in Document.webidl Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> * Move creation into reflect call Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> --------- Signed-off-by: Wu Yu Wei <yuweiwu@pm.me> * webgpu: Divide message code into separate files (#32700) * Spilt webgpu ipc messages even more * Add license to mod.rs * file docs * build(deps): bump cc from 1.1.0 to 1.1.1 (#32765) Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.1.0 to 1.1.1. - [Release notes](https://github.com/rust-lang/cc-rs/releases) - [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.0...cc-v1.1.1) --- updated-dependencies: - dependency-name: cc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump syn from 2.0.70 to 2.0.71 (#32767) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.70 to 2.0.71. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.70...2.0.71) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump thiserror from 1.0.61 to 1.0.62 (#32768) Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.61 to 1.0.62. - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.61...1.0.62) --- updated-dependencies: - dependency-name: thiserror dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump duplicated nix to 0.29 (#32764) Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Use mallinfo only on target_env=gnu (#32772) mallinfo isn't available on musl, causing linking issues on build; make sure related functions are built only for GNU Libc Signed-off-by: Patrycja Rosa <git@ptrcnull.me> * Update web-platform-tests to revision b'f3dd9cba239a9655951ee62ec4dafc8fe37df2c5' (#32774) Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org> * Auto merge all WPT and dependabot PRs (#32775) * Auto merge all WPT and dependabot PRs Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Adjust name of action Signed-off-by: Martin Robinson <mrobinson@igalia.com> --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com> * build(deps): bump cc from 1.1.1 to 1.1.5 (#32778) Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.1.1 to 1.1.5. - [Release notes](https://github.com/rust-lang/cc-rs/releases) - [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.1...cc-v1.1.5) --- updated-dependencies: - dependency-name: cc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bytes from 1.6.0 to 1.6.1 (#32779) Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.6.0 to 1.6.1. - [Release notes](https://github.com/tokio-rs/bytes/releases) - [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/bytes/compare/v1.6.0...v1.6.1) --- updated-dependencies: - dependency-name: bytes dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump document-features from 0.2.8 to 0.2.10 (#32780) Bumps [document-features](https://github.com/slint-ui/document-features) from 0.2.8 to 0.2.10. - [Release notes](https://github.com/slint-ui/document-features/releases) - [Changelog](https://github.com/slint-ui/…
Add a skeleton implementation of FontFaceSet interface with support
for resolving the
document.fonts.ready
Promise when the loading ofweb fonts is completed.
This change exposes new failures in the web platform tests.
These were ERROR before the change because
document.fonts.ready
causeda
ReferenceError
causing the tests to be aborted and they now FAIL:These were TIMEOUT before the change because
document.fonts.ready
wasa ReferenceError and the tests were asynchronous (reftest-wait). These now
FAIL because the assertions are now executed after fonts are loaded:
These tests now PASS due to this patch:
This test has subtests that PASS intermittenttly:
This test seems to have different results on the CI than locally (could
be due to available fonts):
These tests are new TIMEOUTS that used to FAIL because
documents.fonts.ready
was a ReferenceError:The failure in
/resize-observer/change-layout-in-error.html
could bedue to an issue in the ResizeObserver implementation that is now exposed
with this change, but this needs more investigation.
Co-authored-by: Martin Robinson mrobinson@igalia.com
Signed-off-by: Mukilan Thiyagarajan mukilan@igalia.com
./mach build -d
does not report any errors./mach test-tidy
does not report any errors