Platform/Layout/ReleaseNotes/63
Contents
- 1 Firefox 63 Platform Layout Release Notes
- 1.1 Noteworthy Changes
- 1.2 All Bugs Fixed
- 1.2.1 CSS Parsing and Computation
- 1.2.2 DOM: CSS Object Model
- 1.2.3 Layout
- 1.2.4 Layout: Block and Inline
- 1.2.5 Layout: Floats
- 1.2.6 Layout: Form Controls
- 1.2.7 Layout: Positioned
- 1.2.8 Layout: Ruby
- 1.2.9 Layout: Scrolling and Overflow
- 1.2.10 Layout: Tables
- 1.2.11 Layout: Text and Fonts
- 1.2.12 Print Preview
- 1.2.13 Printing: Output
- 1.2.14 SVG
Firefox 63 Platform Layout Release Notes
Noteworthy Changes
Features
- Added support for
row-gap
andcolumn-gap
in flexbox layouts (bug 1398483) - Added support for the
prefers-reduced-motion
media query (bug 1365045) - Added support for comparison and logical operators in media queries (bug 1422225)
- Added support for
clip-path: path()
(internal-only) (bug 1246764) - Added support for width-adjustable scrollbars (internal-only) (bug 1475033)
Web Compatibility
- Implemented
-webkit-appearance
(bug 1368555) - Added support for CSS content property replacement on elements (bug 215083)
- Fixed float pushed down one line with
white-space: nowrap;
(bug 488725)
All Bugs Fixed
Note: Does not include some minor automated fixes, such as web platform test syncs.
CSS Parsing and Computation
bug 215083 Support CSS3 content property replacement of element (rather than pseudo-element)
bug 1116638 expose logical property values on computed style objects
bug 1211330 Remove CSS pref "layout.css.unset-value.enabled"
bug 1246045 Throttle animations in out-of-view iframes
bug 1358510 Intermittent /css/css-transitions-1/properties-value-002.html | margin-bottom percentage(%) / values - assert_not_equals: may not be target value while transitioning on .transition got disallowed value "80000px"
bug 1365045 Add support for CSS prefers-reduced-motion media feature for Windows
bug 1374017 stylo: Consider having a "non-wildcard namespace" hashtable in SelectorMap
bug 1395767 Changing attributes in a MutationObserver hangs FF
bug 1420020 Intermittent /css/css-transitions/properties-value-inherit-001.html | visibility visibility(keyword) / values - assert_equals: must be target value after transitioning on .transition expected (string) "hidden" but got (undefined) undefined
bug 1422225 Implement syntax improvements for media queries from level 4 specification
bug 1424106 -webkit pseudo selectors makes the CSS rules fail.
bug 1425700 CSS property use counters not recorded when Stylo is enabled
bug 1429298 Implement path() function for offset-path
bug 1431285 Cap the number of stylo threads at six to avoid poor performance on many-core machines
bug 1438814 Intermittent /css/css-values/vh_not_refreshing_on_chrome.html | Testing http://web-platform.test:8000/css/css-values/vh_not_refreshing_on_chrome.html == http://web-platform.test:8000/css/css-values/reference/vh_not_refreshing_on_chrome-ref.html
bug 1444139 Re-enable layout.css.prefixes.device-pixel-ratio-webkit (i.e. add back support for -webkit-min-device-pixel-ratio)
bug 1449806 Remove GenericSpecifiedValues
bug 1454165 Make ::slotted(..) and :host(..) account for the selector specificity.
bug 1459524 remove layout.css.all-shorthand.enabled pref
bug 1464782 [css-logical] rename offset-* properties to inset-block-start, inset-block-end, inset-inline-start and inset-inline-end
bug 1464786 [css-logical] Flow-Relative Values for the "resize" Property
bug 1466529 Stylo is malloc heavy when parsing property values for style.foo = "bar";
bug 1466614 Remove support for the -moz-windows-theme media query
bug 1466722 Remove remaining references to nsCSSRuleProcessor since it has been removed
bug 1467277 thread '<unnamed>' panicked at 'Only accept an unit direction vector to create a quaternion'
bug 1467621 nsCSSShadowItem: Replace nsColor with StyleComplexColor
bug 1467622 nsStyleSVGPaint: Replace nsColor with StyleComplexColor
bug 1467688 Style changes to perspective get their change hints ignored if the frame isn't also transformed.
bug 1470163 Consider removing EnsureOnDemandBuiltinUASheet.
bug 1470792 we probably shouldn't be generating nsChangeHint_UpdateContainingBlock when mask-image changes
bug 1471063 Misc. selectors cleanups.
bug 1471104 Remove location from preludes and take it from argument
bug 1471114 Remove some unused functions from nsComputedDOMStyle as well as their related data
bug 1471116 Use nsCSSProps::kPropertyPrefTable for pref callback register of nsComputedDOMStyle
bug 1471499 remove [reset] and [inherited] comments from nsStyleStruct.h
bug 1471838 Turn layout.css.offset-logical-properties.enabled off by default
bug 1472020 Assertion failure: !mMutationGuard.Mutated(0), at src/dom/base/ChildIterator.h:220
bug 1472065 simplify management of style sheet and parent rule pointers in css::Rule
bug 1472389 Test the content: url() pagination path.
bug 1472434 Perma-failing tier2 /css/vendor-imports/mozilla/mozilla-central-reftests/images3/object-position-svg-001e.html | Testing http://web-platform.test:8000/css/vendor-imports/mozilla/mozilla-central-reftests/images3/object-position-svg-001e.html ==
bug 1472443 Cleanup content properties a bit.
bug 1472497 Serialize list-style-image / list-style-type using Servo.
bug 1472538 Update bindgen.
bug 1472551 Serialize font longhands using Servo.
bug 1472552 Reformat fonts.mako.rs
bug 1472567 Logical border colors don't work in visited links with Stylo
bug 1473180 More style flushes in FF62 when setting width to an unchanged value
bug 1473225 Serialize a few more lengths with Servo.
bug 1473450 remove <angle> values from image-orientation
bug 1473779 Make writing-mode and direction non-animatable.
bug 1473793 Minor cleanups.
bug 1473813 ::before { content: <single-url> } should keep creating a non-replaced box wrapping the content.
bug 1474317 Make text-orientation, unicode-bidi, contain and will-change non-animatable.
bug 1474768 Assertion failure: !noPrimaryFrame (Ancestors of nodes with frames to be constructed lazily should have frames), at src/layout/base/nsCSSFrameConstructor.cpp:6809
bug 1474959 thread '<unnamed>' panicked at 'assertion failed: self.writing_mode.map_or(true, |wm| wm == writing_mode)', servo/components/style/rule_cache.rs:40:9
bug 1475033 Add initial support of scrollbar-width
bug 1475191 measure heap allocations hanging off selector components
bug 1475197 shrink selector storage some more
bug 1475220 Cleanup a bit push_applicable_declarations.
bug 1475229 Remove unused parent parameter in ComputedValues::new
bug 1475462 Add support for CSS prefers-reduced-motion media feature for MacOSX
bug 1475511 Extend @-moz-document syntax to let users style standalone images and videos
bug 1475909 Permafail TEST-UNEXPECTED-PASS | /css/compositing/mix-blend-mode/mix-blend-mode-blended-element-overflow-hidden-and-border-radius.html | Testing http://web-platform.test:8000/css/compositing/mix-blend-mode/mix-blend-mode-blended-element...
bug 1475997 Improve missed rule mapping crash message.
bug 1476054 Sync some servo changes.
bug 1476212 Notify SPI_SETCLIENTAREAANIMATION changes to all descendant documents
bug 1476445 Use Acquire load for is_unique in servo_arc
bug 1476470 Remove dead nsStyleUtil code.
bug 1477197 Remove unused UpdateStyleSheet argument.
bug 1477533 Convert NS_STYLE_COLUMN_FILL_* and NS_STYLE_COLUMN_SPAN_* to enum classes
bug 1477553 Hide display: -moz-box and display: -moz-inline-box from content in Nightly / early beta.
bug 1477599 Make the whole StyloParsingBench into #If
bug 1477628 Convert FnvHash{Set,Map} instances to FxHash{Set,Map}
bug 1477773 layout.css.visited_links_enabled doesn't seem to completely disable :visited
bug 1477883 Sync some servo changes.
bug 1478106 Intermittent /css/css-transitions/properties-value-001.html | outline-color color(rgba) / events - assert_equals: Expected TransitionEnd events triggered on .transition expected "outline-color:0.5s" but got ""
bug 1478158 Guard prefers-reduced-motion by Resist Fingerprinting pref
bug 1478225 Changes to scrollbar color properties don't trigger repaint for viewport
bug 1478330 Add infrastructure to generate enums from the rust definition instead of duplicating code.
bug 1478391 Move Appearance to not use mako.
bug 1478519 Add support for CSS prefers-reduced-motion media feature for Gtk
bug 1478985 Consider adding a :root bucket to the selector map.
bug 1478990 Make NonCustomPropertyId <-> nsCSSPropertyId conversions fast.
bug 1479012 Improve logging for attribute changes causing a restyle.
bug 1479055 Intermittent valgrind-test | Conditional jump or move depends on uninitialised value(s) at style::properties::longhands::clip_path::cascade_property / style::properties::cascade_rules / ?!? / ?!?
bug 1479230 Remove useless condition in GetPrefersReducedMotion.
bug 1479239 prefers-reduced-motion should be sensible with unsupported platforms / resistFingerprinting.
bug 1479240 Consider disallowing returning a null CSSValue from media expressions.
bug 1479398 The is_root() fast-path could be faster.
bug 1479450 reduce duplication between NonCustomPropertyId and nsCSSProps.cpp
bug 1479681 Hang in LonghandId::to_physical (Servo_ResolveLogicalProperty) on TweetDeck
bug 1479859 IsAbsPosContainingBlockForAppropriateFrame / IsFixedPosContainingBlockForAppropriateFrame are broken
bug 1480043 Remove the concept of 'canonical' pseudos.
bug 1480054 Don't allow tree pseudos with arguments in content.
bug 1480213 Preemptively fix unified bustage in layout/base
bug 1480222 Preemptively fix unified bustage in layout/style
bug 1480496 Add a profiler label to mozilla::css::Loader::ParseSheet with the LAYOUT category
bug 1480649 Use union to store different shape-like types in StyleShapeSource
bug 1480652 add appropriate aarch64 magic to ServoBindings.toml
bug 1481037 Update stylebench.
bug 1481125 Tracking -moz-scrollbars-none when creating webcompat issues.
bug 1481155 Use more references in the snapshot code.
bug 1481156 Remove unused selectors functions.
bug 1481162 Cleanup invalidation processor constructor.
bug 1481204 Don't print the rerun-if-changed headers in the style system build until binding generation has finished.
bug 1481681 Sync servo changes.
bug 1481698 [Tier-2] [TV] web-platform-test css/filter-effects/filter-cb-abspos-inline-001.html and -002.html fails test-verify on Mac and Windows
bug 1481781 Ensure specified_is_copy returns exactly the right result for all properties
bug 1481792 Make several more specified values Copy
bug 1481866 swap values of 2-value 'overflow' syntax so block is first and inline is second
bug 1481905 Text in dropdown under "App Functions" is not visible (was: Page not Loading after 59 version)
bug 1481961 Refactor media queries so that multiple keywords can match a query.
bug 1481984 Use function pointer rather than Fn trait object for collect_property_completion_keywords
bug 1482677 remove unused BorrowedAtom
bug 1483090 Rename StyleUserInterface to StyleUI
bug 1483344 remove unused kernel32-sys dependency from style
bug 1483808 -webkit-device-pixel-ratio should be an alias for resolution
bug 1483823 Deduplicate system metric atoms.
bug 1483964 Manually inline class and ID getters for rust.
bug 1484096 Remove use of `fnv` in bloom.rs
bug 1484146 Use AspectRatio directly for RangeOrOperator::evaluate
bug 1484316 Serialize clip-path and shape-outside using Servo.
bug 1484360 Remove UNSET_DISPLAY in nsCSSFrameConstructor.cpp
bug 1484459 Sync servo changes.
bug 1484571 get rid of NormalDeclarationIterator
bug 1484575 simplify PropertyDeclarationBlock::get a little
bug 1484690 Panic when having two stylesheet <link>s with the same href in ShadowRoot.
bug 1485037 Use a consistent style for longhands/*.mako.rs
bug 1485044 Remove useless StyleDisplay conversion.
bug 1485197 Bump cbindgen to 0.6.2
bug 1485252 add MallocSizeOf impls for 128-bit integers
bug 1485433 Parse byte slice for SVG Path (in rust)
bug 1485655 Intermittent GECKO(1015) | thread '<unnamed>' panicked at 'assertion failed: self.shared_context.visited_styles_enabled', servo/components/style/invalidation/element/state_and_attributes.rs:168:13
bug 1485766 Drop the manually implementation of ToCSS for BasicShape::Polygon
bug 1485823 Use cbindgen for basic_shape::FillRule
bug 1485930 Make tree pseudo-element prefix not case-sensitive
bug 1485951 Intermittent GECKO(1489) | thread '<unnamed>' panicked at 'assertion failed: name.starts_with("-moz-tree-")', pseudo_element_definition.rs:1627:9
bug 1486074 Fields of -moz-column-span are not defined in property_database.js
bug 1486252 CSS property `mask-image` does work with SVG fragment
bug 1486536 Assertion failure: !StylistNeedsUpdate(), at /builds/worker/workspace/build/src/layout/style/ServoStyleSet.cpp:435
bug 1486728 Add memory reporting for ShadowRoot::mServoStyles.
bug 1486815 Remove nom 0.1
bug 1487137 Investigate shrinking AuthorStyles a bit
bug 1487259 After bug 1483882 we do resolve url references against a shadow root, so we should change which CSS rules apply to the cloned subtree too.
bug 1487582 use Atom to represent Direction values in pseudo-classes
bug 1487598 use Atom to store pseudo-class string arguments
bug 1487615 The code for bug 1487598 probably needs string escaping.
bug 1487856 "No Style" function doesn't disable HTML "style" attributes
bug 1488172 Sync servo stuff.
DOM: CSS Object Model
bug 820891 Table's caption element not taken into account for table's offsetTop and offsetHeight values
bug 1473735 We should have memory reporting for MatchMedia (media lists)
bug 1473776 remove out of date comment in MediaList
bug 1474513 GetParsingInfo in CSS.cpp can be simplified
Layout
bug 1246764 Add support for |clip-path: path()|
bug 1279185 interaction in between border-image, fieldset and legend
bug 1297774 [css-flexbox][css-align] Implement flexbox layout for <overflow-position> (safe/unsafe) in align-self, align-content, and justify-content
bug 1397768 flex children of <button> are always vertically centered, despite align-items or justify-content
bug 1398483 [css-flexbox] Implement flexbox layout for the row-gap and column-gap properties
bug 1403425 Assertion failure: mFrames.IsEmpty() (unexpected second call to SetInitialChildList) [@ nsContainerFrame::SetInitialChildList]
bug 1407059 GECKO_DISPLAY_REFLOW_RULES_FILE doesn't work when security.sandbox.content.level is 3 (or more?)
bug 1460075 Intermittent TEST-UNEXPECTED-TIMEOUT | /css/css-multicol/zero-column-width-layout.html | expected FAIL
bug 1462983 Intermittent layout/base/tests/test_bug607529.html | uncaught exception - SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
bug 1464290 Make nsIFrame::IsVisuallyAtomic and ::IsStackingContext match the spec more closely.
bug 1467209 Implement contain:size for FlexContainerFrame, HTMLButtonControlFrame, and BlockFrame
bug 1467541 Layout Debugger is broken in packaged builds
bug 1469354 crash near null in [@ nsPlaceholderFrame::GetLayoutParentStyleForOutOfFlow]
bug 1469741 Maybe implement scrollbar color and width properties when native theme is disabled
bug 1470329 Ensure "contain:size" makes elements monolithic
bug 1470836 Remove the code to create placeholder continuations.
bug 1471267 Update baseline-querying utility functions to bail on size-contained frames
bug 1471452 Remove fail expectations for contain:paint tests
bug 1471583 Intermittent /css/css-backgrounds/border-image-020.xht | Testing http://web-platform.test:8000/css/css-backgrounds/border-image-020.xht == http://web-platform.test:8000/css/reference/ref-filled-green-100px-square.xht
bug 1472027 Assertion failure: !mInStyleRefresh, at src/layout/base/RestyleManager.cpp:3114
bug 1472403 Simplify generated image content.
bug 1472430 [FIX] PresShell should not use IsInUncomposedDoc
bug 1472650 [FIX] nsCSSRendering::ShouldPaintBoxShadowInner should probably use GetComposedDoc
bug 1472651 [FIX] BoxObject::GetPresShell should use GetComposedDoc
bug 1472843 [css-flexbox] implement new align-self/content/items & justify-content values, for flexbox
bug 1472919 'contain: layout' should establish a containing block for absolute/fixed positioned descendants
bug 1473044 [css-flexbox] Flex container's auto-height (intrinsic cross size) should take column/row gaps into consideration
bug 1473047 [css-flexbox] Need to resolve block-axis column-gap/row-gap percentages, when determining positions of flex items & flex lines
bug 1473856 MediaQueryList could use ProbablyShortLivingWrapper + LastRelease
bug 1474093 Intermittent w3c-css/submitted/contain/contain-size-inline-flex-001.html == w3c-css/submitted/contain/contain-size-inline-flex-001-ref.html | image comparison, max difference: 3, number of differing pixels: 2
bug 1474663 Implement contain:size for nsColumnSetFrame (for multicol)
bug 1474721 Drop epoch times in nsRefreshDriver
bug 1474877 Fix mach reftest --repeat
bug 1475385 unprefix -moz-column-* in our copies of w3c-submitted reftests, so we can remove unprefixing logic from sync-tests.sh
bug 1475769 Don't bail out from nsRefreshDriver::Tick after updating mMostRecentRefresh without calling StopTimer
bug 1476128 No mobile data is coming for HIDDEN_VIEWPORT_OVERFLOW_TYPE
bug 1476358 Replace while-loop with FindFirstBlock() in WrapFramesInFirstLineFrame()
bug 1476495 "contain: layout" and ink overflow
bug 1477007 Using meta viewport user-scalable=0 option can result in being unable to pan around the page.
bug 1477856 [css-flexbox] Return a more meaningful value for "max-width: none" via internal flexbox inspector APIs
bug 1477871 Extract the construction of nsColumnSetFrame into a helper function.
bug 1477897 layout debugger styling is broken
bug 1478069 A bit of nsCSSFrameConstructor cleanup.
bug 1478138 micro-optimize frame properties
bug 1478550 'contain:size' should apply to table-caption, but doesn't
bug 1479528 More frame construction bits while I wrap my head about the best way to fix bug 1476281
bug 1479605 Replace ENSURE_TRUE in nsFrame.h with NS_ENSURE_TRUE_VOID
bug 1479995 Rename ScrollbarStyles to ScrollStyles
bug 1479996 micro-optimize frame properties - avoid ptr->index->ptr dance
bug 1480212 Preemptively fix unified bustage in layout/generic
bug 1480254 nsLayoutUtils.cpp:5539:40: warning: code will never be executed [-Wunreachable-code]
bug 1481951 Fix layout containment reftest with floats (contain-layout-overflow-002.html) so that it has valid expectations & passes
bug 1482665 Remove AppUnitsPerCSSPixel() and AppUnitsPerCSSInch() in nsPresContext and nsDeviceContext
bug 1483211 fieldset should have min-inline-size instead of min-width in UA stylesheet
bug 1483394 Remove unneeded #includes of nsContentUtils.h in /layout
bug 1483499 <legend> not child of <fieldset> should have 2px padding
bug 1483527 Change fieldset's default padding to match other browsers
bug 1483685 Add "start"/"end" to flexbox-align-content-horizrev / vertrev test files, and move them into upstreamable w3c directory
bug 1483946 Google News is unscrollable if you have CSS Containment enabled
bug 1483972 Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Extra child frame found in nsVideoFrame. Possibly from stray whitespace around the videocontrols container element.), at src/layout/generic/nsVideoFrame.cpp:403
bug 1484306 Add utility functions to nsFrameList
bug 1484521 Misplaced list markers with text-align:justify
bug 1485430 Simplify PlaceBelowCurrentFloats.
bug 1485495 Minor refactor in nsCSSFrameConstructor
bug 1485525 Land the HTML version of the crashtest for bug 401042
bug 1485669 Upstream the tests for bug 488725.
bug 1486399 Teach the layout debugger about relative URIs.
bug 1488001 Perma failure/compat/webkit-appearance.html | -webkit-appearance: none - assert_equals: expected (string) "none" but got (undefined) undefined
Layout: Block and Inline
bug 1472386 overflow-wrap/word-wrap: break-word should affect intrinsic (min-content) sizing
bug 1484587 Put the new behavior of overflow-wrap: break-word behind a pref
Layout: Floats
bug 488725 float pushed down one line with white-space: nowrap;
Layout: Form Controls
bug 1428676 -moz-appearance menulist-button should behave like -webkit-appearance: menulist-button
bug 1470176 Implement contain:size for fieldset objects
bug 1476724 Intermittent css-ui-invalid/default-style/button.html == css-ui-invalid/default-style/button-ref.html | image comparison, max difference: 1, number of differing pixels: 1
Layout: Positioned
bug 1311892 Honor <overflow-position>: safe | unsafe | unspecified in abspos boxes aligned with CSS Box Alignment
bug 1471894 Absolute positioned blocks with auto margins never update their UsedMargin property
Layout: Ruby
bug 1486457 Assertion failure: aState.mNoWrapFloats.IsEmpty(), at /builds/worker/workspace/build/src/layout/generic/nsBlockFrame.cpp:3965
Layout: Scrolling and Overflow
bug 1485023 Replace conditionals on PresShells when suppressing displayports to asserts inside gfxScrollFrame
Layout: Tables
bug 1330375 interleaved innerText calls and display:none sets trigger significantly more reflow overhead than chrome
bug 1474516 A little cleanup of border-collapse code while reviewing bug 1405929
bug 1478455 overflow-wrap: normal for table into html.css
Layout: Text and Fonts
bug 1394709 Add Microsoft JhengHei to font.name-list.sans-serif.zh-TW
bug 1422530 Low priority webfonts in font-family declaration are downloaded before they are needed
bug 1459937 Clipped question mark on Nightly whatsnew page after asynchronous font load
bug 1461573 Intermittent bidi/dirAuto/dynamicDirAuto-setRTL-Auto2.html == bidi/dirAuto/dynamicDirAuto-refRTL-RTL.html | image comparison, max difference: 1, number of differing pixels: 1
bug 1471664 Remove redundant code for creating userData in SetupLineBreakerContext
bug 1476437 auto-hyphenation ('hyphens: auto') hyphenates in the wrong place following a hyphen and whitespace collapsing
bug 1477010 Selecting emoji tag flags selects individual codepoints instead of the whole glyph at once
bug 1478178 Assertion failure: applyState.mGaps.mHandled == applyState.mGaps.mCount (Unprocessed justification gaps), at src/layout/generic/nsLineLayout.cpp:3191
bug 1481031 Use Noto Serif CJK as the default serif fonts for Chinese, Japanese and Korean
bug 1484094 caret should not move into ligated Emoji + ZWJ sequence
Print Preview
bug 1487649 Print (preview) error triggered for certain SVG samples
Printing: Output
bug 1473742 Fonts loaded with CSS font loading API not printable
SVG
bug 1450250 <svg:use> should use an actual shadow tree, instead of NAC.
bug 1455854 Throw a TypeError rather than a SyntaxError for enum out of range
bug 1456004 Set angle unit type in setOrientToAngle and to UNKNOWN when setting orient to auto or auto-start-reverse
bug 1475003 Assertion failure: (last == doc) == wasInComposedDoc || (IsRemoveNotification::No == IsRemoveNotification::Yes && !strcmp("AttributeWillChange", "NativeAnonymousChildListChange")), at src/dom/base/nsNodeUtils.cpp:159
bug 1477853 crash near null [@ mozilla::dom::SVGAnimationElement::UpdateHrefTarget]
bug 1477965 Fix SVGAnimationElement::AfterSetAttr.
bug 1479272 remove svg.marker-improvements.enabled pref
bug 1480275 Assertion failure: IsInComposedDoc(), at src/dom/svg/SVGUseElement.cpp:234
bug 1480946 systemLanguage should be case insensitive
bug 1483882 Shadow DOM: SVG url(#id) broken (gradient, clip-path)
bug 1486115 use mozilla::IsAsciiDigit and mozilla::AsciiAlphanumericToNumber
bug 1486488 AddressSanitizer: SEGV /builds/worker/workspace/build/src/dom/base/nsINode.h:1596:12 in GetBoolFlag