From MozillaWiki
Jump to: navigation, search

Firefox 72 Platform Layout Release Notes

Noteworthy Changes


  • Ship support for CSS shadow parts (bug 1559074)
  • Ship support for individual transform properties scale, rotate, translate (bug 1424900)
  • Ship support for motion path animations (bug 1582554)
  • Support the 'letter-spacing' and 'word-spacing' properties in SVG (bug 371787)


  • Fix issue where printing content with fieldsets truncates output (bug 471015)

All Bugs Fixed

CSS Parsing and Computation

bug 969322 :-moz-window-inactive triggers on window drag

bug 1484780 Cache the gfx::Path built from StyleSVGPath to avoid rebuilding it too many times

bug 1507674 Hit MOZ_CRASH(... has still dirty bit true or animation-only dirty bit false) at servo/ports/geckolib/

bug 1559074 Enable shadow parts for release and beta channels.

bug 1565116 Intermittent TEST-UNEXPECTED-PASS | /css/css-ui/appearance-searchfield-001.html | Testing http://web-platform.test:8000/css/css-ui/appearance-searchfield-001.html == http://web-platform.test:8000/css/css-ui/appearance-auto-ref.html

bug 1572507 Intermittent TEST-UNEXPECTED-PASS | /css/css-position/z-index-blend-will-change-overlapping-layers.html | Testing http://web-platform.test:8000/css/css-position/z-index-blend-will-change-overlapping-layers.html == http://web-platform.test:8000/css/css-pos

bug 1586444 Assertion failure: cachedStyles[i]->EqualForCachedAnonymousContentStyle(*cs) (cached anonymous content styles should be identical to those we would compute normally), at src/layout/base/nsCSSFrameConstructor.cpp:4026

bug 1588431 Incompatible style attribute behavior in ::part() with Chromium

bug 1589766 Experiment with implementing zoom as a transform + transform-origin shorthand.

bug 1590203 Handle more efficiently changes from overflow: visible to -moz-hidden-unscrollable, and from overflow: scroll to hidden.

bug 1590357 Bug 1590203 missed to update overflow areas.

bug 1590722 Intermittent layout/style/test/test_area_url_cursor.html | [SimpleTest.finish()] waitForFocus() was called a different number of times from the number of callbacks run. Maybe the test terminated prematurely -- be sure to use SimpleTest

bug 1591297 Remove miscellaneous XBL code in layout.

bug 1591577 Intermittent layout/style/test/test_area_url_cursor.html | Test timed out.

bug 1591987 ElementWrapper::is_link is broken.

bug 1592189 Remove internal SpecialColorKeyword enum in favor of SystemColor

bug 1592972 Intermittent /css/vendor-imports/mozilla/mozilla-central-reftests/text3/segment-break-transformation-removable-3.html | Testing http://web-platform.test:8000/css/vendor-imports/mozilla/mozilla-central-reftests/text3/segment-break-transformation-removable

bug 1593009 CSS "zoom: 0" behaves differently from other browsers

bug 1593642 Sync servo stuff.

bug 1593951 Use MaybeUninit instead of mem::zeroed() in style struct constructors / copy-constructor.

bug 1594275 Parse the exportparts attribute.

bug 1594946 [css-transforms-2] For the individual transform properties if they spec a value that can be expressed as 2d we treat as 2d and serialize accordingly

bug 1596712 6.61 - 35.21% perf_reftest (linux64-shippable, linux64-shippable-qr, macosx1014-64-shippable, windows10-64-shippable, windows10-64-shippable-qr, windows7-32-shippable) regression on push 06945900e072481a3ecacf3f75a1ea66fc422176 (Thu November 14 2019)

bug 1596768 Remove more GetBindingParent usage.

bug 1597160 Remove nsChangeHint_UpdateWidgetProperties.

bug 1597588 Make rust's Atom non-zero.

bug 1597639 [css-grid] grid-template shouldn't accept `"string" [foo] [bar]` as valid syntax

bug 1597642 [css-transforms] Have scale function and scale property accept percentage value

bug 1597700 Remove unnecessary #define in nsStyleConsts.h

bug 1597741 use Enum class for NS_STYLE_SHAPE_RENDERING instead of #define

bug 1597881 convert NS_STYLE_STROKE_LINECAP_* to an enum class in nsStyleConsts.h

bug 1597884 [css-grid] grid/grid-template serialization can be shorter

bug 1597893 convert NS_STYLE_WINDOW_SHADOW_* to an enum class in nsStyleConsts.h

bug 1597979 convert NS_STYLE_TEXT_ANCHOR_* to an enum class in nsStyleConsts.h

bug 1598234 [css-grid][cssom] 'grid-area'/'grid-column'/'grid-row' shorthands don't serialize to shortest form

bug 1598348 convert NS_STYLE_OBJECT_FIT_* to an enum class in nsStyleConsts.h

bug 1598528 convert NS_STYLE_TEXT_ORIENTATION_* to an enum class in nsStyleConsts.h

bug 1598539 convert NS_STYLE_IME_MODE_* to an enum class in nsStyleConsts.h

bug 1598932 grid-area-valid.html accepts invalid serialized values

