Platform/Layout/ReleaseNotes/71

From MozillaWiki
Jump to: navigation, search

Firefox 71 Platform Layout Release Notes

Noteworthy Changes

Features

  • Shipped support for CSS grid subgrid (bug 1580894)
  • Shipped support for column-span (bug 1426010)
  • Shipped support for SVG path() in clip-path (bug 1488530)
  • Added support for mapping image width and height to intrinsic aspect ratio (bug 1585637)

Webcompat

  • Improve support for scroll anchoring and fix various issues causing scroll breakages

All Bugs Fixed

CSS Parsing and Computation

bug 1234311 [css-grid] implement resolved value of grid-template-{columns,rows} for repeat(auto-fill) in subgrids

bug 1480665 [motion-1] Implement ray() function for offset-path

bug 1536392 Perma [tier2] layout/style/test/test_animations_omta.html | transform-like properties on compositor at 5s: should be animating on compositor

bug 1548718 support multiple part names in ::part()

bug 1559077 Maybe implement Element.part

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

bug 1562060 add telemetry to record how often we fail to map UA sheet shared memory at the desired address

bug 1567330 [motion-1] support offset shorthand

bug 1569706 Assertion failure: NS_IsMainThread() (LogMessage only works on the main thread, due to the Servo_XXX CSSOM calls it makes), at /builds/worker/workspace/build/src/layout/style/FontFaceSet.cpp:1212

bug 1574222 text-decoration-thickness isn't being serialized as part of the text-decoration shorthand computed-value

bug 1574718 Intermittent leakcheck | tab 1712 bytes leaked (CallbackObject, DOMEventTargetHelper, DebuggerNotificationManager, DebuggerNotificationObserver, EventListenerManager, ...)

bug 1577139 There should be no behavior change between calc(%) and plain %.

bug 1577743 Remove dead argument from ReparseStyleAttribute.

bug 1578147 align the Rust and C++ representations of WritingMode

bug 1578151 Factor out the "containing block did not really change" code from CalcStyleDifference.

bug 1578295 Use cbindgen for counters.

bug 1578661 Actually hook CSS use counters into Telemetry.

bug 1579585 Crash in [@ OOM | large | mozalloc_abort | mozalloc_handle_oom | gkrust_shared::oom_hook::hook | std::alloc::rust_oom | std::collections::hash::map::HashMap<T>::try_resize<T> | std::collections::hash::set::HashSet<T>::insert<T>]

bug 1579624 Turn the "line-height computes as normal" pref on for release users.

bug 1580307 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:4025

bug 1580963 Sync servo stuff.

bug 1581579 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:4025

bug 1582346 Intermittent TEST-UNEXPECTED-PASS | /css/CSS2/positioning/relpos-percentage-top-in-scrollable.html | Top percentage resolved correctly for overflow contribution - expected FAIL

bug 1582374 Add a warning when CSS zoom is used in stylesheets.

bug 1582627 Always serialize <ratio> and font shorthand with spaces around the slash.

bug 1582814 Let the CSS use counter prefs be independent.

bug 1583736 CSS radial-gradient should not accept negative radii

bug 1583980 Restrict aspect ratio mapping to images for now.

bug 1585584 Intermittent /css21/pagination/moz-css21-float-page-break-inside-avoid-8.html == w3c-css/submitted/css21/pagination/moz-css21-float-page-break-inside-avoid-8-ref.html | image comparison, max difference: 255, number of differing pixels: 155522

bug 1585858 Remove nsChangeHint_SyncFrameViews

bug 1587235 report missing include file name in ServoBindings.toml

bug 1587368 Sync servo stuff.

bug 1588201 test_compute_data_with_start_struct.html fails with XBL disabled

bug 1588846 Fix browser_bug839103.js to pass with fission enabled

CSS Transitions and Animations

bug 1510486 will-change for individual transform properties should set WillChangeBits::TRANSFORM

bug 1576866 border-image-{outset, slice, width} properties should interpolate smoothly

DOM: CSS Object Model

bug 400258 offsetLeft includes borders when box-sizing is border-box

bug 1583203 Annotate nsINode::OwnerDoc as returning non-null.

Layout

bug 992384 [SVG] Missing horizontal scroll bar when RTL direction is set on top level element

