Platform/Layout/ReleaseNotes/64
Contents
- 1 Firefox 64 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: Form Controls
- 1.2.9 Layout: Generated Content, Lists, and Counters
- 1.2.10 Layout: Grid
- 1.2.11 Layout: Images, Video, and HTML Frames
- 1.2.12 Layout: Scrolling and Overflow
- 1.2.13 Layout: Tables
- 1.2.14 Layout: Text and Fonts
- 1.2.15 Printing: Output
- 1.2.16 SVG
Firefox 64 Platform Layout Release Notes
Noteworthy Changes
Features
- Implemented interaction (hover/pointer type) media queries from Media Queries Level 4 (bug 1035774)
- Enabled CSS style-able scrollbar support from Scrollbars Level 1 (bug 1492012)
- Added support for multi-position gradient color stops syntax from Images Level 4 (bug 1352643)
- Added support for proposed
@supports selector()
syntax (bug 1499386) - Added support for
window.screenLeft
andwindow.screenTop
(bug 1498860) - Added support for
text-transform: full-size-kana
(bug 1498148)
Web Compatibility
- Removed support for -moz/-webkit-appearance values not supported in other browsers (bug 1496720)
- Fix default page width bug when page has two different <meta name="viewport"> tags (bug 1476995)
- Added support for <meta name="viewport"> "extend-to-zoom" semantics (bug 1494422)
All Bugs Fixed
Note: Does not include some minor automated fixes, such as web platform test syncs.
CSS Parsing and Computation
bug 1338158 Use the 'unset' value more in UA sheets
bug 1352643 [css-images-4]Implement multi-position gradient color-stops syntax
bug 1368555 [Meta] Implement -webkit-appearance
bug 1386907 don't build a staticlib for geckoservo
bug 1408841 Remove preference "layout.css.filters.enabled"
bug 1434963 Apply CORS Mode to shape-outside ImageValues at point of construction
bug 1440251 Allow division in calc for <integer>s.
bug 1472172 Old css/css-transitions tests flaky
bug 1472917 Implement the even smarter interpolation for transform list
bug 1475691 Publish servo_arc on crates.io
bug 1477079 Crash in nsXBLResourceLoader::StyleSheetLoaded
bug 1478505 Add support for CSS prefers-reduced-motion media feature for Android
bug 1483075 Merge scrollbar color properties into one
bug 1483111 Implement any-pointer and any-hover media queries features
bug 1486325 Enable layout.css.unknown-webkit-pseudo-element by default
bug 1487838 Add a pref for |clip-path:path()|
bug 1488155 links sometimes not styled properly in about:privatebrowsing in a private browsing window
bug 1488300 Loading of external resources referenced from CSS like elements from SVG document should block onload
bug 1488472 Bug 1445834 disabled the CSS border tests everywhere.
bug 1488817 Assertion failure: mOwner == ExpectedOwnerForChild(aFrame) (Missed some frame in the hierarchy?), at /builds/worker/workspace/build/src/layout/base/RestyleManager.cpp:2045
bug 1488854 Sync some servo changes.
bug 1489529 Update comments that refer to nsRuleNode to refer to the right thing
bug 1489667 Cherry-pick servo/servo#21635
bug 1489676 Teach the ComputeSquaredDistance derive about #[animation(constant)]
bug 1489862 Cherry-pick servo/servo#21652
bug 1490311 Some misc. cleanup
bug 1490432 Preemptively fix unified bustage in layout/style
bug 1490791 Make the shadow root stylesheet list (and .sheet) only work on connected trees.
bug 1491577 Sync servo stuff.
bug 1491579 Enable nsstring/gecko_debug in a place other than components/style.
bug 1491620 Split apply_declarations.
bug 1491622 Some minor cleanups.
bug 1492012 Enable scrollbar properties by default
bug 1492567 Back out bug 1481866.
bug 1493043 Change function arguments from nsIFrame& to nsIFrame* in RestyleManager
bug 1493181 The size of the 'ch' unit may be inappropriately rounded up when converting to appUnits
bug 1493435 Sync servo stuff.
bug 1493507 Don't walk the rule tree three times from apply_declarations.
bug 1494384 fix bindgen for aarch64 windows
bug 1494501 Rename pref "layout.css.scrollbar-colors.enabled" to "layout.css.scrollbar-color.enabled"
bug 1494607 Have custom scrollbars blend with underlying natively for Windows
bug 1494622 Cleanup a bit CSSValue and such.
bug 1495353 remove unused css::URLValueData::MightHaveRef
bug 1495645 move image request table out of css::ImageValue
bug 1495984 nsContentUtils::IsLocalRefURL differs from CssUrl::is_fragment
bug 1495994 merge ImageValue, URLValue, and URLValueData
bug 1496008 Serialize some more image properties using servo.
bug 1496041 Remove unused ImageValue constructor.
bug 1496279 ImageLoader::RegisterCSSImage doesn't need to be called on loading document when printing
bug 1496287 fix "warning: unused import: `std::mem`"
bug 1496295 remove some more unused methods from css::URLValue
bug 1496308 require URLExtraData::mPrincipal to be non-null
bug 1496312 URLValueData doesn't need to release mBaseURI and mReferrer on the main thread
bug 1496558 Handle max-content/min-content/fit-content/available keywords for block-size dimension properly
bug 1496720 [css-compat] Unship -moz/webkit-appearance values not supported by other UAs / spec
bug 1496961 Let some XUL unshipping prefs ride the trains.
bug 1497406 add helper function to set length and copy into nsTArrays of PODs from Rust
bug 1497607 Sync servo stuff.
bug 1497734 Rename nsStaticAtom subclasses
bug 1497972 Use LookupForAdd in ImageLoader::LoadImage.
bug 1497981 Simplify a bit ImageLoader::LoadImage.
bug 1497986 Some more nsCSSValue cleanup.
bug 1498734 Always compute angle values to degrees.
bug 1498755 clean up and document Servo binding header files
bug 1498943 Don't copy style structs for stuff that is not going to change.
bug 1499359 Unused import warning: HashMap in servo/components/style/build_gecko.rs
bug 1499386 Implement @supports selector() syntax.
bug 1499408 slim down css::URLValue a little more
bug 1499778 Remove StaticId.
bug 1499863 Dynamic changes to will-change which cause the creation of an abspos containing block aren't honored.
bug 1499991 nsStyleDisplay::CalcStyleDifference doesn't handle no-op will-change changes correctly.
bug 1500260 Sync servo stuff.
CSS Transitions and Animations
bug 1486094 Make path() animatable
bug 1488414 Broken slider box on cdu-niedersachsen.de
bug 1489965 change default bug component for css-animations and css-transitions reftests
bug 1491954 Filping boolean half way for path() interpolation
DOM: CSS Object Model
bug 1478485 Incorrect value for position:absolute's getComputedStyle left (for display:grid)
bug 1498445 cssstyledeclaration-mutationrecord-002.html is not testing what it wants to test.
bug 1498860 Consider implementing window.screenLeft and window.screenTop
Layout
bug 326944 Remove nsIComboboxControlFrame
bug 328680 Remove nsIListControlFrame
bug 458473 ReflowInput::InitConstraints potential use of uninitialized value
bug 1035774 Implement Interaction Media Features including pointer:coarse that replaces non-standard -moz-touch-enabled
bug 1299118 Implement Time to Interactive (TTI) for Telemetry/Profiler
bug 1428670 Font inflation layout regression
bug 1445570 Ensure notifying the MozAfterPaint correctly without timer.
bug 1470462 Implement contain:size for GridContainerFrame
bug 1476995 page with two different <meta name="viewport">s has a different "default width" on Chrome and Firefox on Android.
bug 1481098 Remove Unused aParentContext Parameter in ServoStyleSet::ResolveStyleFor Function
bug 1483659 Perspective frames with transformed children might not have correct overflow areas
bug 1485581 grid item's height affected by img's width in vertical writing mode
bug 1487190 Update bugzilla metadata in moz.build to reflect Layout components reorganization in bug 1484408
bug 1488684 Devirtualize more of layout
bug 1488728 Remove PresShell::GetEventTargetFrame
bug 1489015 Remove nsAbsoluteItems::AddChild()
bug 1489149 Assertion failure: !aPrevFrame || (!aPrevFrame->GetNextContinuation() || (((aPrevFrame->GetNextContinuation()->GetStateBits() & NS_FRAME_IS_OVERFLOW_CONTAINER)) && !(aPrevFrame->GetStateBits() & NS_FRAME_IS_OVERFLOW_CONTAINER))) (aPrevFrame must be the la
bug 1489770 crash at null in [@ nsCSSFrameConstructor::CreateContinuingFrame]
bug 1490012 crash at null in [@ mozilla::ServoStyleSet::UpdateStylist]
bug 1490037 Assertion failure: content == pc->Document()->GetRootElement() (Root element is the only case for this fallback path to be triggered), at /builds/worker/workspace/build/src/layout/base/nsLayoutUtils.cpp:10268
bug 1490111 contain-layout-formatting-context-margin-001's reference file (expressed in <link> tag) is incorrect
bug 1490216 some miscellaneous old code removal
bug 1490410 PresShell.cpp:7947:10: warning: 'return' will never be executed [-Wunreachable-code-return]
bug 1490611 Refactor DISPLAY_*_WIDTH macro names(and the relevant struct of the macro contents) to logical DISPLAY_*_INLINE_SIZE
bug 1491235 [css-contain] Size containment should not suppress baseline alignment (but layout containment should)
bug 1491639 IS_TABLE_CELL should be renamed since it is not a macro
bug 1493222 Expose some InspectorUtils APIs to fuzzers
bug 1493710 SUMMARY: AddressSanitizer: SEGV /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/WritingModes.h:244:38 in IsVertical
bug 1493741 Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Extra child frame found in nsVideoFrame. Possibly from stray whitespace around the videocontrols container element.), at /builds/worker/workspace/build/src/layout/generic/nsVideoFrame.cpp:408
bug 1494030 Assertion failure: aNextSibling->GetParent() == aParentFrame (Wrong parent), at /builds/worker/workspace/build/src/layout/base/nsCSSFrameConstructor.cpp:6083
bug 1494332 Assertion failure: parent->HasFirstLetterChild(), at /builds/worker/workspace/build/src/layout/base/nsCSSFrameConstructor.cpp:10697
bug 1494426 Use ReflowInput::AvailableSize() and ComputedSize() convenience methods in a few more places
bug 1494745 Simplify nsRefreshDriver::AddRefreshObserver because it's infallible
bug 1495323 ReflowInput::FontSizeInflationListMarginAdjustment unnecessarily computes amount of font size inflation
bug 1495470 Google Photos' left sidebar menu items (e.g. "Albums") are unclickable, if CSS Containment is enabled
bug 1496014 shape changes unnecessarily trigger reframe.
bug 1496833 Add a reftest that depends on ancestor intrinsics being cleared on bsize changes.
bug 1498067 Add event markers for WipeContainingBlock and related expensive paths in the frame constructor.
Layout: Block and Inline
bug 1487221 We don't have memory reporting for nsLineBox::mFrames
bug 1491731 [css-text] calc() text-indent doesn't contribute to intrinsic size if it has a percentage
bug 1493805 We should initialize ReflowInput::mCBReflowInput also for placeholders
Layout: Columns
bug 1346983 Create ColumnSetWrapper to be used as a parent for nsColumnSetFrames and spanners. (nsColumnSetFrames will be split on the basis of column-span elements)
bug 1490525 Unbitrot reflow logs in nsColumnSetFrame
bug 1495875 Fix wpt test multicol-span-none-001-ref.xht
bug 1496275 Fix wpt test multicol-span-all-margin-bottom-001-ref.xht
Layout: Flexbox
bug 1490890 nsFlexContainerFrame::MarkIntrinsicISizesDirty is too aggressive
bug 1491510 Perma Tier2 /css/css-contain/contain-size-flexbox-001.html | [Exception... "Unexpected error" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://marionette/content/reftest.js :: screenshot :: line 388" data: no]
bug 1493645 {inc} Youtube video titles wrongly overlap the content sometimes.
bug 1494694 FlexItem mainDeltaSize is not well-documented
bug 1497589 Extend flexbox devtools API to return the physical directions of the axes
bug 1498281 The flex base size that we report to devtools API has sometimes already been clamped to min/max-size
bug 1499542 Skip FreezeItemsEarly() step of flex layout if we're collecting data for flex devtools
bug 1499569 Improve mochitest test_flex_items.html
bug 1499875 Extend test_flex_items.html with some items that grow & shrink by known amounts
bug 1500608 "###!!! ASSERTION: availableFreeSpace's sign should match isUsingFlexGrow" followed by "Assertion failure: !isUsingFlexGrow (Unfrozen items can only shrink if we're distributing (negative) space with flex-shrink), "
bug 1500609 layout/generic/nsFrame.cpp:5223:20: error: use of undeclared identifier 'CachedFlexMeasuringReflow'
Layout: Form Controls
bug 1005268 element.type returns "text" for input type month|week|datetime|datetime-local
bug 1488219 Assertion failure: nullptr != aFrame && nullptr != aState (null parameters passed in), at src/layout/base/nsFrameManager.cpp:172
bug 1488301 <legend> auto inline margins doesn't work correctly
bug 1488657 scrollbar-width: none doesn't have effect on <textarea>
bug 1490747 <legend> margins affects its border-box alignment with the <fieldset> border
bug 1495153 Replace the XUL label in <input type=file> with an HTML label
bug 1496232 Remove references to textbox.css in datetimebox.xml
bug 1498632 Input date and time does not respect CSS rules for cursor
bug 1498769 <option> elements with "display: none" style can still be selected using the keyboard
bug 1498869 macOS: Some form elements rendered invisible, error in STDOUT
bug 1499127 display:none on option/optgroup makes <select size=4> list have zero block-size
bug 1499230 Inline-size is too wide for empty <select> lists compared to other UAs
bug 1499578 <select size=1> block-size calculation is wacky
Layout: Generated Content, Lists, and Counters
bug 1486602 display: list-item should be supported on legend, but not on fieldset
Layout: Grid
bug 1490032 AddressSanitizer: SEGV /builds/worker/workspace/build/src/obj-firefox/dist/include/nsTArray.h in Length (called by nsGridContainerFrame)
bug 1490730 [css-grid] Static position should use content-box, not padding-box
Layout: Images, Video, and HTML Frames
bug 1490414 Preemptively fix unified bustage in layout/generic
bug 1490685 Assertion failure: density > 0.0, at /builds/worker/workspace/build/src/layout/generic/nsImageFrame.cpp:411
Layout: Scrolling and Overflow
bug 1486695 Scrolling not working in an iframe on Android.
bug 1494422 Implement "extend-to-zoom" semantics in meta viewport tags
Layout: Tables
bug 1397119 Move GetBStartBCBorderWidth, GetBEndBCBorderWidth and any similar methods' return type to BCPixelSize rather than nscoord
Layout: Text and Fonts
bug 1380830 Intermittent font-inflation/container-with-clamping.html == font-inflation/container-with-clamping-ref.html | image comparison, max difference: 255, number of differing pixels: 10142
bug 1432198 Ensure a minimum rendered width of 0.5ch for tabs [was: https://golang.org/src/errors/errors.go pre eliminates leading whitespace]
bug 1487553 Make gfxSparseBitSet use a more compact representation
bug 1490402 Use UTF-8 strings for font family & face names, etc in the system font list
bug 1490997 Use nsAtom instead of nsString for font family name in the FontFamilyName struct
bug 1491860 Use utf-8 strings for font names that we read from preferences
bug 1492220 Tab crashes when visiting v-fonts
bug 1492518 Remove 16-bit string version of gfxPlatformFontList::GenerateFontListKey
bug 1494380 Assertion failure: aWM.IsVertical(), at /builds/worker/workspace/build/src/layout/generic/nsTextFrame.cpp:6661 (with 'text-combine-upright' and 'sideways-rl')
bug 1498148 Implement text-transform: full-size-kana
bug 1498438 Use Microsoft JhengHei for zh-TW on all channel
bug 1498571 Cleanup FontPropertyTypes.
bug 1500815 font-inflation/list-1.html reftest has spurious Ahem font
Printing: Output
bug 1448507 WebExtension tabs.insertCSS not applied when printing
SVG
bug 1396642 SVG wrong size with viewBox width/height non-integers
bug 1449883 Improve static atom handling in dom/svg/
bug 1474982 Assertion failure: lengthAdjust == LENGTHADJUST_SPACING, at src/layout/svg/SVGTextFrame.cpp:5328
bug 1488700 Some SVG rendering observer cleanup
bug 1489848 SVG elements don't implement click()
bug 1492432 Remove PaintingPropertyDescriptor parameter from SVGObserverUtils::GetPaintServer
bug 1492573 Make SVGTextFrame ignorant of the implementation details of SVG rendering observers
bug 1492660 feTurbulence fails to render with certain filter sizes when baseFrequency="0 <nonzero>"
bug 1492694 invalid filter primitive in="" attributes should be treated as if they weren't specified
bug 1492812 Intermittent TVw /css/filter-effects/svg-unknown-input-001.html, svg-unknown-input-002.html | Testing http://web-platform.test:8000/css/filter-effects/svg-unknown-input-001.html ==svg-unknown-input-ref.html
bug 1492883 Hide the implementation details of SVG rendering observers for markers
bug 1493049 Stop using nsSVGPaintingProperty for observing SVG "template" elements
bug 1493406 Hide the implementation details of SVG rendering observers for template elements
bug 1494092 Get rid of SVGFilterObserverList::IsInObserverLists
bug 1494285 Rename nsDisplaySVGEffects and subclasses
bug 1494321 Stop doing wasteful pre/post-effects work for frames with just a clip-path or mask applied
bug 1494355 Separate out the SVGObserverUtils filter handling from EffectProperties
bug 1494604 Figure out what to do with nsSVGUtils::NotifyAncestorsOfFilterRegionChange
bug 1494695 Remove SVGFilterElement::Invalidate
bug 1494820 Stop leaking SVGObserverUtils implementation details into CanvasRenderingContext2D
bug 1494830 Stop leaking SVGFilterObserverList details into nsSVGIntegrationUtils
bug 1494953 Make nsFrame::DidSetComputedStyle initiate resource document filter loads
bug 1495034 Separate out the SVGObserverUtils clip path handling from EffectProperties
bug 1495215 Separate out the SVGObserverUtils mask handling from EffectProperties
bug 1495246 Only call SVGObserverUtils::UpdateEffects on FirstContinuationOrIBSplitSibling frames
bug 1495249 Make ComputePostEffectsVisualOverflowRect use the first continuations/block-in-inline siblings for SVG observers
bug 1495330 Hide SVGObserverUtils implementation details from nsImageRenderer
bug 1495390 Inline some SVGObserverUtils code
bug 1495438 Move most code from SVGObserverUtils.h to its source file
bug 1495562 Rename SVGRenderingObserverList to SVGRenderingObserverSet
bug 1495851 Comment why StopObserving is called in SVGRenderingObserver base class destructors
bug 1495877 Standardize the GetAndObserve* naming for SVGObserverUtils methods