bug 1599115 Simplify some code now that lifetimes are non-lexical.

bug 1599161 Rename nsLayoutStylesheetCache

bug 1599286 Assertion failure: cachedStyles[i]->EqualForCachedAnonymousContentStyle(*cs) (cached anonymous content styles should be identical to those we would compute normally), at src/layout/base/nsCSSFrameConstructor.cpp:4026

bug 1599324 Popup doesn't appear in the center, can't scroll to click the buttons

bug 1599876 Make some string handling in the bindings a bit less terrible.

bug 1600155 Make @import rules less weird.

bug 1600376 Remove useless namespace qualifications in layout/style.

bug 1600436 Sync servo stuff.

bug 1600459 Fix an individual transform test

bug 1600476 convert NS_STYLE_TOP_LAYER_* to an enum class in nsStyleConsts.h

bug 1600483 convert NS_STYLE_RUBY_ALIGN_* to an enum class in nsStyleConsts.h

bug 1600484 convert NS_STYLE_TEXT_SIZE_ADJUST_* to an enum class in nsStyleConsts.h

bug 1600486 Remove Redundant #define NS_STYLE_IMAGE_ORIENTATION in nsStyleConsts.h

CSS Transitions and Animations

bug 1429305 [motion-1] Support compositor animations for motion path

bug 1506746 Make sure we serialize the correct value at 0% or 100% during animation on rotate, translate, and scale

bug 1582554 [motion-1] Ship motion-path

bug 1592787 [motion-1] Check the creation of the stacking context if we don't have offset-path animation and its value is none.

bug 1594960 Assertion failure: HasMotionPathAnimations(aAnimations), at src/gfx/layers/AnimationHelper.cpp:494

bug 1596610 will-change for offset-path should set WillChangeBits::TRANSFORM

DOM: CSS Object Model

bug 1596361 Crash in [@ nsComputedDOMStyle::GetGridTemplateColumnsRows]


bug 1424900 Enable "layout.css.individual-transform.enabled" by default

bug 1559848 Intermittent TEST-UNEXPECTED-NOTRUN | /visual-viewport/viewport-no-resize-event-on-overflow-recalc.html | Resize event not fired at window.visualViewport when content is added - expected PASS

bug 1576946 Implement <stack> using CSS Grid and remove nsStackFrame

bug 1578319 Collect Total Time Spent in Style/Layout Flushes per Tick

bug 1584018 overflow: scroll not working in embedded Code Mirror editor

bug 1584040 Intermittent layout/generic/crashtests/outline-on-frameset.xhtml | assertion count 2 is more than expected 0 assertions

bug 1586144 Use the viewport size including maximum possible dynamic toolbar size to resolve viewport units even if the dynamic toobar is hidden and make ICB size static whatever the dynamic toolbar state is

bug 1586986 Make VisualViewport size behavior match Chrome's

bug 1587127 Ensure HCM backplate doesn't backplate items with visibility:hidden

bug 1588017 Clean up the naming for IntrinsicISizeOffsetData

bug 1590185 Add a paged mode layout to layout debugger

bug 1590273 Remove useless early-outs in nsStyle{Padding,Margin}::CalcDifference

bug 1590278 Cleanup scrollframe virtual / override / final declarations.

bug 1590281 Don't propagate overscroll-behavior from body to viewport.

bug 1590551 Allow nsPresContext::GetNearestWidget to work when the frame doesn't exist

bug 1590639 Fix non-unified build error in several layout subdirectories

bug 1592369 Set [orient], [pack], [dir], and [align] styles with CSS instead of XUL layout JS-properties

bug 1592790 Perma tier 2 svg/smil/anim-clipPath-viewBox.svg == svg/smil/anim-clipPath-viewBox-ref.svg | image comparison, max difference: 7, number of differing pixels: 217

bug 1593442 Intermittent TEST-UNEXPECTED-NOTRUN | /visual-viewport/viewport-no-resize-event-on-overflow-recalc.html | Resize event not fired at window.visualViewport when content is added - expected PASS

bug 1593615 Perma tier2 async-scrolling/perspective-scrolling-1.html | image comparison, max difference: 5, number of differing pixels: 1503 | clipped-mixblendmode-containing-unclipped-stuff.html | image comparison, max difference: 3, number of differing pixels: 849

bug 1594419 Intermittent TEST-UNEXPECTED-NOTRUN | /visual-viewport/viewport-no-resize-event-on-overflow-recalc.html | Resize event not fired at window.visualViewport when content is added - expected PASS

bug 1594937 Remove w3c-css/received/css-multicol reftests

bug 1594949 Assertion failure: gfxPath (Should have a valid cached gfx::Path for offset-path), at src/layout/base/MotionPathUtils.cpp:445

bug 1595103 [css-pseudo] ::first-letter applies to marker text when ::marker has non-normal content

bug 1595682 Intermittent /css/css-contain/contain-size-select-002.html | Testing http://web-platform.test:8000/css/css-contain/contain-size-select-002.html == http://web-platform.test:8000/css/css-contain/reference/contain-size-select-001-ref.html

