aboutsummaryrefslogtreecommitdiffstats
path: root/components
Commit message (Collapse)AuthorAgeFilesLines
* Stop transitioning properties with a discrete animation type (#30565)Oriol Brufau2023-10-202-0/+16
| | | | | | | | | They are not transitionable: https://drafts.csswg.org/css-transitions-1/#transitionable There are some new failures in background-image-interpolation.html, but I think the test is wrong, because it expects background-image to be transitionable, even though the spec defines it with a discrete animation type.
* Consider trailing_whitespace_advance when calling place_line_among_floats() ↵Oriol Brufau2023-10-201-3/+4
| | | | | | | | | | | | | | | | | | | | (#30586) After placing a float, FloatBox's layout_into_line_items() was calling place_line_among_floats() with ifc.current_line.inline_position as the width of needed by the contents of the line. The problem is that this amount includes the trailing whitespace advance and thus it could seem that the in-flow contents wouldn't fit next to the float. That's not the case, since collapsible whitespace at the end of the line is removed, and preserved whitespace hangs. So this patch subtracts ifc.current_line.trailing_whitespace_advance when calling place_line_among_floats(), like it was already happening when computing the available_inline_size. Fixes #30561
* Temporarily convert more cfg(debug_assertions) crashes to warnings (#30590)Delan Azabani2023-10-202-1/+36
|
* Don't panic when no font is found for a TextRun (#30581)Martin Robinson2023-10-192-24/+56
| | | | Instead of panicking when no found is found for a TextRun, instead print a warning. This prevents panics on pages with very large font sizes.
* Anonymous boxes that wrap inlines should not inherit overflow (#30579)Martin Robinson2023-10-195-69/+78
| | | | | | | | | | | | | | In legacy layout, anonymous text wrappers were inheriting the `overflow` and `text-overflow` properties. This results in the creation of extra clipping for these anonymous wrappers which could clip away floats. We will likely implement `text-overflow` differently in non-legacy layout. This change marks all legacy layout pseudo elements as "legacy" and also adds a new pseudo element for non-legacy layout that does not inherit `overflow`. Fixes #30562. Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Use `IpcSharedMemory` for `Canvas2dMsg::DrawImage` (#30544)Ennui Langeweile2023-10-184-25/+37
| | | | | | | | | * Use `IpcSharedMemory` for `Canvas2DMsg::DrawImage` * Fix `Canvas2dMsg::DrawEmptyImage` crashes * Do not premultiply canvas image data * Move `image_data` back to its original position
* Temporarily convert existing cfg(debug_assertions) crashes to warnings (#30578)Delan Azabani2023-10-189-16/+53
|
* Fix running servoshell and unit tests through a symlink (#30537)Delan Azabani2023-10-181-41/+61
| | | | | | | | | | | * Fix running servoshell and unit tests through a symlink * make filename an inherent method of Resource * fix mach test-unit behaviour through symlink * unit tests only need current_dir and ancestors * fix macOS package smoketest breakage
* Improve line box block size calculation (#30519)Martin Robinson2023-10-181-76/+162
| | | | | | | | | | | | | | | | | | | | | | | | | Improve the calculation of the block size of line boxes and all their component elements. Even empty spans can increase the size of the line based on their font-size. Elements that have a line-height should increase the block size of the line, but that setting should not effect their own size. In addition to the new passes there are some new failures Failing because a progression exposes the real issue these tests are testing: - css/css-color/t32-opacity-offscreen-multiple-boxes-1-c.xht - css/css-color/t32-opacity-offscreen-multiple-boxes-2-c.xht Likely failing because of vertical-align and another sizing issue: - css/css-transforms/perspective-untransformable-no-stacking-context.html Failing because a progression reveals another failure: - html/rendering/non-replaced-elements/hidden-elements.html Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Allow raising FloatContext ceiling after processing box with overflow (#30539)Martin Robinson2023-10-173-12/+35
| | | | | | | | | | | | | | | When a box has overflow, any floats placed in that box will lower the float ceiling into the overflow. If no float is placed in the box though, the ceiling should be the block position where the overflow starts. We already know where this is, because we might be passing a negative value for the new block position after processing a box (content_size - actual_size would be negative). This negative value never raises the ceiling though since a maximum is used. In the case that there is overflow, this change allows raising the ceiling, but never passed the lowest float. This necessitates keeping two values for the ceiling: one for floats and one for non-floats. Fixes #30304.
* Add documentation to a few pref configs (#30548)Ngo Iok Ui (Wu Yu Wei)2023-10-161-0/+6
| | | | | | | | | * Add documentation to a few pref configs * Update components/config/prefs.rs --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Fix filter clipping caused by `overflow: hidden` (#30517)Ennui Langeweile2023-10-091-1/+10
| | | | | | | | | | | * Partially fix filter clipping * Clean up the logic * Update components/layout_2020/display_list/stacking_context.rs --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Fix painting order of atomic inline stacking containers (#30458)Delan Azabani2023-10-065-148/+371
| | | | | | | | | | | | | | | | | | | | | | | * Sort stacking contexts and stacking containers by painting order * fix stealing of stacking containers; fix interleaving with fragments * actually positioned stacking containers should be stolen too * update expectations and clean up panic changes * rework naming and docs * rename s_c_a_p_s_c to real_s_c_a_p_s_c; fix docs * rename InlineStackingContainer to AtomicInlineStackingContainer * rework debug logging to use PrintTree * clean up docs and PrintTree output * don't panic unless cfg!(debug_assertions) is true * update expectations
* Enable streams feature in mozjs (#30503)Samson2023-10-061-1/+1
| | | | | | | * Update mozjs * Enable streams feature * Switch to servo/mozjs
* Rename messages forwarded from the constellation to the compositor (#30496)Martin Robinson2023-10-056-66/+110
| | | | | | The constellation forwards messages from other tasks to the compositor. Mainly, these are passed to WebRender. This change updates the names of these messages so it is clearer where they are coming from and where they are going.
* Only access hit test items for the current epoch in the compositor (#30491)Martin Robinson2023-10-044-3/+35
| | | | | | | | | | | | | | | When display lists update quickly, a hit test result might be returned for a previous display list / list of hit test items. When that happens, ignore the hit test result. This fixes a crash, but there might be situations where we can do something better, such as wait for display list processing to finish before performing the hit test. A future change might do this for events like mouse clicks and touch events that should never be thrown away. Ultimately, the best thing is likely moving hit testing back to layout or script so a valid hit test can always be performed against the current DOM. Fixes #29796.
* Add shell.background-color.rgba to prefs (#30488)Ngo Iok Ui (Wu Yu Wei)2023-10-046-37/+106
| | | | | | | * Add shell.transparent-background.enabled to prefs * Rename config to background_color * Rename to background-color and.rgba add PrefValue::Array variant
* Implement support for the `drop-shadow` filter (#30439)Ennui Langeweile2023-10-049-27/+47
| | | | | | | | | | | | | | | | | | * Implement support for `drop-shadow` * Clean up remnant from early attempts * Fix misleading comments on GenericSimpleShadow If Servo-specific `style` changes will need to be upstreamed anyway, I might as well fix a thing that had thrown me off! * Revert "Fix misleading comments on GenericSimpleShadow" This reverts commit cdc810b826ac082041adc212c24649ee3b86ca0a. * Clean up an import * Update test expectations * Fix missing expectation on Layout 2013
* Support Namespace const in webidl (#30492)Samson2023-10-045-8/+29
| | | | | * Add TestNS with const * Implement namespace const in codegen
* Fix macOS's sameple isn't used in background_hang_monitor (#30490)Ngo Iok Ui (Wu Yu Wei)2023-10-041-1/+4
|
* fix handle_wgpu_msg crash (#30479)Samson2023-10-031-0/+1
| | | | | | | * Enter realm before handle_wgpu_msg fix https://github.com/servo/servo/issues/30419 * Update expectations
* Fix pinch zoom and enable it for TouchpadMagnify events (#30459)Martin Robinson2023-10-032-111/+143
| | | | | | | | | Pinch zoom was broken because pinch zoom events were triggered at -1, -1 in the compositor. This change: 1. Differentiates between magnify and scroll events in the compositor to remove the question of where to trigger them. 2. Converts winit TouchpadMagnify events into pinch zoom events so that this works properly on MacOS.
* Further changes required by ServoOriol Brufau2023-10-021-0/+14
|
* style: Implement CSS @supports font-format(...) and font-tech(...) functionsJonathan Kew2023-10-022-16/+55
| | | | | | | | These are gated by the same layout.css.font-tech.enabled pref as the closely-related `tech()` function for the @font-face src descriptor; once the spec questions are settled, we should enable them all together. Differential Revision: https://phabricator.services.mozilla.com/D155359
* Further changes required by ServoOriol Brufau2023-10-021-1/+8
|
* style: Put the @font-face src tech() function behind a pref, enabled only on ↵Jonathan Kew2023-10-021-1/+1
| | | | | | | | | | | | Nightly for now There are a couple of current issues/discussions that may lead to a change in the set of supported keywords, so we may want to hold back a little on actually shipping this. - In https://github.com/w3c/IFT/pull/113, the WebFonts WG proposes several new incremental-* keywords (and maybe implies dropping the currently-defined incremental?) - In https://github.com/w3c/csswg-drafts/issues/7633, I just proposed renaming the feature-* keywords to features-* (plural) for better readability; I'd like to see a decision on that before we ship this to release. Differential Revision: https://phabricator.services.mozilla.com/D155458
* style: When serializing background shorthand skip initial values and order ↵Connor Pearson2023-10-021-17/+53
| | | | | | values according to grammar Differential Revision: https://phabricator.services.mozilla.com/D155077
* Further changes required by ServoOriol Brufau2023-10-021-9/+8
|
* style: Add basic support for nan / infinity in calc()Emilio Cobos Álvarez2023-10-021-11/+17
| | | | | | | | | | | | | | | | | | | Fix some tests to: * Not assume `double` precision. * Account for recent working group resolution with regards to NaN: https://github.com/w3c/csswg-drafts/issues/7067#issuecomment-1111211295 Not sure I caught all, but normalizing to 0 was already our existing behavior. This feature needs more work before it can be enabled more generally, so make it nightly-only, for now. Also, it's unclear per spec what the serialization for infinity*1s or so should be. Right now we serialize to <very-big-number>s, which seems reasonable, but some tests (but not others!) expect different behavior. I left those untouched for now. Differential Revision: https://phabricator.services.mozilla.com/D154883
* style: Implement atan2(), and enable calc() trigonometric functions by ↵Emilio Cobos Álvarez2023-10-023-117/+180
| | | | | | | | | | | default on nightly We now have test coverage, so let's do this. The remaining failures are just about infinity/nan, which is a completely different feature. Differential Revision: https://phabricator.services.mozilla.com/D154831
* Further changes required by ServoOriol Brufau2023-10-021-0/+1
|
* style: Add support for the @font-face src descriptor's tech() functionJonathan Kew2023-10-021-4/+124
| | | | | | WPT tests to be added in a following patch. Differential Revision: https://phabricator.services.mozilla.com/D154399
* style: Use the style-system format hint directly in gfx, instead of mapping ↵Jonathan Kew2023-10-021-0/+5
| | | | | | | | | | | to a separate internal enum Now that the style system has keywords for this, we don't need to define them in gfx but can just use the enum directly. (No functional change, just code simplification.) Depends on D154237 Differential Revision: https://phabricator.services.mozilla.com/D154238
* Further changes required by ServoOriol Brufau2023-10-021-2/+16
|
* style: Accept keywords in addition to strings in the @font-face format() ↵Jonathan Kew2023-10-021-4/+33
| | | | | | | | | | hint function The CSS Fonts 4 spec requires this, and Safari (at least) has long supported it. Depends on D154277 Differential Revision: https://phabricator.services.mozilla.com/D154237
* style: Do not allow a list of strings in the @font-face src descriptor's ↵Jonathan Kew2023-10-021-19/+10
| | | | | | | | | | | | format() function, only a single format string This aligns with CSS Fonts 4 (rather than Fonts 3) and with behavior in other browsers; I don't expect any significant breakage, given that specifying multiple format strings was never supported in other engines AFAIK, and never served any useful purpose. Depends on D154234 Differential Revision: https://phabricator.services.mozilla.com/D154235
* style: Don't use -moz-bool-pref for flexbox -moz-box emulationEmilio Cobos Álvarez2023-10-021-1/+2
| | | | | | | Use a bool pref media query which allows dynamic changes to get reflected instantly. Differential Revision: https://phabricator.services.mozilla.com/D154449
* style: Add a chrome-only -moz-box-layout: legacy | flex, and use that to ↵Emilio Cobos Álvarez2023-10-021-0/+10
| | | | | | implement flexbox emulation Differential Revision: https://phabricator.services.mozilla.com/D154153
* style: Remove -moz-* display values enabled-in-content prefsEmilio Cobos Álvarez2023-10-021-12/+3
| | | | | | | We have unshipped these since forever, no point in keeping the pref around. Move the relevant tests to chrome ref/mochitests. Differential Revision: https://phabricator.services.mozilla.com/D154152
* style: Remove aspect-ratio preferenceBoris Chiou2023-10-021-1/+0
| | | | | | | We shipped this in Firefox 89, one year ago. It should be okay to drop this preference now. Differential Revision: https://phabricator.services.mozilla.com/D153680
* style: Make color-scheme affect Windows' non-native menusEmilio Cobos Álvarez2023-10-022-12/+5
| | | | | | | | | | | | This matches what Linux and macOS do, and that allows the fix for bug 1782623 to work on Windows for unstyled selects. This also simplifies the CSS (though it adds a new system color which is a bit more annoying). I filed https://github.com/w3c/csswg-drafts/issues/7561 to propose adding a more generic way to do this in the future (not just for Firefox). Differential Revision: https://phabricator.services.mozilla.com/D153549
* style: Properly fail to serialize grid shorthand when not roundtrippingEmilio Cobos Álvarez2023-10-021-29/+36
| | | | | | | Other browsers also don't roundtrip properly, but they fail less severely. Differential Revision: https://phabricator.services.mozilla.com/D152794
* style: Remove nsTimingFunction and ComputedTimingFunctionEmilio Cobos Álvarez2023-10-021-8/+4
| | | | | | | They're simple wrappers of StyleComputedTimingFunction so we can remove them. Differential Revision: https://phabricator.services.mozilla.com/D152700
* style: `linear(...)` easing: Implement right-continuous behaviour on ↵David Shin2023-10-021-15/+18
| | | | | | discontinuities Differential Revision: https://phabricator.services.mozilla.com/D152078
* style: Ensure we cancel transitions without the need of an extra flushEmilio Cobos Álvarez2023-10-022-1/+7
| | | | | | | | | | | | | | | | | When something switches to display: none, right now we rely on StopAnimationsForElementsWithoutFrames(), which posts a restyle and the previous ProcessPendingRestyles call was papering over it. For other elements in the display none subtree it doesn't matter, because we don't keep their styles around, but for the display: none element themselves we do need to update transitions on time. We could, possibly more generally, remove StopAnimationsForElementsWithoutFrames() altogether and cancel animations when we clear style data, perhaps... But that's probably worth a follow-up. Differential Revision: https://phabricator.services.mozilla.com/D151600
* style: Propagate flags from original property to aliasesEmilio Cobos Álvarez2023-10-021-0/+1
| | | | | | | | | | | | Even we don't have internal aliases right now (and that seems a bit silly) we do have pref-gated aliases. An alias ID passed to IsEnabled with the wrong EnabledState would misbehave, assert, and crash. Though we don't have such callers in the tree because InspectorUtils passes only arguments that make us not look at the flags, it seems more reliable this way. Differential Revision: https://phabricator.services.mozilla.com/D151594
* Further changes required by ServoOriol Brufau2023-10-021-1/+2
|
* style: Support animation-composition in keyframe at rulesBoris Chiou2023-10-022-34/+85
| | | | | | | | | | | | | | So we can specify the keyframe-specific composite operation. However, these is a spec issue about the default composite for CSS Animations: https://github.com/w3c/csswg-drafts/issues/7476. I choose to use auto as the default composite for missing keyframes to match the definition in web-animations-1 because I think this makes more sense: > If the keyframe-specific composite operation for a keyframe is not set, the > composite operation specified for the keyframe effect as a whole is used for > values specified in that keyframe. Differential Revision: https://phabricator.services.mozilla.com/D150808
* style: Implement CSS animation-composition longhand in style systemBoris Chiou2023-10-022-1/+19
| | | | | | | | | | | | This patch introduces animation-composition longhand but we don't accept it in @keyframe rule for now. I will support this for @keyframe in the patch series. Besides, the shorthand of animation doesn't include animation-composition. The spec issue is: https://github.com/w3c/csswg-drafts/issues/6946. We could fix the shorthand once this spec issue gets updated. Differential Revision: https://phabricator.services.mozilla.com/D150299
* style: Clean up a bit traversal cullingEmilio Cobos Álvarez2023-10-021-26/+4
| | | | Differential Revision: https://phabricator.services.mozilla.com/D151544