bug 1092007 For flex items in a vertical flex container, only treat heights as definite (for resolving % heights on children) if the flex-basis (or flex container's height) is also definite

bug 1308286 Scroll less to give more context with page down/page up

bug 1308587 Use script to remove -moz- prefixes from all usages of CSS multi-column properties in the tree (except for code that adds/intentionally-targets prefixed aliases)

bug 1384266 Assertion failure: sideToMeasureFrom == eSideBottom (We already checked that we're dealing with a vertical axis, and we're not using the top side, so that only leaves the bottom...), at src/layout/generic/nsFlexContainerFrame.cpp:1987

bug 1457050 Intermittent TEST-UNEXPECTED-PASS | layout/base/crashtests/453894-1.xhtml | assertion count 1 is less than expected 2 assertions

bug 1488530 Ship |clip-path:path()|

bug 1506939 Enable individual transform on Nightly

bug 1513282 Crash [@ MOZ_CrashOOL] near nsFrame::DoGetParentComputedStyle(nsIFrame**) const src/layout/generic/nsFrame.cpp:9972:13

bug 1539212 implement readability backplate for high contrast mode

bug 1541256 Add automated tests for accessibility stuff where elements are in out-of-process iframes in deck

bug 1541705 Need a way to tell whether the given nsIFrame is scrolled out without walking up frame tree across document boundaries

bug 1551659 "Open image in new tab" scales image to 0% (1 pixel) in Fenix

bug 1553772 Make accessiblecaret dispatch events more asynchronously.

bug 1573683 Intermittent text-stroke/webkit-text-stroke-property-003.html == text-stroke/webkit-text-stroke-property-003-ref.html | image comparison, max difference: 63, number of differing pixels: 101

bug 1577258 Simplify PresShell::ResizeReflowIgnoreOverride.

bug 1577390 delay a bit before loading a document in the Layout Debugger with --capture-profile

bug 1577714 Intermittent bugs/1553571-1.html == bugs/1553571-1-ref.html | load failed: timed out waiting for pending paint count to reach zero (waiting for MozAfterPaint)

bug 1578844 Assertion failure: aNewFrame->GetParent() == outOfFlowFrameList->containingBlock (Parent of the frame is not the containing block?), at src/layout/base/nsCSSFrameConstructor.cpp:1203

bug 1579953 Assertion failure: !aFrame->IsDetailsFrame() (Inserting elements into <details> should have been reframed!), at src/layout/base/nsCSSFrameConstructor.cpp:11642

bug 1580012 Turn off blockification of `display: -moz-box` (behind a pref for now)

bug 1580302 XUL Box frames don't stretch as grid items

bug 1580556 Remove the xul/grid/examples folder

bug 1580576 Assertion failure: aFrame->IsDetailsFrame() || aFrame->IsLineFrame() || aFrame->IsLetterFrame() (We should be here for a DetailsFrame, or an nsFirstLineFrame or nsFirstLetterFrame child inside the DetailsFrame!)

bug 1580696 Permafailing tier 2 TEST-UNEXPECTED-PASS | bugs/605138-1.html == bugs/605138-1-ref.html | image comparison, max difference: 11, number of differing pixels: 634

bug 1580703 Enable browser_offscreen_image_in_out_of_process_iframe.js on WebRender windows

bug 1581021 Perma [tier 2] TEST-UNEXPECTED-PASS | css-blending/clipped-mixblendmode-containing-unclipped-stuff.html == css-blending/clipped-mixblendmode-containing-unclipped-stuff-ref.html | image comparison, max difference: 0, number of differing pixels: 0

bug 1581334 Intermittent bugs/456219-1a.html == bugs/456219-1-ref.html | image comparison, max difference: 60, number of differing pixels: 528

bug 1581718 floating tables with orthogonal writing mode have negative parent-inline-end margin

bug 1581735 Intermittent Tier 2 Android box-shadow/boxshadow-rotated.html == box-shadow/boxshadow-rotated-ref.html | image comparison, max difference: 19, number of differing pixels: 4342

bug 1581798 Perma Fail Tier 2 Android border-image/svg-as-border-image-4b.html == border-image/svg-as-border-image-4-ref.html | image comparison, max difference: X, number of differing pixels: Y

bug 1581802 Perma Tier 2 text-stroke/webkit-text-stroke-property-[2/3/4].html == text-stroke/webkit-text-stroke-property-[2/3/4]-ref.html | image comparison, max difference: x, number of differing pixels: y | webkit-text-stroke-property-002.html

bug 1582038 Intermittent bugs/605138-1.html == bugs/605138-1-ref.html | image comparison, max difference: 5, number of differing pixels: X

bug 1582288 15,500 instances of "Attempting to get a displayport from a content with no primary frame!" emitted from layout/base/nsLayoutUtils.cpp during linux64 debug testing

bug 1582390 Intermittent TEST-UNEXPECTED-PASS | backgrounds/attachment-local-clipping-image-6.html == backgrounds/attachment-local-clipping-image-6-ref.html | image comparison, max difference: 64, number of differing pixels: 2460

bug 1582530 Turn on `layout.css.xul-box-display-values.survive-blockification.enabled` by default

bug 1582561 Perma Windows AArch browser/components/places/tests/browser/browser_sidebarpanels_click.js | application crashed [@ mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush)]

