Platform/Layout/ReleaseNotes/67
Contents
- 1 Firefox 67 Platform Layout Release Notes
- 1.1 Noteworthy Changes
- 1.2 All Bugs Fixed
- 1.2.1 CSS Parsing and Computation
- 1.2.2 CSS Transitions and Animations
- 1.2.3 DOM: CSS Object Model
- 1.2.4 Layout
- 1.2.5 Layout: Block and Inline
- 1.2.6 Layout: Columns
- 1.2.7 Layout: Flexbox
- 1.2.8 Layout: Floats
- 1.2.9 Layout: Form Controls
- 1.2.10 Layout: Grid
- 1.2.11 Layout: Positioned
- 1.2.12 Layout: Scrolling and Overflow
- 1.2.13 Layout: Tables
- 1.2.14 Layout: Text and Fonts
- 1.2.15 SVG
Firefox 67 Platform Layout Release Notes
Noteworthy Changes
Features
- Implement revert keyword (bug 1215878)
- Add support for prefers-color-scheme media query (bug 1494034)
- Limit size of custom cursors (bug 1445844)
Webcompat
- Fix a case where scroll position would be lost on reflow with large enough scroller (bug 1526609)
- Shrink the overflowed contents to the display size if user has never changed zoom level (bug 1519013)
All Bugs Fixed
CSS Parsing and Computation
bug 1215878 implement revert keyword
bug 1218257 CSS Animation of stroke-dashoffset from 0 to 100% does not work
bug 1383451 Intermittent /css/CSS2/lists/list-style-021.xht | Testing http://web-platform.test:8000/css/CSS2/lists/list-style-021.xht == http://web-platform.test:8000/css/CSS2/lists/list-style-021-ref.xht
bug 1440384 GenerateCombinedTransform probably doesn't want to run at the time it runs.
bug 1494034 Add support for CSS prefers-color-scheme media feature
bug 1517319 Hit MOZ_CRASH(Invoking Servo_Element_IsDisplayNone on unstyled element) at libcore/option.rs:1008
bug 1521604 Add parentFlexElement property to HTML elements
bug 1523140 Derive more and shrink repr(c) representation of MaxLength / MozLength.
bug 1523712 Restrict parsing of -moz-binding to chrome and UA sheets.
bug 1524246 AddressSanitizer: heap-use-after-free [@ gfxUserFontEntry::FontDataDownloadComplete] with READ of size 8
bug 1525134 Move image loads out of the style struct accessors.
bug 1525371 Remove the pres context pointer from ComputedStyle.
bug 1526294 Should not need a pres context to get a system font.
bug 1526736 Rename MozLength and MaxLength.
bug 1527410 Use Rust sizes for flex-basis, width, height, and their min/max properties.
bug 1527438 Use Rust types for Position.
bug 1527542 Use Rust types for background-size / mask-size.
bug 1527972 Use Rust types for a couple miscellaneous properties.
bug 1528035 Improve derive(Parse).
bug 1528050 make nsStyle{List,Position}::CalcDifference old style struct argument non-nullable
bug 1528451 incorrect styling on moneysmart.gov.au
bug 1528464 Convert NS_STYLE_MASK_MODE_* to enum class
bug 1528639 Implement scroll-margin parser and serializer
bug 1528640 Implement scroll-padding parser and serializer
bug 1528644 Can enter in ContentStateChanged while tearing down the frame tree from nsTextEditorState (using maxlength / minlength).
bug 1528712 Remove some more dependencies from style in nsPresContext.
bug 1528834 Implement scroll-snap-align parser and serializer
bug 1528940 convert #define NS_STYLE_FLEX_DIRECTION values to enum class in nsStyleConsts.h
bug 1529058 Use Rust types for z-index / perspective / transform-origin / -moz-window-transform-origin / perspective-origin
bug 1529444 Add support for getting a string from PseudoStyleType
bug 1530193 Refactor the preference stylesheet to not require a pres context.
bug 1530247 Turn the Servo serialization property whitelist into a blacklist.
bug 1530571 Update property_database.js and test_transitions_per_property.html for properties for the new scroll snap
bug 1530751 Make the pres context optional in the style system.
bug 1530826 Fix LengthPercentage computed value serialization when negative calc is involved.
bug 1530847 Be consistent on how we store and serialize InsetRect's radius for computed and specified values.
bug 1530896 Adjust CSS parser to un-recognize `contain:style` for now
bug 1531507 windows/aarch64 - TEST-UNEXPECTED-PASS | /css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html | View relative units - computed - expected FAIL
bug 1531516 windows/aarch64 - TEST-UNEXPECTED-PASS | /css/css-values/viewport-units-css2-001.html | multiple failures
bug 1531582 Don't drop a change hint on the floor in ContentStateChanged when there are no rules referencing a state bit.
bug 1532122 Make word-spacing, letter-spacing, and line-height use Rust lengths.
bug 1532134 Remove Option<>s from TransformOperation.
bug 1532135 Derive more stuff for ClipRect.
bug 1532358 Add tests for interaction media features that use the widget codepath.
bug 1532833 Use servo serialization code for 'contain'
bug 1532835 clang-format nsStyleConsts.h
bug 1532856 Serialize radii with Servo.
bug 1533392 Intermittent layout/style/test/test_revert.html | font-family: Should inherit something non-initial to begin with - didn't expect "sans-serif", but got it
bug 1533783 AddressSanitizer: SEGV /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Assertions.h:314:3 in MOZ_Crash(char const*, int, char const*)
bug 1533870 Preemptively fix all non-unified-build bustage in layout/style
bug 1533891 Assertion failure: IsResolved() (Resolve() must be called first), at /builds/worker/workspace/build/src/layout/style/nsStyleStruct.h:239
bug 1533963 Use a single RestyleHint representation.
bug 1534471 run clang-format on layout/style/
bug 1534726 Sync servo stuff.
bug 1535084 Cleanup contain property.
CSS Transitions and Animations
bug 1505225 Individual transform properties' animations don't create stacking context in delay phase
DOM: CSS Object Model
bug 1490619 GetComputedStyle for an inset property on an overconstrained abspos or fixed element returns used value, not absolutized computed value
bug 1519621 Perma [tier2] /css/cssom-view/scroll-behavior-smooth.html | Smooth scrolling while doing history navigation. - assert_not_equals: Shouldn't be scrolled to top anymore. got disallowed value 0
bug 1524219 Intermittent /css/cssom-view/scroll-behavior-main-frame-window.html | Main frame with auto scroll-behavior ; scroll() with smooth behavior - assert_equals: Final value of scrollLeft expected 2970 but got 2350
bug 1532570 nsDOMCSSDeclaration::SetProperty should check for the "important" string in a case-insensitive way.
Layout
bug 969874 Incorrect baseline alignment for flex container with overflow other than visible
bug 1212398 Intermittent test_parse_rule.html | Test timed out.
bug 1265104 There Is No Dragged Text Following in Moving Cursor When Dragging a Link inside the Web Component(Shadow DOM), or inside display: contents;
bug 1273876 Intermittent test_transitions_events.html | unexpected event on SPAN element with id 'five' elapsedTime=0.5 propertyName='color'
bug 1443320 Intermittent layout/style/test/test_restyles_in_smil_animation.html | should restyle in most frames (got 3 restyles over five frames, expected 4~5)
bug 1445844 Custom cursor goes outside the bounds of the web content in "malware" website
bug 1450652 Remove the ability to override the node name using XBL.
bug 1470926 crash near null in [@ nsTextControlFrame::ScrollSelectionIntoView]
bug 1504072 Assertion failure: ok (FrameMaintainsOverflow() != ComputeCustomOverflow())
bug 1504594 Intermittent details-summary/mouse-click-twice-float-details.html == details-summary/float-details.html | image comparison, max difference: 4, number of differing pixels: 1
bug 1506949 Consider using idle queue for RefreshDriver ticks after first contentful paint but before load
bug 1508420 Add tests for dynamic reflow root handling
bug 1516377 Attach position:fixed elements to the minimum scale size viewport
bug 1520077 Use the minimum scale size even if no overflow:hidden is specified
bug 1521644 Layout changes to support zooming with containerless scrolling
bug 1521786 Keep RefreshDriver ticking before first contentful paint
bug 1523061 Simplify nsIFrame::ListTag() APIs
bug 1523062 Devirtualize a few nsIPresShell bits.
bug 1523071 Start using Servo's representation of LengthPercentage.
bug 1523181 Crash in nsFontFaceLoader::Cancel
bug 1523282 mark restyle-inside-first-line.html random because of inconsistency
bug 1523808 Services module is not defined in layoutdebug
bug 1524031 Intermittent scrolling/frame-scrolling-attr-1.html == scrolling/frame-scrolling-attr-ref.html | image comparison, max difference: 1, number of differing pixels: {1,2}
bug 1524220 Perma /intersection-observer/root-margin.html | document.scrollingElement.scrollTop = document.documentElement.clientHeight + 200 - assert_equals: entries.length expected 2 but got 1
bug 1524266 select tags in contentEditable can't be selected for removal
bug 1524328 Don't resolve counter styles during styling.
bug 1524437 Replace text with colored box in transform reftests
bug 1524585 nsDocumentViewer.cpp: Value stored to 'height' is never read
bug 1524774 Intermittent scrolling/frame-scrolling-attr-2.html == scrolling/frame-scrolling-attr-ref.html | image comparison, max difference: 1, number of differing pixels: 1
bug 1524806 Start RefreshDriver timer very early
bug 1525475 Perma Android [tier2] /css/css-masking/clip/clip-transform-order-2.html | Testing http://web-platform.test:8000/css/css-masking/clip/clip-transform-order-2.html == http://web-platform.test:8000/css/css-masking/clip/clip-filter-order-ref.html
bug 1526097 Consider removing nsIFrame::eBlockFrame flag for "IsFrameOfType", in favor of QueryFrame-backed "IsBlockFrameOrSubclass()" method
bug 1526114 Intermittent Linux64-qr http://localhost:37789/1549576556955/136/289480.html#top == http://localhost:37789/1549576556955/136/289480-ref.html | image comparison, max difference: 4, number of differing pixels: 1374
bug 1527360 Add a profiler marker for the case when RefreshDriver is still waiting for paint
bug 1527519 Unify nsLayoutUtils::GetAsBlock() and nsIFrame::IsBlockFrameOrSubclass()
bug 1528299 InspectorUtils.getCSSStyleRules returns incorrect type
bug 1528914 Tidy a bit the relationship between nsPresContext and nsDocShell.
bug 1529389 add a test for IntersectionObserverEntry.isIntersecting
bug 1529422 Take individual transforms into account for ActiveLayerTracker.
bug 1529616 Coverity warns about a possible nullptr dereference in nsTextEditorState::SetSelectionRange()
bug 1529619 Coverity gets confused about the null check inside nsCSSFrameConstructor::BeginBuildingScrollFrame()
bug 1530657 Intermittent GECKO(10828) | Assertion failure: aCount == 0 || aStart < Length() (Invalid aStart index), at z:/build/build/src/obj-firefox/dist/include/nsTArray.h:2222
bug 1531019 Ignore the return value of IsSelectable in order to make sure Coverity isn't confused by unchecked return value with IsSelectable returning a boolean
bug 1531025 Possible division by zero in nsIFrame::ComputeBorderRadii()
bug 1531470 Support position:sticky in OOP iframes
bug 1532128 layout: Make some global functions static and remove some unused functions
bug 1533040 Are the nsStyleCoord warnings about possible overflow valid?
bug 1533424 AddressSanitizer: SEGV /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/RefPtr.h:267:27 in get
bug 1533931 windows/aarch64 - TEST-UNEXPECTED-PASS | /css/css-backgrounds/background-attachment-local/attachment-local-clipping-color-3.html, attachment-local-clipping-color-4.html, attachment-local-clipping-color-5.html | failures in multiple files
bug 1534158 Drop InspectorUtils.scrollElementIntoView.
bug 1534467 layout-debugger no longer builds in non-DEBUG builds
bug 1534761 Change maximum cursor size when intersecting UI to 32 pixels.
bug 1534914 Improve blocked cursor behavior to fall back to next image.
Layout: Block and Inline
bug 1524897 sup/sub elements are aligned differently in Chrome and Firefox with line-height and vertical-align.
bug 1525133 nsBlockFrame::GetNaturalBaselineBOffset calls kid->GetVerticalAlignBaseline() without checking whether its WM is orthogonal
Layout: Columns
bug 1504053 Appending or Inserting a block containing column-span descendants doesn't reframe multi-column container
bug 1516739 crash at null in [@ nsAbsoluteContainingBlock::SetInitialChildList]
bug 1520722 nsColumnSetFrame's continuation is deleted due to bidi resolution
bug 1524382 use-after-poison in [@ nsFrameConstructorState::ProcessFrameInsertions]
bug 1527725 ###!!! ASSERTION: NS_BLOCK_HAS_FIRST_LETTER_STYLE state out of sync: 'haveFirstLetterStyle == ((mState & NS_BLOCK_HAS_FIRST_LETTER_STYLE) != 0)'
Layout: Flexbox
bug 1533088 coverity complains about mAlignSelfFlags in "strut" flex item constructor
Layout: Floats
bug 1530462 float-retry-push-image.html makes bogus/flaky positioning assumption
Layout: Form Controls
bug 1375476 [e10s] Properly style <option> elements in the parent process UI (support CSS on Select Options)
bug 1425218 <input type=time> uses AM/PM on a system with a 24h locale
bug 1524573 input type="range" rendering issues on macOS
bug 1528098 Remove some content-select code.
bug 1529036 Buttons don't receive mouse events from overflowing in-flow descendants
Layout: Grid
bug 1520584 [css-grid] grid padding reduces available space for abspos inside grid items
bug 1526567 [css-grid] min-height:auto clamped to 0 by indefinite max-height percentage
Layout: Positioned
bug 1515310 Intermittent position-sticky/nested-sticky-2.html == position-sticky/nested-sticky-2-ref.html | image comparison, max difference: 32, number of differing pixels: 123
Layout: Scrolling and Overflow
bug 1515822 scroll position sometimes is not saved inside display: contents
bug 1519553 above-the-fold animations in scrollport (of e.g. 'height') can cause visible elements to jitter, with scroll anchoring
bug 1520363 Rename nsIScrollableFrame::GetAnchor to nsIScrollableFrame::Anchor
bug 1520666 Ebay jumps to the top once you scroll to the bottom on a mobile device
bug 1522026 sluggish scrolling due to the implementation of scroll anchoring
bug 1522964 Re-enable scroll anchoring on Fennec with gofaster intervention
bug 1523052 Calculating scroll anchoring bounding rect on taskcluster log takes long time
bug 1523866 [Reddit] Certain content shakes while scrolling
bug 1525628 Make "is block frame" check more nuanced, in nsHTMLScrollFrame::GetLogicalBaseline
bug 1526749 Cleanup around scroll-snap
bug 1528107 Changes to scroll-anchoring tests in initial landing were backed out
bug 1529420 Minor fixes for scroll snap web platform tests
bug 1532443 Drop ScrollFrameHelper::ShouldClampScrollPosition
Layout: Tables
bug 1520018 Gecko and Webkit/Blink default to different box-sizing values for table tags
bug 1530048 HTML spec says tables should have `border-color:gray`, but we only do that in quirks mode
Layout: Text and Fonts
bug 1296042 Implement "word-break: break-word"
bug 1358019 word-break: break-all shouldn't create breaks between punctuation
bug 1484899 Use Noto Serif and Noto Sans for Hebew and Thai
bug 1507661 hyphens:auto renders two hyphens in words like e-commerce
bug 1509067 Failing to fall back across multiple subsetted faces of an installed font [was: Unicode Character ✘ is not showing up]
bug 1526216 Crash in nsFontFaceLoader::Cancel() in ASAN builds
bug 1532477 LogicalRect::YMost() looks wrong
bug 1534099 Add font.name-list.cursive.* for Linux to pref file for better discoverability
SVG
bug 1072758 "Assertion failure: false (should have already reflowed the anonymous block child)"
bug 1322770 SVG triggers assertion: fromParams.mDistToPoint <= toParams.mDistToPoint
bug 1343357 Assertion failure: startParams.mPath == endParams.mPath (unexpected path mismatch)
bug 1346610 HTML doc triggers runaway CPU usage in Firefox Nightly (DoS threat)
bug 1413319 Assertion failure: aActiveTime >= 0 (Expecting non-negative active time) [@ nsSMILTimedElement::ActiveTimeToSimpleTime]
bug 1508028 stroke-miterlimit minimum should now be 0 instead of 1
bug 1521425 Intermittent svg/text-stroke-scaling-02a.html == svg/text-stroke-scaling-02-ref.html | image comparison, max difference: 59, number of differing pixels: 1
bug 1523178 Merge SVGAngle and nsSVGOrientType into SVGOrient
bug 1531578 crash near null in [@ mozilla::SVGGeometryFrame::GetCanvasTM]
bug 1532156 marker-start is incorrect for closed paths
bug 1532444 Dynamic change to marker style causes it to continuously repaint forever