From MozillaWiki
Jump to: navigation, search

Firefox 63 Platform Layout Release Notes

Noteworthy Changes


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 = "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

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/

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

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/*

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/

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-")',

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


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

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

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


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