Platform/Layout/ReleaseNotes/67

From MozillaWiki
Jump to: navigation, search

Firefox 67 Platform Layout Release Notes

Noteworthy Changes

Features

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