bug 1596310 ASSERTION: unexpected max block size: 'aBSize >= 0'

bug 1596339 Implement operator<< for logical types in WritingMode.h

bug 1596494 Intermittent GECKO(1719) | Assertion failure: IsRootContentDocumentCrossProcess(), at /builds/worker/workspace/build/src/layout/base/nsPresContext.h:391

bug 1596992 ResizeObserver Memory Leak

bug 1597653 test_bug453650.xhtml uses various unknown properties Ci.<interface>.equals

bug 1598132 Add nsLayoutUtils::GetPrevContinuationOrIBSplitSibling()

bug 1598488 Fix GetWidget() in nsMenuPopupFrame

bug 1598617 Perma [tier2] transform-3d/mask-layer-1.html == transform-3d/mask-layer-ref.html | image comparison, max difference: 8, number of differing pixels: 1

bug 1599294 layout debugger doesn't open from the command line

bug 1599518 Assertion failure: !mResizeObservers.Contains(&aObserver), at src/obj-firefox/dist/include/mozilla/dom/ResizeObserverController.h:77

bug 1600362 Cleanup a bit more IntersectionObserver.

Layout: Block and Inline

bug 1580385 Fix failing writing-mode tests because of propagating WritingMode from <body>

bug 1587645 Remove ScrollFrameHelper::GetFrameForDir()

bug 1588025 ViewportFrame is orthogonal to nsCanvasFrame's mCustomContentContainer when setting vertical writing-mode on <html>

bug 1591546 Add WritingMode::IsPhysicalRTL() and WritingMode::IsBidiRTL()

bug 1595199 container height doesn't recalculate correctly when changing height to 'auto', with 'overflow: hidden'

Layout: Flexbox

bug 1578586 Don't apply percent-height ancestor-resolution quirk to percentages inside of a flex item or grid item

bug 1591925 select element incorrectly allows itself to shrink to a main-size of 0, in a flex container

bug 1596973 Improve FlexContainer's logging facility

bug 1597177 Only mark flex containers as having dirty/interrupted measurements if they're actually interrupted before the measurements are complete

bug 1597348 Purge interrupted flex items' cached measurements during the same frametree-walk that we use to mark their ancestors as dirty

Layout: Form Controls

bug 1590644 OPTION's font-family is ignored when the parent SELECT has the same font-family

bug 1593366 Select popup shows up on keydown even when event is default prevented.

Layout: Generated Content, Lists, and Counters

bug 1588760 Move css-lists reftests into WPT

bug 1590426 Cleanup signatures in nsImageFrame / nsImageControlFrame.

Layout: Grid

bug 1593796 [css-grid] Wrong sizes for implicit tracks when multiple values are provided (grid-auto-columns/rows)

Layout: Images, Video, and HTML Frames

bug 1589955 Javascript image change cause stretching glitch before CSS is honored

Layout: Scrolling and Overflow

bug 1592474 Add some heuristics to disable scroll anchoring in pathological cases.

Layout: Tables

bug 1591219 Chrome and Firefox differ in visual ordering of certain table cells

Layout: Text and Fonts

bug 1534236 Intermittent /css/css-fonts/font-display/font-display-feature-policy-02.tentative.html | Testing http://web-platform.test:8000/css/css-fonts/font-display/font-display-feature-policy-02.tentative.html

bug 1554819 Crash in fontlist::Pointer::ToPtr

bug 1581822 Uneven weights and fonts displayed for Chinese pages on Firefox desktop

bug 1586218 Bad default font selection for Mongolian script on macOS

bug 1587385 downloadable font: download timed out

bug 1588407 The Arial Black font is displayed incorrectly for two minutes when the platform font list is reinitialized

bug 1588788 Variable font kerning: kerning deltas not applied when one uses font-weight, as opposed to font-variation-settings

bug 1588993 Crash in [@ mozilla::ipc::MessageChannel::Send | mozilla::dom::PContentChild::SendInitOtherFamilyNames]

bug 1590167 Replace libhyphen with a new implementation for better performance and smaller memory footprint

bug 1592762 "font-weight: 1000;" is in the CSS Spec, but font weights above 900 fail in Firefox

bug 1593414 Wrong font in Twitter on Nightly 2019-10-31

bug 1594843 Clamp the maximum padding between decoration line segments and glyphs when applying text-decoration-skip-ink

bug 1595645 word-break:break-all does not apply to some characters that should be affected (e.g, U+3D EQUALS SIGN)

bug 1596875 Add a CJK font order preference

Printing: Output

bug 471015 Fieldsets are truncated to one page when printed / print-previewed

Printing: Setup

bug 1593793 Move and rename nsPrintData::mBrandName to nsPrintJob::mFallbackDocTitle


bug 371787 Support the 'letter-spacing' and 'word-spacing' properties in SVG

bug 1503470 Intermittent svg/smil/transform/paced-1.svg == svg/smil/transform/paced-1-ref.svg | image comparison, max difference: 3, number of differing pixels: 50

bug 1592998 Intermittent svg/smil/transform/paced-1.svg == svg/smil/transform/paced-1-ref.svg | image comparison, max difference: 5, number of differing pixels: 101