bug 1582758 Intermittent TEST-UNEXPECTED-PASS | border-image/svg-as-border-image-4b.html == border-image/svg-as-border-image-4-ref.html | image comparison, max difference: 16, number of differing pixels: 82

bug 1582819 Add assertions to catch cases where we've been depending on implicit blockification of -moz-box

bug 1583534 Further simplify PresShell::ResizeReflow.

bug 1584263 No need to flush delayed resizes while updating layout.

bug 1584285 Add a pref to disable scroll anchoring suppression triggers on Nightly.

bug 1584306 Replace <xul:textbox> with <html:input> in layout/tools/layout-debug/ui/content/layoutdebug.xul (layout debugger)

bug 1584638 Relax -moz-box blockification assertions to be debug-only

bug 1584760 Intermittent TEST-UNEXPECTED-PASS | border-image/svg-as-border-image-4b.html == border-image/svg-as-border-image-4-ref.html | image comparison, max difference: 16, number of differing pixels: 69

bug 1584950 Use StaticPrefs in ScrollFrameHelper::IsSmoothScrollingEnabled.

bug 1585217 Make the layout debugger with -autoclose handle content process crashes by exiting with an abnormal status.

bug 1585637 Ship the mapping of img width and height to aspect-ratio.

bug 1585863 Remove nsChangeHint_UpdateTextPath.

