Platform/Layout/ReleaseNotes/62
Firefox 62 Platform Layout Release Notes
Noteworthy Changes
- Added support for
shape-outside
,shape-image-threshold
, andshape-image-margin
(bug 1098939) - Added support for variable fonts (bug 1302685)
- Added support for colored scrollbars (internal-only) (bug 1460456)
All Bugs Fixed
Note: Does not include some minor automated fixes, such as web platform test syncs.
CSS Parsing and Computation
bug 509958 Remove the -moz prefix from ::selection
bug 1032034 u+foo is not parsed as a valid selector due to the "u+f" being treated as a unicode-range-token
bug 1288572 Hide -moz-prefixed display values from web content
bug 1296209 Support calc() in CSS properties that take <integer> values
bug 1323735 CSS calc() accumulates rounding error that makes lengths to small, and thus makes (100% - Npx) / 8 too big
bug 1396450 Identifier in feature value definition of @font-feature-values should be case-sensitive
bug 1408301 unship CSSStyleDeclaration::getPropertyCSSValue
bug 1410578 ensure <link rel=stylesheet> works in shadow trees
bug 1418874 Drop nsCSSScanner and CSSLexer
bug 1419695 Make internal -moz-window-opacity and -moz-window-transform transitionable even when the properties are hidden from content pages.
bug 1423895 Crash in core::option::expect_failed | style::stylist::Stylist::insert_stylesheet_before
bug 1442195 Crash in mozalloc_abort | abort | style::gecko_bindings::structs::root::mozilla::GeckoFont::clone_font_family
bug 1447009 Stylesheets in shadow DOM with title attribute shouldn't affect the preferred stylesheet of the document.
bug 1449243 thread '<unnamed>' panicked at 'assertion failed: !author_styles.stylesheets.dirty()', servo/components/style/gecko/wrapper.rs:174:9
bug 1451289 Rename / merge all CSS rule classes into their corresponding dom::CSS*Rule
bug 1454835 Intermittent /css/css-shapes/spec-examples/shape-outside-012.html | CSS Test: Shape from image - shape-image-threshold - 0.9 - uncaught exception: Error: assert_unreached: Giving up waiting for shape layout to happen! Reached unreachable code
bug 1457353 nsStyleSVGReset: Replace nsColor with StyleComplexColor
bug 1457373 Remove pref "layout.css.text-combine-upright-digits.enabled"
bug 1457810 Move CalcComplexColor to ComputedStyle
bug 1459111 Rename ServoCSSParsingEnvironment and related functions to ParsingEnvironment.
bug 1459363 Remove unused NS_COLOR_* macros
bug 1459367 Convert NS_STYLE_IMAGELAYER_ATTACHMENT_* to enum class
bug 1459498 Another round of CSS Loader cleanup.
bug 1459529 Audit callers to StyleSheet::GetAssociatedDocument
bug 1459844 Share more code and fix inconsistencies between HTMLStyleElement / SVGStyleElement.
bug 1459871 Remove other getPropertyCssValue-related interfaces.
bug 1460110 Remove some header dependencies to ServoStyleRuleMap.h
bug 1460192 Rename pointing struct to inherited_ui
bug 1460382 NODE_IS_NATIVE_ANONYMOUS looks redundant to me
bug 1460456 Add some scrollbar color properties
bug 1460655 Support 'x' as a resolution unit.
bug 1460682 nsSelectionStyle::mUnderlineStyle should be compared against NS_STYLE_TEXT_DECORATION_STYLE_NONE
bug 1461070 Specified transition duration and delay are ignored if both are 0s and a targeted property is specified multiple times in transition-property
bug 1461288 Distinguish between specified and computed URLs.
bug 1461296 Add some missing clone_* implementations, and remove some dubious code.
bug 1461858 Simplify code around building ComputedImageUrl
bug 1461933 Avoid massive dependency to ServoBindings.h
bug 1461940 Remove Get-prefix from some methods around nsStyleImageRequest which cannot return null
bug 1462618 The restyle root machinery could work a bit better.
bug 1462829 Cleanup vector types
bug 1463386 Simplify a bit of the image request related code.
bug 1463396 Remove dead nsStyleUtil::AppendSerializedFontSrc.
bug 1463511 Remove some cruft from forms.css
bug 1463589 Update valid property values for CSS "contain"
bug 1463687 Have viewport uses scrollbar color properties on root element
bug 1463917 Use widget code to render scrollcorner
bug 1463978 "unreachable pattern" warning for background-attachment
bug 1463993 Add rendering test for scrollbar color properties
bug 1464060 Misc. ComputedStyle cleanup.
bug 1464091 CSS Media Features not case-insensitive
bug 1464428 Optimize QuerySelector in shadow trees.
bug 1464496 Merge ServoDeclarationBlock and DeclarationBlock
bug 1464595 Cleanup some single transform functions that can't really error.
bug 1464615 Consider mismatched rotations matching transform operations.
bug 1464627 Fix the spec link to 3D rotation matrix
bug 1464647 Implement the smarter interpolation for transform list
bug 1464744 Add wpt test for bug 1463687
bug 1464834 Remove dead Servo code.
bug 1464959 Intermittent PROCESS-CRASH | automation.py | application crashed [@ PLDHashTable::Search(void const *)]
bug 1465066 Cleanup transform animation.
bug 1465107 Remove most of the remaining stylo mentions from tests and such.
bug 1465291 :host::after and :host::before don't work inside a shadow tree
bug 1465307 Extend StyleComplexColor to support other blends besides linear interpolation.
bug 1465572 Crash in geckoservo::glue::Servo_Element_GetPrimaryComputedValues
bug 1465628 Looks like we need to update devtools css db
bug 1466008 pref'ing off properties doesn't pref off their will-change support
bug 1466095 Make PropertyId::parse less of a footgun.
bug 1466136 Do not look at the rule type when parsing property ids from values.
bug 1466406 Crash in _$LT$style..invalidation..element..invalidator..TreeStyleInvalidator$LT$$u27$a$C$$u20$$u27$b$C$$u20$E$C$$u20$P$GT$$GT$::invalidate_descendants::h8da25118e80fb8ee
bug 1466609 Followups to various recent bugs.
bug 1466645 PropertyId::name & users could be nicer.
bug 1466647 Inline more stuff in SmallBitVec.
bug 1466656 Gecko_CreateCSSErrorReporter should not allocate.
bug 1466789 Bump cssparser.
bug 1466963 DeclarationBlock should provide some sort of before-mutation callback to C++
bug 1467379 nsStyleGradientStop: Replace nsColor with StyleComplexColor
bug 1467536 Add infrastructure to serialize properties with Servo.
bug 1467722 Don't return null from getComputedStyle when there's no presentation.
bug 1468127 <slot> UA rule should probably live in html.css
bug 1468133 EnsureNonSVGUserAgentStyleSheetsLoaded looks pretty bogus and slow for the IsBeingUsedAsImage() case.
bug 1468203 remove old references in manifests to windows 8 since we don't run tests on there anymore
bug 1468266 Sync some servo changes.
bug 1468269 Derive Animate for ComplexColorRatios.
bug 1468640 thread '<unnamed>' panicked at 'assertion failed: author_styles.quirks_mode == self.as_node().owner_doc().quirks_mode() || author_styles.stylesheets.is_empty()', servo/components/style/gecko/wrapper.rs:183:9
bug 1468651 Generate different files for different style structs.
bug 1468665 Need to be able to read the old style attribute value when DeclarationBlock callback is called
bug 1468846 Cleanup a bit the media queries code.
bug 1468854 Don't expose -moz-is-resource-document to content sheets.
bug 1469076 thread '<unnamed>' panicked at 'Resolving style on unstyled element', /checkout/src/libcore/option.rs:891:5
bug 1469244 Remove stale servo/components/servo directory.
bug 1469957 Move the error reporter into ParserContext.
bug 1470087 Add some WPT tests for getComputedStyle in display: none subtrees.
bug 1470105 Fix a typo in stylesheet cloning.
bug 1470145 Better debugging for a couple things.
bug 1470150 noscript.css should only apply to HTML elements.
bug 1470358 Deduplicate sheet insertion logic between document and ShadowRoot
bug 1470420 More Loader cleanup.
DOM: CSS Object Model
bug 1186265 Remove DOMPoint{,ReadOnly}(DOMPointInit) constructor, implement DOMPoint{,ReadOnly}.fromPoint
bug 1460295 unresponsive visiting login page on eqbank.ca
bug 1464865 Namespace rules inserted via CSSOM are visible even if they're never inserted.
bug 1468780 Add profiler labels to querySelector / querySelectorAll.
bug 1470099 Make CSSStyleDeclaration's wrapper use nursery heap and make last Release call ClearComputedStyle();
Layout
bug 1165185 Invalidating transformed elements during scrolling
bug 1369395 Intermittent dom/base/test/test_intersectionobservers.html | does trigger if target does not intersect when observing begins [observe] - got +0, expected 1
bug 1414100 Assertion failure: cmp != 0 (same content, different frames) [@ nsGenConList::NodeAfter]
bug 1414303 crash near null in [@ nsContentUtils::ContentIsDescendantOf]
bug 1419802 Assertion failure: ObserverCount() == mEarlyRunners.Length() (observers, except pending selection scrolls, should have been unregistered), at /builds/worker/workspace/build/src/layout/base/nsRefreshDriver.cpp:1185
bug 1423017 Add telemetry to assess how widespread of a problem bug 1423013 ("overflowing content out of reach") is
bug 1455453 Coalesce calls to mFrame->StyleDisplay() in FloatInfo constructor
bug 1458902 [css-grid] Resolve percentage grid-row-gaps against the sum of row sizes (in auto block-size containers)
bug 1460158 Assertion failure: firstChild && firstChild->IsPrimaryFrame() (this is probably not the frame you were looking for), at src/layout/generic/DetailsFrame.cpp:145
bug 1460368 nsContentUtils::GetClosestNonNativeAnonymousAncestor seems to be dead code
bug 1461749 Crash [@ GetBoolFlag]
bug 1461946 Remove nsRefreshDriver::GetRefreshTimerInterval
bug 1461954 Fix nsBulletFrame's image request code.
bug 1461979 Assertion failure: aCBSize.BSize(cbwm) != nscoord((1 << 30) - 1) (containing block bsize must be constrained), at /builds/worker/workspace/build/src/layout/generic/ReflowInput.cpp:1596
bug 1462177 Build inactive layer tree dumping without MOZ_DUMP_PAINTING
bug 1462272 Minor nsImageFrame cleanup.
bug 1462854 [css-grid] Percentage size grid item with overflow != visible is reporting the wrong min-size contribution
bug 1463138 nsIFrame::GetPseudoElement is dead code.
bug 1463599 Make "contain:paint" trigger a stacking context
bug 1463605 nsIFrame::HasOpacityInternal() should check mMayHaveOpacityAnimation flag before calling EffectSet::GetEffectSet
bug 1464113 ImageShapeInfo with shape-margin can't handle shapes offset left or above their margin rects
bug 1464363 Remove IMAGE_GOTINITIALREFLOW
bug 1464882 [css-grid] Make AlignJustifyContent slightly more friendly to axis-independent code
bug 1464883 [css-grid] Remove a redundant ResolveGapToLength call
bug 1464947 display value logging in ReflowInput::DisplayInitFrameTypeExit is wrong
bug 1464967 fix some noisy reflow bitrot
bug 1465250 Make contain:paint trigger clipping independent of overflow
bug 1465273 Intermittent TEST-UNEXPECTED-PASS | bugs/456219-1a.html == bugs/456219-1-ref.html | image comparison, max difference: 56, number of differing pixels: 449
bug 1465290 [css-grid-2] Add a few frame bits to keep track of subgrid state
bug 1465502 Remove NS_FRAME_MAY_HAVE_GENERATED_CONTENT.
bug 1465936 Ignore contain:paint for cases determined in the spec
bug 1465983 Don't resolve FontFaceSet's ready promise in its constructor
bug 1465997 Don't replace FontFaceSet's ready Promise when it's pending
bug 1466004 Flush layout when script asks for document.fonts.ready
bug 1466251 Make sure we reject FontFace.loaded if font loading times out
bug 1466431 Fix resolving of the document.fonts.ready Promise for documents that never load fonts
bug 1466432 Make sure the document.fonts.ready Promise resolves even when there's no refresh driver
bug 1466448 remove ReflowOutput::mFlags
bug 1466643 Remove nsITreeContentView
bug 1466723 Fix race in dom/base/test/test_data_uri.html
bug 1467239 crash near null in [@ GridItemInfo]
bug 1467483 Assert that PresArena is only used on the main thread
bug 1467526 Add a few MOZ_DIAGNOSTIC_ASSERT in nsLineBox::DeleteLineList to enforce our invariants better
bug 1467964 Assertion failure: !mInStyleRefresh, at src/layout/base/RestyleManager.cpp:3113
bug 1468089 Add a few WritingMode convenience methods to simplify consumers that are parameterized on axis
bug 1468263 Make CSSAlignUtils use the accessors from bug 1468089
bug 1468268 Remove & simplify unnecessary CSS in contain:paint reftests
bug 1468582 Remove `using namespace` from headers in layout.
bug 1468590 Preemptively fix unified bustage in layout/base
bug 1468636 Intermittent AddressSanitizer: use-after-poison /builds/worker/workspace/build/src/layout/painting/nsDisplayList.h:2819:59 in GetDisplayItemData
bug 1468663 Preemptively fix unified bustage in layout/generic
bug 1469176 Have nsDocumentViewer::CreateStyleSet load the SVG UA style sheet up front
bug 1469360 remove unused NS_AllColorNames function
bug 1469738 minor cleanups
Layout: Block and Inline
bug 1463603 Changes to nsStyleSVGReset cause display: inline-block to become display:block
Layout: Floats
bug 1454694 Re-enable layout/style/test/test_shape_outside_CORS.html
bug 1457297 Enable shape-outside for all channels
bug 1457602 shape-margin does not work correctly when used with shape-outside image in vertical writing-mode
bug 1459697 crash in [@ nsFloatManager::EllipseShapeInfo::LineEdge]
bug 1460041 shape-outside: polygon with shape-margin > 0 doesn't generate all needed intervals if the shape is offset from its containing block
bug 1461046 Make shape-outside honor shape edges instead of checking for empty float areas (against the CSS Shapes 1 specification)
bug 1463794 Mozilla-created WPT reftests for shape-outside should be hosted in layout/reftests/w3c-css/submitted/
bug 1466231 Inline frames without enough inline space should clear floats, regardless of shape-outside
Layout: Form Controls
bug 1429713 Make -webkit-appearance as an alias of -moz-appearance with pref off in stylo
bug 1459646 [RTL] Resizer icons mirrored
bug 1460787 Assertion failure: aReflowInput.ComputedISize() != nscoord((1 << 30) - 1) (Should have a precomputed inline-size!), at src/layout/forms/nsFieldSetFrame.cpp:369
bug 1464165 Assertion failure: aReflowInput.ComputedISize() != nscoord((1 << 30) - 1) (Must have a computed inline size), at /builds/worker/workspace/build/src/layout/forms/nsListControlFrame.cpp:372
bug 1467586 Only load the <input type="time/date"> picker code when it's used
Layout: Tables
bug 1464928 border-collapse and cell borders on hover cause rendering artifacts
Layout: Text and Fonts
bug 1427660 Hangul jamo in the range of U+A960–U+A97C do not form a syllable
bug 1458004 Link font-style values italic / oblique to the appropriate variation-font axes or synthetic styling
bug 1458301 Harmonize methods for computing the difference between a given font resource and a requested style
bug 1460527 Using variation selectors to change graphical emoji representation doesn’t work
bug 1461039 Assertion failure: !nsLayoutUtils::GetAsBlock(aFrame) || !aFrame->IsBlockOutside() (unexpected block frame), at src/layout/generic/TextOverflow.cpp:78
bug 1461452 Changes to the font.name-list.emoji preference are not picked up until browser restart
bug 1463020 Incorrect letter-spacing on emoji character when used with text-transform
bug 1463115 Add a new skipWhitespace option to InspectorUtils.getUsedFontFaces
bug 1463230 gfxMacFont.cpp error: using integer absolute value function 'abs' when argument is of floating point type
bug 1464400 Add a CSSGeneric attribute to InspectorFontFace
bug 1464813 eDontReparentFrames is unnecessary.
bug 1465305 Assertion failure: !mTransformChanged, at src/gfx/thebes/gfxContext.cpp:230
bug 1466332 Update font-matching algorithm to more closely match CSS Fonts 4 spec
Printing: Output
bug 221706 Margins on printout are larger than defined.
SVG
bug 1422226 crash near null in [@ mozilla::SVGGeometryFrame::GetCanvasTM]
bug 1458580 Split GetSMILOverrideStyle into a function that returns the existing one, and a function that creates it if needed.
bug 1458968 Make every nsSVGOuterSVGAnonChildFrame a reference frame
bug 1459890 SVG clip-path produces wrong result on filtered element
bug 1461517 clipPath-basic-05.svg misspells the clip-path presentation attribute