bug 1586600 Assertion failure: !OwnerDoc()->IsScrollingElement(this) (How can we have a scrollframe if we're the scrollingElement for our document?), at dom/base/Element.cpp:682

bug 1587661 Really minor cleanup to the scroll anchoring suppression code.

bug 1588486 Whitespace inside display: contents inside an inline is incorrectly optimized away.

bug 1588675 Use nsPresContext::IsRootContentDocumentCrossProcess instead of IsRootContentDocument for places where we call nsLayoutUtils::ComputeScrollMetadata

bug 1588743 Remove old scroll-snap implementation, and scroll snapping prefs.

bug 1588748 Turn a scroll anchoring assertion into a release assert.

Layout: Block and Inline

bug 1102175 <body> with writing-mode: vertical-rl doesn't align children to the right

bug 1168921 box-decoration-break:clone should not clone block margins

bug 1220352 Line box height should not grow to accommodate border and padding of non-replaced inline boxes

bug 1582224 Split the SIDEWAYS bit in WritingMode

bug 1587624 Add a console log when we propagate principle writing mode from <body>

Layout: Columns

bug 1423383 Enable pref for column-span (layout.css.column-span.enabled) by default for Nightly only.

bug 1426010 Enable pref for column-span (layout.css.column-span.enabled) by default on release.

bug 1514584 Intermittent columns/column-balancing-overflow-003.html == columns/column-balancing-overflow-003.ref.html | image comparison, max difference: 78, number of differing pixels: 87

bug 1523582 The border of box that is split by a column-span shouldn't have border on all sides

bug 1547160 Fix existing reftests failure related to column-span

bug 1575016 Revisit the 1px minimum column block-size for column-boxes

bug 1575054 Investigate why maximum nested balancing levels of 2 doesn't improve the performance after enabling column-span

bug 1575964 layout/reftests/columns/column-box-alignment-rtl.html fails if column-span is enabled

bug 1579565 Fix the margin-bottom falsely applied for a block container if it is split by a column-span

bug 1583639 Improve column fragmentation story with "column-fill:auto" mode in nested columns

Layout: Floats

bug 1579295 Change <body> tag to <main> for shape-outside tests

Layout: Form Controls

bug 1562057 <select> elements with size containment & auto width should render the same as an empty <select> element

bug 1577072 Debian 10 - forms/input/text/line-height-1.5.html != forms/input/text/line-height-1.0.html | image comparison, max difference: 0, number of differing pixels: 0

bug 1577602 input type=number on Windows shows two very small arrow buttons (height=4.5px each)

bug 1584652 Intermittent android css-ui-valid/select/select-valid.html == css-ui-valid/select/select-ref.html | image comparison, max difference: 8, number of differing pixels: 1

bug 1585216 Grid baseline is not preserved correctly when the item that should generate it is <input type=number>

bug 1586512 Perma fail Tier 2 Central TEST-UNEXPECTED-PASS | chrome://reftest/content/forms/textbox/accesskey-4.xul == chrome://reftest/content/forms/textbox/accesskey-4-ref.xul | image comparison, max difference: 0, number of differing pixels: 0

Layout: Grid

bug 1549620 [css-grid] repeat(auto-fill/fit) needs to take box-sizing:border-box into account for the input sizes

bug 1560397 MozCrash near [@ ToPositionAndLength]

bug 1579671 Assertion failure: aNumTracks >= aFunctions.mExplicitGridOffset + aFunctions.NumExplicitTracks()

bug 1579993 Add WPT subgrid tests

bug 1580894 Enable subgrid by default

bug 1581106 [css-grid-2] 'repeat(auto-fill, <line-names>+)' isn't expanded correctly in a subgridded axis

Layout: Images, Video, and HTML Frames

bug 1578158 images decoded in inactive tabs

bug 1581804 Intermittent Tier 2 image-element/element-paint-native-widget.html == image-element/element-paint-native-widget-ref.html | image comparison, max difference: x, number of differing pixels: y

bug 1582915 Intermittent image-element/element-paint-native-widget.html == image-element/element-paint-native-widget-ref.html | image comparison, max difference: 7, number of differing pixels: 1321

Layout: Ruby

bug 1565681 Ruby base box height is not set by the font size of its contents

Layout: Scrolling and Overflow

bug 1540203 overflow-anchor difference in behavior compared to Chrome

bug 1581690 scrollLeft is mistakenly a zero or negative value for a block-RTL element, and scrollTop is also mistakenly a zero or negative value for a block-RTL and inline-RTL element (orthogonal block; writing-mode: vertical-rl)

bug 1582585 Middle-mouse autoscroll scrolls non-scrollable iframes

bug 1585317 Scroll anchoring ignores scroll-padding

bug 1586909 m.twitch.tv infinitely scrolls

Layout: Tables

bug 1482778 Table outline does not include caption

bug 1580346 When the page direction is rtl the table margins go wrong

Layout: Text and Fonts

bug 1315892 'text-orientation: upright' should cause all characters to be treated as strong LTR

bug 1401575 Update Bulgarian hyphenation dictionary

bug 1468131 UBSan: pointer index expression overflowed [@ GetTrimmableWhitespaceCount]

bug 1563602 Firefox renders zh-Hani with a Japanese font, not a Chinese one.

bug 1573631 [css-text-decor-4] Let `text-decoration-skip-ink`, `text-decoration-thickness`, and `text-underline-offset` ride the trains to release

bug 1576077 "fake bold" fonts do not print correctly with E10S

bug 1578154 Crash in [@ gfxFontGroup::GetUnderlineOffset]

bug 1580690 Crash in [@ gfxFontEntry::HasCharacter]

bug 1581472 Errors for font sanitization aren't shown by default.

bug 1584718 Codepoint U+FE0F (Variation Selector-16) affecting the width of adjacent space characters

Printing: Setup

bug 1568968 Re-enable existing print telemetry on release

SVG

bug 1543639 Intermittent text-svgglyphs/svg-glyph-extents.html == text-svgglyphs/svg-glyph-extents-ref.html | load failed: timed out waiting for reftest-wait to be removed

bug 1565842 Intermittent svg/as-image/img-width-slice-1.html == svg/as-image/img-width-slice-1-ref.html | image comparison, max difference: 255, number of differing pixels: 281

bug 1574137 Intermittent layout/svg/tests/test_filter_crossorigin.html | reftest comparison: == Testcase loaded from example.org Reference: yellow/black

bug 1578098 More namespace fixes

bug 1578516 Perma fail Tier 2 /svg/animations/slider-switch.html | Check correct event bases for onclick - assert_equals: expected "block" but got "none"

bug 1579199 Intermittent /svg/animations/slider-switch.html | Check correct event bases for onclick - assert_equals: expected "block" but got "none"

bug 1580358 Intermittent svg/filters/filter-clipped-rect-01.svg == svg/filters/pass.svg | image comparison, max difference: 7, number of differing pixels: 220

bug 1580698 Permafailing tier 2 svg/mask-img.html == svg/mask-img-ref.html | image comparison, max difference: 128, number of differing pixels: 142

bug 1581399 Remove useless rule in svg.css

bug 1582506 Remove some pointless null-checks in DOMSVGLengthList

bug 1582963 Intermittent svg/as-image/img-widthAndHeight-slice-1.html == svg/as-image/img-widthAndHeight-slice-1-ref.html | image comparison, max difference: 255, number of differing pixels: 25

bug 1582991 Try to fix crash in nsFilterInstance::Render

bug 1582996 Intermittent svg/radialGradient-basic-03.svg == svg/radialGradient-basic-03-ref.svg | image comparison, max difference: 5, number of differing pixels: 330

bug 1583969 Intermittent /svg/animations/scripted/onhover-syncbases.html | Check if onhover events reset correctly when triggered multiple times - assert_equals: expected "rgb(255, 0, 0)" but got "rgb(0, 255, 0)"

bug 1584852 Convert SVGZoomAndPan to mixin