Timeline
Sep 6, 2020:
- 11:19 PM Changeset in webkit [266693] by
-
- 8 edits in trunk/Source
[iOS] attachmentActionFont() Needs to use kCTFontSymbolicTrait: @(kCTFontTraitTightLeading | kCTFontTraitEmphasized) to get the short emphasized footnote font
https://bugs.webkit.org/show_bug.cgi?id=215707
<rdar://problem/63930892>
Reviewed by Darin Adler.
Source/WebCore:
This is the correct way to get the short emphasized footnote font.
- rendering/RenderThemeIOS.mm:
(WebCore::attachmentActionFont):
Source/WebCore/PAL:
- pal/spi/cocoa/CoreTextSPI.h: Add an optimzation for platforms which support it.
Source/WTF:
- wtf/PlatformHave.h:
- 11:11 PM Changeset in webkit [266692] by
-
- 7 edits in trunk/Source/WebCore
[Cocoa] Prepare for migrating to CTFontHasTable() once it's faster than CTFontCopyAvailableTables()
https://bugs.webkit.org/show_bug.cgi?id=215688
Reviewed by Darin Adler.
Source/WebCore:
We can directly ask Core Text for the information we're looking for.
No new tests because there is no behavior change.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontType::FontType):
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::fontHasVerticalGlyphs):
- platform/graphics/opentype/OpenTypeCG.cpp:
(WebCore::OpenType::fontHasMathTable):
Source/WebCore/PAL:
- pal/spi/cocoa/CoreTextSPI.h:
- 8:11 PM Writing testharness Tests edited by
- (diff)
- 7:34 PM Writing Layout Tests for DumpRenderTree edited by
- Use js-test.js instread of js-test-pre.js (diff)
- 7:22 PM Changeset in webkit [266691] by
-
- 19 edits in trunk/Source/WebCore
Make
WebCore::WritingModean 8-bit enum class
https://bugs.webkit.org/show_bug.cgi?id=216233
Reviewed by Darin Adler.
Narrow WebCore::WritingMode to an 8-bit enum class; no change in behavior.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator WritingMode const):
- css/CSSProperty.cpp:
(WebCore::resolveToPhysicalProperty):
- dom/Element.cpp:
(WebCore::toScrollAlignmentForInlineDirection):
(WebCore::toScrollAlignmentForBlockDirection):
- page/FrameView.cpp:
(WebCore::paginationModeForRenderStyle):
- platform/text/WritingMode.h:
- rendering/GridBaselineAlignment.cpp:
(WebCore::BaselineGroup::isOppositeBlockFlow const):
(WebCore::BaselineGroup::isOrthogonalBlockFlow const):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustBorderBoxRectForPainting):
(WebCore::RenderBlock::paintRectToClipOutFromBorder):
(WebCore::RenderBlock::borderTop const):
(WebCore::RenderBlock::borderLeft const):
(WebCore::RenderBlock::borderBottom const):
(WebCore::RenderBlock::borderRight const):
- rendering/RenderBox.cpp:
(WebCore::shouldFlipBeforeAfterMargins):
(WebCore::RenderBox::visualOverflowRectForPropagation const):
(WebCore::RenderBox::layoutOverflowRectForPropagation const):
- rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::orientation const):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::isLeftToRightFlow const):
(WebCore::RenderFlexibleBox::transformedWritingMode const):
(WebCore::RenderFlexibleBox::flowAwareBorderBefore const):
(WebCore::RenderFlexibleBox::flowAwareBorderAfter const):
(WebCore::RenderFlexibleBox::flowAwarePaddingBefore const):
(WebCore::RenderFlexibleBox::flowAwarePaddingAfter const):
(WebCore::RenderFlexibleBox::flowAwareMarginBeforeForChild const):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paddingTop const):
(WebCore::RenderTableCell::paddingBottom const):
(WebCore::RenderTableCell::paddingLeft const):
(WebCore::RenderTableCell::paddingRight const):
- rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForStyle):
- rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::borderBeforeInWritingMode):
(WebCore::borderAndPaddingBeforeInWritingMode):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::borderBefore const):
(WebCore::RenderStyle::borderAfter const):
(WebCore::RenderStyle::borderBeforeWidth const):
(WebCore::RenderStyle::borderAfterWidth const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::initialWritingMode):
(WebCore::RenderStyle::setWritingMode):
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
- style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::adjustStyleForInterCharacterRuby):
- 7:07 PM BuildingCairoOnWindows edited by
- (diff)
- 6:57 PM Debugging With Visual Studio edited by
- (diff)
- 6:33 PM Changeset in webkit [266690] by
-
- 7 edits in trunk/Source
CTFontGetPhysicalSymbolicTraits() is faster than CTFontCopyPhysicalFont()/CTFontGetSymbolicTraits()
https://bugs.webkit.org/show_bug.cgi?id=215685
Reviewed by Darin Adler.
Source/WebCore:
Instead of making the two calls, we can make a single call that has the same effect.
No new tests because there is no behavior change.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::computeNecessarySynthesis):
(WebCore::FontCache::systemFallbackForCharacters):
- platform/graphics/cocoa/FontCacheCoreText.h:
- platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges const):
Source/WTF:
- wtf/PlatformHave.h:
- 5:59 PM Changeset in webkit [266689] by
-
- 3 edits in trunk/Source/WebCore
[MotionMark - Multiply] Web process spends ~1% of total samples in PropertyCascade::resolveDirectionAndWritingMode
https://bugs.webkit.org/show_bug.cgi?id=216223
Reviewed by Darin Adler.
A few subtests in MotionMark (Leaves, Focus, Design, and especially Multiply) spend large amounts of time in
style resolution (Document::resolveStyle) due to constant style changes across many elements during every
frame. In Multiply, ~3-4% of the time underneathDocument::resolveStyleis spent resolving direction and
writing modes insidePropertyCascade::resolveDirectionAndWritingMode(i.e., ~2.3 million invocations). This
helper function is responsible for computing the text direction and CSS writing mode that is used to resolve
direction-aware CSS properties (which are enumerated inCSSProperty::isDirectionAwareProperty). Resolving the
direction and writing mode involves iterating over all of the matched CSS properties (m_matchResult) in the
property cascade in search of CSS properties for writing and direction, which can be relatively expensive when
there are lots of properties in the cascade.
However, if there are no direction-aware CSS properties in the cascade, this work can actually be elided; to
achieve this, we can store the inheritedDirectioninm_direction, and then lazily resolve it if needed.
I measured this locally to yield a little under ~1% in the Multiply subtest in MotionMark. Otherwise, there is
no change in behavior; see below for more details.
- style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::PropertyCascade):
(WebCore::Style::PropertyCascade::set):
If we encounter a direction-aware CSS property, then use
direction()to ensure that the direction and writing
mode are resolved.
(WebCore::Style::PropertyCascade::direction const):
Make this getter call
resolveDirectionAndWritingModeif needed.
- style/PropertyCascade.h:
Add a new
boolmember to keep track of whether or not the CSS direction has not yet been resolved. Note that
since this member variable fits within the padding afterDirection m_direction;, this class is still the same
size.
(WebCore::Style::PropertyCascade::direction const): Deleted.
- 5:52 PM Changeset in webkit [266688] by
-
- 11 edits1 add in trunk
Make GlyphBufferAdvance and GlyphBufferOrigin more robust
https://bugs.webkit.org/show_bug.cgi?id=215143
Reviewed by Zalan Bujtas.
Source/WebCore:
GlyphBuffer contains vectors of advances and origins, which are conceptually
FloatSizes and FloatPoints. However, we need to pass these arrays into CTFontShapeGlyphs()
or CTFontTransformGlyphsWithLanguage(), which expects these vectors to use platform types.
Rather than converting in/out of platform types around the call site, we can simply use
the platform types throughout. Indeed, that's what we're doing today.
However, the mechanism we use today to make this platform-independent is to make a struct
which inherits from the platform types. Then, we static_cast the array of the struct to
an array of the base type. This is brittle, because it relies on the assumption that the
struct doesn't have any members added to it, which would change the stride of the array
and feed garbage into the shaping function.
Instead, a better design is to typedef the native type, and have all interactions with the
types go through standalone functions which deal with the native type. That way, we can't
accidentally change the size of the array elements.
No new tests because there is no behavior change.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::advance):
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::widthForSimpleText const):
(WebCore::FontCascade::layoutComplexText const):
(WebCore::FontCascade::drawGlyphBuffer const):
(WebCore::FontCascade::drawEmphasisMarks const):
(WebCore::GlyphToPathTranslator::extents):
(WebCore::GlyphToPathTranslator::advance):
- platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::add):
(WebCore::GlyphBuffer::makeHole):
(WebCore::GlyphBuffer::expandLastAdvance):
(WebCore::GlyphBuffer::flatten):
(WebCore::GlyphBufferAdvance::GlyphBufferAdvance): Deleted.
(WebCore::GlyphBufferAdvance::operator FloatSize): Deleted.
(WebCore::GlyphBufferAdvance::setWidth): Deleted.
(WebCore::GlyphBufferAdvance::setHeight): Deleted.
(WebCore::GlyphBufferAdvance::width const): Deleted.
(WebCore::GlyphBufferAdvance::height const): Deleted.
(WebCore::GlyphBufferAdvance::encode const): Deleted.
(WebCore::GlyphBufferAdvance::decode): Deleted.
(WebCore::GlyphBufferOrigin::GlyphBufferOrigin): Deleted.
(WebCore::GlyphBufferOrigin::operator FloatPoint): Deleted.
(WebCore::GlyphBufferOrigin::setX): Deleted.
(WebCore::GlyphBufferOrigin::setY): Deleted.
(WebCore::GlyphBufferOrigin::x const): Deleted.
(WebCore::GlyphBufferOrigin::y const): Deleted.
(WebCore::GlyphBufferOrigin::encode const): Deleted.
(WebCore::GlyphBufferOrigin::decode): Deleted.
(WebCore::toFloatSize): Deleted.
- platform/graphics/GlyphBufferMembers.h: Added.
(WebCore::createGlyphBufferAdvance):
(WebCore::floatSizeFromGlyphBufferAdvance):
(WebCore::setGlyphBufferAdvanceWidth):
(WebCore::setGlyphBufferAdvanceHeight):
(WebCore::glyphBufferAdvanceWidth):
(WebCore::glyphBufferAdvanceHeight):
(WebCore::createGlyphBufferOrigin):
(WebCore::floatPointFromGlyphBufferOrigin):
(WebCore::setGlyphBufferOriginX):
(WebCore::setGlyphBufferOriginY):
(WebCore::glyphBufferOriginX):
(WebCore::glyphBufferOriginY):
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::advanceOneCharacter):
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawGlyphs::computeBounds):
Tools:
- TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:
(TestWebKitAPI::TEST_F):
- 5:20 PM Changeset in webkit [266687] by
-
- 8 edits in trunk
[WebIDL] Add mode to preprocess-idls.pl to validate fast regex based scanner with the normal IDL parser
https://bugs.webkit.org/show_bug.cgi?id=216231
Reviewed by Darin Adler.
Source/WebCore:
To aid tracking down mistakes in the fast regex based scanner in preprocess-idls.pl, this
adds a validation mode to the script which checks the results against what the normal, much
slower, IDL parser gets. In building it, it caught that we were not creating a dependency on
RTCRtpCodingParameters.idl for dictionaries that derived from it because it was missing from
DerivedSources.make/CMakeLists.txt, which would have manifested in confusing build errors
in some cases.
- CMakeLists.txt:
- DerivedSources.make:
- bindings/scripts/generate-bindings-all.pl:
Add missing RTCRtpCodingParameters.idl and update invocation of preprocess-idls.pl to
pass in idlAttributesFile, which the parser needs (it is not read when not validating).
- bindings/scripts/test/SupplementalDependencies.dep:
Updated to include missing dictionary dependencies.
- bindings/scripts/preprocess-idls.pl:
(GeneratePartialInterface):
(processIDL):
(getPartialNamesFromIDL):
(getIncludedInterfacesFromIDL):
(isCallbackInterfaceFromIDL):
(isMixinInterfaceFromIDL):
(containsIterableInterfaceFromIDL):
(containsInterfaceOrCallbackInterfaceFromIDL):
(containsInterfaceWithConstantsFromIDL):
(getInterfaceExtendedAttributesFromIDL):
(getUndefinedBaseDictionariesFromIDL):
(shouldExposeInterface):
(getFileContents): Deleted.
(interfaceIsIterable): Deleted.
(containsInterfaceFromIDL): Deleted.
(interfaceHasConstantAttribute): Deleted.
(updateDictionaryDependencies): Deleted.
- Allow enabling a validation mode via the $validateAgainstParser variable which parses each IDL with the normal IDL parser and compares results.
- Updates a bunch of naming to be more clear about which variables contain file names vs. file paths.
- Renames functions to use more consistent naming.
- Fixes bug in dictionary dependency analysis that silently ignored dependencies that weren't in the file list.
Tools:
- Scripts/webkitpy/bindings/main.py:
(BindingsTests.generate_supplemental_dependency):
Update for rename from idlFilesList to idlFileNamesList and to pass the idlAttributesFile argument.
- 5:00 PM Changeset in webkit [266686] by
-
- 16 edits in trunk/Source/WebCore
Remove all non-web-exposed uses of ENABLE(VARIATION_FONTS)
https://bugs.webkit.org/show_bug.cgi?id=216211
Reviewed by Darin Adler.
This is the first step toward enabling variation fonts on all ports.
This patch compiles internal data structures on all ports, keeping care to not make
any web-exposed changes. It also stops consulting with ENABLE(VARIATION_FONTS) on
Cocoa platforms, since the flag is enabled on all Cocoa platforms and we've been
shipping it for years.
No new tests because there is no behavior change.
- css/CSSFontVariationValue.cpp:
- css/CSSFontVariationValue.h:
- css/CSSValue.cpp:
(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):
- css/CSSValue.h:
(WebCore::CSSValue::isFontFeatureValue const):
(WebCore::CSSValue::isFontVariationValue const):
- platform/graphics/FontCache.h:
(WebCore::FontDescriptionKey::FontDescriptionKey):
(WebCore::FontDescriptionKey::operator== const):
(WebCore::FontDescriptionKey::computeHash const):
- platform/graphics/FontCascadeDescription.cpp:
- platform/graphics/FontDescription.h:
(WebCore::FontDescription::setFeatureSettings):
(WebCore::FontDescription::setVariationSettings):
(WebCore::FontDescription::operator== const):
(WebCore::FontDescription::encode const):
(WebCore::FontDescription::decode):
- platform/graphics/FontTaggedSettings.cpp:
(WebCore::operator<<):
- platform/graphics/FontTaggedSettings.h:
(WebCore::FontVariationSettings::isEmpty const): Deleted.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::denormalizeVariationWidth):
(WebCore::normalizeVariationWidth):
(WebCore::preparePlatformFont):
(WebCore::extractVariationBounds):
(WebCore::variationCapabilitiesForFontDescriptor):
- platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::supportsFormat):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontVariationSettings):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontVariationSettings const):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertFontVariationSettings):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInheritFontFeatureSettings):
(WebCore::Style::BuilderCustom::applyInheritFontVariationSettings):
- 4:42 PM Changeset in webkit [266685] by
-
- 17 edits1 move in trunk/Source/WebCore
[LFC][IFC] Rename Display::LineBox to Display::Line
https://bugs.webkit.org/show_bug.cgi?id=216232
Reviewed by Sam Weinig.
Display::LineBox represent a line and not to be confused with Layout::LineBox which represents a collection of inline boxes.
- WebCore.xcodeproj/project.pbxproj:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):
- layout/displaytree/DisplayInlineContent.h:
(WebCore::Display::InlineContent::lineForRun const):
(WebCore::Display::InlineContent::lineBoxForRun const): Deleted.
- layout/displaytree/DisplayLine.h: Renamed from Source/WebCore/layout/displaytree/DisplayLineBox.h.
(WebCore::Display::Line::rect const):
(WebCore::Display::Line::scrollableOverflow const):
(WebCore::Display::Line::inkOverflow const):
(WebCore::Display::Line::left const):
(WebCore::Display::Line::right const):
(WebCore::Display::Line::top const):
(WebCore::Display::Line::bottom const):
(WebCore::Display::Line::width const):
(WebCore::Display::Line::height const):
(WebCore::Display::Line::baseline const):
(WebCore::Display::Line::Line):
(WebCore::Display::Line::moveVertically):
- layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::paintInlineContent):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::createDisplayBoxesForLineContent):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::shrinkDisplayInlineContent):
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::constructInlineBoxes):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::lineCount const):
(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::collectOverflow):
(WebCore::LayoutIntegration::LineLayout::paint):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputInlineRuns):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
- layout/tableformatting/TableFormattingContextGeometry.cpp:
(WebCore::Layout::TableFormattingContext::Geometry::usedBaselineForCell):
- rendering/line/LineLayoutTraversalDisplayRunPath.h:
(WebCore::LineLayoutTraversal::DisplayRunPath::baseline const):
(WebCore::LineLayoutTraversal::DisplayRunPath::line const):
(WebCore::LineLayoutTraversal::DisplayRunPath::lineBox const): Deleted.
- 4:09 PM Changeset in webkit [266684] by
-
- 11 edits in trunk
ConvolverNode incorrectly outputs silence because m_reverb is null
https://bugs.webkit.org/show_bug.cgi?id=216230
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Unreviewed, rebaseline tests that are now passing.
- web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:
Source/WebCore:
ConvolverNode relies on m_reverb to to audio processing. m_reverb would get initialized
when calling ConvolverNode::setBuffer(). However, setting the buffer would cause
ConvolverNode::checkNumberOfChannelsForInput(), which could cause unitialize() and then
initialize() to get called. The issue was that unitialize() would null out m_reverb
and nothing would re-initialize it.
No new tests, rebaselined existing tests.
- Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::initialize): Deleted.
(WebCore::ConvolverNode::uninitialize): Deleted.
- Modules/webaudio/ConvolverNode.h:
LayoutTests:
Unreviewed, unskip tests that should hopefully not be flaky anymore, not that they
are passing.
- 3:20 PM Changeset in webkit [266683] by
-
- 18 edits in trunk
Letter-spacing should disable ligatures
https://bugs.webkit.org/show_bug.cgi?id=176215
<rdar://problem/17044265>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
This test is sensitive the order of the CSSPropertyID enum values.
- web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Apparently this
test is sensitive to the ordering of CSSPropertyID enum values in CSSPropertyNames.h.
I filed https://bugs.webkit.org/show_bug.cgi?id=216170 about this.
Source/WebCore:
The CSS Text spec[1] says:
"When the effective spacing between two characters is not zero (due to either justification
or a non-zero value of letter-spacing), user agents should not apply optional ligatures."
The CSS Fonts spec[2] describes exactly how this is supposed to work:
"Step 11. Feature settings determined by properties other than font-variant or
font-feature-settings are applied. For example, setting a non-default value for the
letter-spacing property disables optional ligatures."
Disabling ligatures requires modifying font features, which means that the information about
whether we should disable them or not needs to be inside the FontDescription. This patch adds
a new bit, m_shouldDisableLigaturesForSpacing, to FontDescription. preparePlatformFont()
reads this bit and disables ligatures appropriately.
There's a bit of complexity here because the letter-spacing value itself lies inside the
RenderStyle, but the derived bit lies inside the FontDescriptor, which is one reason why
this patch migrates letter-spacing to use custom codegen functions. There's also a bit of
complexity about dependencies which is explained in a comment in
maybeUpdateFontForLetterSpacing().
[1] https://drafts.csswg.org/css-text-3/#letter-spacing-property
[2] https://drafts.csswg.org/css-fonts-4/#feature-variation-precedence
Test: imported/w3c/web-platform-tests/css/css-fonts/font-feature-resolution-001.html
- css/CSSProperties.json: letter-spacing has to be high-priority because it affects font
selection, but it has to be processed after zoom because its <length> value is sensitive to
zoom. This adds a new keyword CSSProperties.json: sink-property which can let a property
sink to the bottom of its priority bucket.
- css/makeprop.pl:
(addProperty):
(sortByDescendingPriorityAndName):
- platform/graphics/FontCache.h:
(WebCore::FontDescriptionKey::makeFlagsKey):
- platform/graphics/FontDescription.h:
(WebCore::FontDescription::shouldDisableLigaturesForSpacing const):
(WebCore::FontDescription::setShouldDisableLigaturesForSpacing):
(WebCore::FontDescription::operator== const):
(WebCore::FontDescription::encode const):
(WebCore::FontDescription::decode):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::preparePlatformFont): We can get into a situation where "liga" and "clig" don't
match, which means whichever one is later clobbers whichever one is earlier when applied to
AAT fonts. We need to make sure these values match so we don't get surprising results.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setLetterSpacing):
(WebCore::RenderStyle::setLetterSpacingWithoutUpdatingFontDescription):
- rendering/style/RenderStyle.h:
- style/StyleBuilderCustom.h:
(WebCore::Style::applyLetterSpacing):
(WebCore::Style::BuilderCustom::applyInheritLetterSpacing):
(WebCore::Style::BuilderCustom::applyInitialLetterSpacing):
(WebCore::Style::maybeUpdateFontForLetterSpacing):
(WebCore::Style::BuilderCustom::applyValueLetterSpacing):
(WebCore::Style::BuilderCustom::applyValueWebkitLocale):
(WebCore::Style::BuilderCustom::applyInitialFontFamily):
(WebCore::Style::BuilderCustom::applyInheritFontFamily):
(WebCore::Style::BuilderCustom::applyValueFontFamily):
(WebCore::Style::BuilderCustom::applyInitialFontSize):
(WebCore::Style::BuilderCustom::applyInheritFontSize):
(WebCore::Style::BuilderCustom::applyValueFontSize):
- style/StyleBuilderState.h:
Tools:
- Scripts/webkitpy/style/checkers/jsonchecker.py:
(JSONCSSPropertiesChecker.check_codegen_properties):
LayoutTests:
imported/w3c/web-platform-tests/css/css-fonts/font-feature-resolution-001.html passes now.
- TestExpectations:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt:
Apparently this test is sensitive to the ordering of CSSPropertyID enum values in CSSPropertyNames.h.
I filed https://bugs.webkit.org/show_bug.cgi?id=216170 about this.
- platform/mac-wk1/editing/mac/attributed-string/letter-spacing-expected.txt: Updated.
- platform/mac-mojave-wk1/editing/mac/attributed-string/letter-spacing-expected.txt: Updated
- 2:32 PM Changeset in webkit [266682] by
-
- 9 edits in trunk/Source/WebCore
[LFC][IFC] LineBox should contain all inline boxes
https://bugs.webkit.org/show_bug.cgi?id=216221
Reviewed by Antti Koivisto.
In this patch we decouple the line box and the line.
Previously the LineBox was pretty much representing the line.
It was responsible for both placing the inline boxes and sizing the line and position itself based on line-height/half leading.
Now the LineBox is only responsible for placing the inline boxes and sizing itself, it has no position geometry anymore neither
does it compute the line height.
The line size is computed later using the combination of line-height property/LineBox height/FontMetrics::lineSpacing/half leading.
This geometry is preserved in Display::LineBox (this needs to be renamed to Display::Line).
- LineBuilder places the runs on the line after each other (at this point they only have horizontal geometry).
- LineBreaker tells when to stop.
- We start constructing inline boxes for the runs (root inline box etc) and place them inside an LineBox. This is when horizontal and vertical alignment happen.
- We use the fully sized LineBox to compute the line geometry. Note that the line's geometry does not necessarily match the LineBox width/height (see below).
- We construct a Display::LineBox for the line and Display::Runs for the runs inside the inline boxes.
LineBox:
- fully contains all the inline boxes, both horizontally and vertically.
- has only width and height geometry
- height is not constrained by the line-height property
- does not have the concept of overflow.
Line:
- contains the LineBox, but the LineBox can overflow the line, both horizontally and vertically.
- has position relative to the root block container.
Simple case.
<div>font went crazy with line spacing</div>
_ line
| |
| | line spacing |
| v |
| -------------------------------------------LineBox | | | line box height | | ----v--------------------------------------| alignment baseline | ------------------------------------------- | |
| | line spacing | |
|v_| scrollable overflow
When glyphs in subsequent lines overflow:
<div style="line-height: 5px; font-size: 20px;">line box overflows the line</div>
_ LineBox
| |
| | line box height |
| | |
-Line | | | | |
| | | line height | | |
-v-------------------- | | |
| alignment baseline
| | |
|v_|
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::createDisplayBoxesForLineContent):
- 12:10 PM Changeset in webkit [266681] by
-
- 26 edits in trunk/Source
TextCodec refinements
https://bugs.webkit.org/show_bug.cgi?id=216219
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- parser/Lexer.h:
(JSC::Lexer<UChar>::isWhiteSpace): Use byteOrderMark constant.
Source/WebCore:
- dom/TextDecoder.cpp:
(WebCore::TextDecoder::bytesNeededForFullBOMIgnoreCheck const): Deleted.
(WebCore::TextDecoder::isBeginningOfIncompleteBOM const): Deleted.
(WebCore::TextDecoder::ignoreBOMIfNecessary): Deleted.
(WebCore::TextDecoder::decode): Call stripByteOrderMark on the TextCodec
to tell it to ignore the BOM, once when creating the codec, and also after
each non-streaming invocation. Removed the rest of the BOM handling.
- dom/TextDecoder.h: Removed WaitForMoreBOMBytes, ignoreBOMIfNecessary,
bytesNeededForFullBOMIgnoreCheck, isBeginningOfIncompleteBOM, m_buffer,
m_bomIgnoredIfNecessary, and made m_options const.
- platform/text/TextCodec.h: Added a virtual stripByteOrderMark function
to be used before decoding; does nothing by default. Changed the encode
function to be a const member function to help implementers remember to
not have it save any state, unlike the decode function which should.
- platform/text/TextCodecCJK.cpp: Moved the TextCodecCJK::Encoding
enumeration in here.
(WebCore::jis0208DecodeIndex): Use a named type and use std::size
instead of WTF_ARRAY_LENGTH.
(WebCore::codePointJIS0212): Ditto.
(WebCore::iso2022JPEncode): Made this a non-member function and moved
the encoding state in here since each call to encode is separate and
we don't want to leave any state behind in the TextCodec between calls.
(WebCore::eucKREncodingIndex): Use a refernece instead of a pointer
and std::size instead of WTF_ARRAY_LENGTH.
(WebCore::big5DecodeIndex): Ditto.
(WebCore::TextCodecCJK::encode const): Made const.
- platform/text/TextCodecCJK.h: Marked the class final, moved
the enumeration values for Encoding, ISO2022JPEncoderState, and
m_iso2022JPEncoderState out of the class definition. Made encode const.
- platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::encode const): Made const.
- platform/text/TextCodecICU.h: Marked the class final, and
rearranged the class members to match other TextCodec classes,
with register functions before the constructor and destructor.
Made encode const.
- platform/text/TextCodecLatin1.cpp:
(WebCore::TextCodecLatin1::encode const): Made const.
- platform/text/TextCodecLatin1.h: Removed a stray blank line
and made encode const.
- platform/text/TextCodecReplacement.cpp:
(WebCore::TextCodecReplacement::encode const): Added.
- platform/text/TextCodecReplacement.h: Marked the class final,
changed it to no longer derive from TextCodecUTF8, and added
an encode function.
- platform/text/TextCodecSingleByte.cpp: Moved the
TextCodecSingleByte::Encoding enumeration in here and changed
from Iso to ISO. Added SingleByteDecodeTable type and
moved TextCodecSingleByte::EncodeTable in here and renamed
it to SingleByteEncodeTable so it's not a class member any more.
Marked all the decode tables static since we don't get internal
linkage from just marking them constexpr, while moving to use
the SingleByteDecodeTable type.
(WebCore::tableForEncoding): Use SingleByteDecodeTable and
SingleByteEncodeTable type names. Use std::count to count the
replacement characters instead of writing our own loop.
Use std::size(decodeTable) instead of defining a tableSize.
Update for ISO name change. Use RELEASE_ASSERT_NOT_REACHED so
we don't have to write a dead code return statement.
(WebCore::tableForDecoding): Use SingleByteDecideTable type
for return value. Update for ISO name change. Use
RELEASE_ASSERT_NOT_REACHED so we don't have to write a dead
code return statement. Also make this constexpr since it's
just selecting a global based on an enumeration value.
(WebCore::encode): Made this a non-member function since it
does not need access to TextCodec members. This helps us keep
implementation details out of the header.
(WebCore::decode): Ditto.
(WebCore::TextCodecSingleByte::encode const): Made this const
and updated to call the non-member function.
(WebCore::TextCodecSingleByte::decode): Ditto.
(WebCore::TextCodecSingleByte::registerCodecs): Update for
the ISO name change.
- platform/text/TextCodecSingleByte.h: Marked the class
final, and moved the enumeration values for Encoding, EncodeTable,
and the encode and decode functions that take table arguments
all out of the class definition. Made encode const.
- platform/text/TextCodecUTF16.cpp:
(WebCore::TextCodecUTF16::decode): Added logic to drop the first
byte order mark after m_shouldStripByteOrderMark is set to true.
Changed code to call through rather than recursively calling self
in the case of an unpaired lead surrogate, removing the need to
put the processBytesShared lambda into a Function. Renamed the
processBytesShared lambda to processCodeUnit.
(WebCore::TextCodecUTF16::encode const): Made const.
- platform/text/TextCodecUTF16.h: Marked the class final, added
a stripByteOrderMark member function and a m_shouldStripByteOrderMark
data member, and made encode const.
- platform/text/TextCodecUTF8.cpp:
(WebCore::TextCodecUTF8::handlePartialSequence): Added logic to
drop the first byte order mark after m_shouldStripByteOrderMark is
set to true, making sure to keep it out of the hot ASCII decode loop.
(WebCore::TextCodecUTF8::decode): Ditto. Also added code to make sure
the partial sequence is cleared out as part of a flush even when
stopOnError is true.
(WebCore::TextCodecUTF8::encodeUTF8): Renamed this so it can be
a static member function, so it can be called by TextCodecReplacement.
(WebCore::TextCodecUTF8::encode const): Made this const and have it
call encodeUTF8.
- platform/text/TextCodecUTF8.h: Marked the class final, added
a stripByteOrderMark member function and a m_shouldStripByteOrderMark
data member, added static member function encodeUTF8, and made the
encode function const.
- platform/text/TextCodecUserDefined.cpp:
(WebCore::TextCodecUserDefined::encode const): Made const.
- platform/text/TextCodecUserDefined.h: Marked the class final and
made encode const.
- xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::parseString): Use byteOrderMark.
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::switchToUTF16): Ditto.
(WebCore::nativeEndianUTF16Encoding): Ditto.
Source/WTF:
- wtf/unicode/CharacterNames.h: Use constexpr instead of just const.
Added byteOrderMark, synonym for zeroWidthNoBreakSpace.
- 8:59 AM Changeset in webkit [266680] by
-
- 8 edits in trunk/Source/WebCore
[LFC][IFC] Move Line handing to LineBuilder
https://bugs.webkit.org/show_bug.cgi?id=216200
Reviewed by Antti Koivisto.
- LineBuilder owns Line now.
- LineBuilder can build line for both layout and intrinsic width computation (now these are two distinct code paths).
- LineBuilder also constructs the LineBox when needed (This was previously in InlineFormattingContext::lineLayout).
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
(WebCore::Layout::InlineFormattingContext::constraintsForLine): Deleted.
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::computedTextIndent const): Deleted.
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::formattingContext const):
(WebCore::Layout::LineBox::root const):
(WebCore::Layout::LineBox::layoutState const):
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::contentLogicalWidth const):
(WebCore::Layout::LineBox::formattingContext const): Deleted.
(WebCore::Layout::LineBox::root const): Deleted.
(WebCore::Layout::LineBox::layoutState const): Deleted.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::constraintsForLine):
(WebCore::Layout::LineBuilder::commitFloats):
(WebCore::Layout::LineBuilder::handleFloatsAndInlineContent):
(WebCore::Layout::LineBuilder::commitPartialContent):
(WebCore::Layout::LineBuilder::rebuildLine):
(WebCore::Layout::LineBuilder::layoutState const):
- layout/inlineformatting/InlineLineBuilder.h:
Sep 5, 2020:
- 9:56 PM Changeset in webkit [266679] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, suppress exception checking after unwrapForOldFunctions
https://bugs.webkit.org/show_bug.cgi?id=216193
- runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):
- 7:49 PM Changeset in webkit [266678] by
-
- 74 edits1 copy2 adds1 delete in trunk/Source/WebCore
[WebIDL] Add support for interface mixins
https://bugs.webkit.org/show_bug.cgi?id=216217
Reviewed by Darin Adler.
Implement support for WebIDL interface mixins, which are interface fragments
that can be included into other interfaces (using an 'includes' statement),
but do not create new types themselves.
Prior to this, we have been emulating the behavior by allowing any interface
to be included in another interface, and marking some interfaces with the
[LegacyNoInterfaceObject] extended attribute. This change codifies that with
in the spec approved way.
- Updates IDL parser to parse mixin interfaces (and fixes the parsing of callback interfaces to be a bit more strict while I was there).
- Updates IDL pre-processor to avoid creating global variables and IsoSubspaces for mixins.
- Updates IDL code generator to only support including mixin interfaces during supplemental inclusion.
- Updates IDL files to use interface mixin where appropriately specified.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- CMakeLists.txt:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- dom/DeviceOrientationOrMotionEvent.idl: Removed.
Remove DeviceOrientationOrMotionEvent.idl and corresponding generated files, inlining
it into DeviceMotionEvent.idl and DeviceOrientationEvent.idl as specified. This is
needed as mixin interfaces do not support static operations or attributes.
- bindings/scripts/CodeGenerator.pm:
(IsValidSupplementalInterface):
(IsValidSupplementalDictionary):
(ProcessSupplementalDependencies):
(GetInterfaceExtendedAttributesFromName):
Update IDL code generator to only support including mixin interfaces during
supplemental inclusion. Also removes some left of remnents of exception interface
support.
- bindings/scripts/IDLParser.pm:
(parseCallbackRestOrInterface):
(parseCallbackInterface):
(parseCallbackInterfaceMembers):
(parseCallbackInterfaceMember):
(parseMixin):
(parseMixinMembers):
(parseMixinMember):
(parseNamespace):
(parsePartialInterfaceMember):
(parseAttributeOrOperationForStringifierOrStatic):
Update IDL parser to parse mixin interfaces and fix the parsing of callback
interfaces to match the spec by restricting its members to constants and
regular functions.
- bindings/scripts/preprocess-idls.pl:
(isMixinInterfaceFromIDL):
(containsInterfaceFromIDL):
(getInterfaceExtendedAttributesFromIDL):
(containsInterfaceOrExceptionFromIDL): Deleted.
Ensure mixin interfaces don't get exposed on any global objects and
remove some left of remnents of exception interface support.
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp: Added.
- bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h: Added.
- bindings/scripts/test/SupplementalDependencies.dep:
- bindings/scripts/test/TestIncludes.idl:
- bindings/scripts/test/TestLegacyNoInterfaceObject.idl: Added.
- bindings/scripts/test/TestOperationBase.idl:
Update bindings tests to use mixins for includes. Add new dedicated
[LegacyNoInterfaceObject] since it was no longer being tested.
- Modules/fetch/FetchBody.idl:
- Modules/mediasource/VideoPlaybackQuality.idl:
- Modules/speech/SpeechSynthesis.idl:
- Modules/speech/SpeechSynthesisVoice.idl:
- Modules/streams/ReadableStreamSink.idl:
- accessibility/AccessibilityRole.idl:
- accessibility/AriaAttributes.idl:
- animation/Animatable.idl:
- css/ElementCSSInlineStyle.idl:
- css/StyleMedia.idl:
- dom/ChildNode.idl:
- dom/DeviceMotionEvent.idl:
- dom/DeviceOrientationEvent.idl:
- dom/Document.idl:
- dom/DocumentAndElementEventHandlers.idl:
- dom/DocumentOrShadowRoot.idl:
- dom/EventListener.idl:
- dom/GlobalEventHandlers.idl:
- dom/NavigatorMaxTouchPoints.idl:
- dom/NonDocumentTypeChildNode.idl:
- dom/NonElementParentNode.idl:
- dom/ParentNode.idl:
- dom/Slotable.idl:
- html/HTMLHyperlinkElementUtils.idl:
- html/HTMLOrForeignElement.idl:
- html/canvas/CanvasCompositing.idl:
- html/canvas/CanvasDrawImage.idl:
- html/canvas/CanvasDrawPath.idl:
- html/canvas/CanvasFillStrokeStyles.idl:
- html/canvas/CanvasFilters.idl:
- html/canvas/CanvasGradient.idl:
- html/canvas/CanvasImageData.idl:
- html/canvas/CanvasImageSmoothing.idl:
- html/canvas/CanvasPath.idl:
- html/canvas/CanvasPathDrawingStyles.idl:
- html/canvas/CanvasRect.idl:
- html/canvas/CanvasShadowStyles.idl:
- html/canvas/CanvasState.idl:
- html/canvas/CanvasText.idl:
- html/canvas/CanvasTextDrawingStyles.idl:
- html/canvas/CanvasTransform.idl:
- html/canvas/CanvasUserInterface.idl:
- html/canvas/WebGLRenderingContextBase.idl:
- page/GlobalCrypto.idl:
- page/GlobalPerformance.idl:
- page/Navigator.idl:
- page/NavigatorID.idl:
- page/NavigatorLanguage.idl:
- page/NavigatorOnLine.idl:
- page/NavigatorPlugins.idl:
- page/NavigatorServiceWorker.idl:
- page/NavigatorShare.idl:
- page/WindowEventHandlers.idl:
- page/WindowOrWorkerGlobalScope.idl:
- svg/SVGFilterPrimitiveStandardAttributes.idl:
- svg/SVGFitToViewBox.idl:
- svg/SVGTests.idl:
- svg/SVGURIReference.idl:
- svg/SVGZoomAndPan.idl:
- workers/AbstractWorker.idl:
- xml/XPathEvaluator.idl:
- xml/XPathNSResolver.idl:
Update IDLs.
- 6:36 PM Changeset in webkit [266677] by
-
- 10 edits in trunk/Source
[MotionMark] RenderLayer::paintLayerContents spends ~5% of the time in MonotonicTime::now() in Multiply
https://bugs.webkit.org/show_bug.cgi?id=216190
Reviewed by Darin Adler.
Source/WebCore:
In several of MotionMark's subtests (for instance, Multiply), we spent a large amount of time underneath
RenderLayer::paintLayerContentsdue to both the large number of layers and the need to frequently repaint
each layer (all of which are constantly being animated). Underneath this method, a nontrivial amount of time
(~5%) is then spent grabbing the system time viaMonotonicTime::now().
We can avoid this extra work by instead using the timestamp of the last rendering update (before we started
painting), which we keep track of using a new member variable onPage. See below for more details, as well as
the WebKit2 ChangeLog.
- page/ChromeClient.h:
(WebCore::ChromeClient::timestampForPaintFrequencyTracking const):
Add a client hook to fetch the timestamp to use when tracking painting frequency. See the WebKit2 ChangeLog for
more details.
- page/Page.cpp:
(WebCore::Page::updateRendering):
Update
m_lastRenderingUpdateTimestamp.
- page/Page.h:
(WebCore::Page::lastRenderingUpdateTimestamp const):
- rendering/PaintFrequencyTracker.h:
Drive-by cleanup: narrow the
PaintFrequencyenum toboolwidth.
(WebCore::PaintFrequencyTracker::begin):
(WebCore::SinglePaintFrequencyTracking::SinglePaintFrequencyTracking):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
Call out to the client layer to return a timestamp for tracking painting frequency. By default, this is simply
the current time (MonotonicTime::now()), but ports (namely, WebKit2) may opt for a coarser granularity.
(WebCore::RenderLayer::simulateFrequentPaint):
- rendering/RenderLayer.h:
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::timestampForPaintFrequencyTracking const):
In WebKit2, we can assume (with the exception of SVG pages) that we must've performed a rendering update prior
to tracking painting frequencies. As such, we can use the page's rendering update timestamp instead of the real
current time (MonotonicTime::now()).
Note that in WebKit1, it is possible for any client to force a synchronous paint of the page before the page has
performed a rendering update, which triggers assertions inSinglePaintFrequencyTracking::end(). As such, we
stick withMonotonicTime::now()in WebKit1.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- 5:44 PM Changeset in webkit [266676] by
-
- 2 edits in trunk/Source/WebCore
Fix formatting of LegacyOverrideBuiltIns
https://bugs.webkit.org/show_bug.cgi?id=216218
Reviewed by Darin Adler.
Neglected to fix this bit of feedback in a previous change. Makes
enum class LegacyOverrideBuiltIns a bit more readable.
- bindings/js/JSDOMAbstractOperations.h:
- 5:26 PM Changeset in webkit [266675] by
-
- 6 edits2 adds in trunk
[css-grid] Use min-content size for intrinsic maximums resolution
https://bugs.webkit.org/show_bug.cgi?id=216142
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Import WPT test.
- web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-track-sizes-001-expected.txt: Added.
- web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-track-sizes-001.html: Added.
- web-platform-tests/css/css-grid/layout-algorithm/w3c-import.log:
Source/WebCore:
By mistake the specification used to say that, for items spanning
multiple tracks, the growth limits of the tracks with an intrinsic max
track sizing function should grow to accommodate the minimum
contribution of the item.
But this was a mistake, because an intrinsic max track sizing function
can only be min-content or max-content. So instead of distributing the
minimum contribution, it should be the min-content contribution.
The spec has been fixed and there is a CSSWG resolution in
https://github.com/w3c/csswg-drafts/issues/4790
This patch fixes the problem by reverting r207290. The change is likely
web compatible, since it only affects a rare edge case with 'minmax()'
where the min sizing function is 'auto' or a fixed value smaller than
the min-content contribution, the max sizing function is 'min-content',
and an item whose minimum contribution is forced to be different than
the min-content contribution, and spans multiple tracks.
This is a port of https://crrev.com/803871 from Chromium.
Tests: fast/css-grid-layout/grid-intrinsic-maximums.html
imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-track-sizes-001.html
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithm::itemSizeForTrackSizeComputationPhase const):
LayoutTests:
Update test expectations. Some are wrong due to bug 216144.
- fast/css-grid-layout/grid-intrinsic-maximums-expected.html:
- 5:11 PM Changeset in webkit [266674] by
-
- 60 edits1 delete in trunk
[css-logical] Ship flow-relative shorthand and offset properties
https://bugs.webkit.org/show_bug.cgi?id=216178
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update test expectations and remove instances of
<!-- webkit-test-runner [ internal:CSSLogicalEnabled=true ] -->
- web-platform-tests/css/css-cascade/parsing/all-valid-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-001-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-002-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-003-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-004-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-005-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-007-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-007-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-012-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-014-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-016-expected.txt:
- web-platform-tests/css/css-logical/animation-001-expected.txt:
- web-platform-tests/css/css-logical/animation-002-expected.txt:
- web-platform-tests/css/css-logical/getComputedStyle-listing-expected.txt:
- web-platform-tests/css/css-logical/inheritance-expected.txt:
- web-platform-tests/css/css-logical/logical-box-border-color.html:
- web-platform-tests/css/css-logical/logical-box-border-shorthands.html:
- web-platform-tests/css/css-logical/logical-box-border-style.html:
- web-platform-tests/css/css-logical/logical-box-border-width.html:
- web-platform-tests/css/css-logical/logical-box-inset.html:
- web-platform-tests/css/css-logical/logical-box-margin.html:
- web-platform-tests/css/css-logical/logical-box-padding.html:
- web-platform-tests/css/css-logical/parsing/border-block-color-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-block-color-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-block-style-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-block-style-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-block-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-block-width-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-block-width-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-inline-color-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-inline-color-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-inline-style-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-inline-style-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-inline-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-inline-width-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/border-inline-width-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/inset-block-inline-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/inset-block-inline-shorthand-expected.txt:
- web-platform-tests/css/css-logical/parsing/inset-block-inline-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/inset-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/inset-shorthand-expected.txt:
- web-platform-tests/css/css-logical/parsing/inset-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/margin-block-inline-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/margin-block-inline-shorthand-expected.txt:
- web-platform-tests/css/css-logical/parsing/margin-block-inline-valid-expected.txt:
- web-platform-tests/css/css-logical/parsing/padding-block-inline-computed-expected.txt:
- web-platform-tests/css/css-logical/parsing/padding-block-inline-shorthand-expected.txt:
- web-platform-tests/css/css-logical/parsing/padding-block-inline-valid-expected.txt:
- web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001-expected.txt:
- web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-001-expected.txt:
- web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-001-expected.txt:
- web-platform-tests/quirks/unitless-length/excluded-properties-001.html:
- web-platform-tests/quirks/unitless-length/excluded-properties-003.html:
Source/WebCore:
This patch ships the logical properties that were already implemented behind a flag.
Specifically:
- border-block, border-block-color, border-block-style, border-block-width
- border-inline, border-inline-color, border-inline-style, border-inline-width
- inset-block-start, inset-block-end, inset-inline-start, inset-inline-end
- inset, inset-block, inset-inline
- margin-block, margin-inline
- padding-block, padding-inline
Tests: imported/w3c/web-platform-tests/css/css-cascade/parsing/all-valid.html
imported/w3c/web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-001.html
imported/w3c/web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-002.html
imported/w3c/web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-003.html
imported/w3c/web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-004.html
imported/w3c/web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-005.html
imported/w3c/web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-007.html
imported/w3c/web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016.html
imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-007.html
imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-012.html
imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-014.html
imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-016.html
imported/w3c/web-platform-tests/css/css-logical/animation-001.html
imported/w3c/web-platform-tests/css/css-logical/animation-002.html
imported/w3c/web-platform-tests/css/css-logical/getComputedStyle-listing.html
imported/w3c/web-platform-tests/css/css-logical/inheritance.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-inset.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-margin.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-padding.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-block-color-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-block-color-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-block-style-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-block-style-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-block-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-block-width-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-inline-color-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-inline-color-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-inline-style-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-inline-style-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-inline-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-inline-width-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/inset-block-inline-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/inset-block-inline-shorthand.html
imported/w3c/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/inset-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/inset-shorthand.html
imported/w3c/web-platform-tests/css/css-logical/parsing/inset-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/margin-block-inline-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/margin-block-inline-shorthand.html
imported/w3c/web-platform-tests/css/css-logical/parsing/margin-block-inline-valid.html
imported/w3c/web-platform-tests/css/css-logical/parsing/padding-block-inline-computed.html
imported/w3c/web-platform-tests/css/css-logical/parsing/padding-block-inline-shorthand.html
imported/w3c/web-platform-tests/css/css-logical/parsing/padding-block-inline-valid.html
imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001.html
imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-001.html
imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-001.html
imported/w3c/web-platform-tests/quirks/unitless-length/excluded-properties-001.html
imported/w3c/web-platform-tests/quirks/unitless-length/excluded-properties-003.html
- css/CSSProperties.json: Enable logical properties by default.
- css/makeprop.pl: Avoid compile warning when generating isEnabledCSSProperty if there is no property behind flag.
LayoutTests:
css-properties-behind-flags.html used to check that CSS properties
disabled behind a flag were effectible disabled.
But there is no longer any CSS property disabled behind a flag, so I'm
just removing it.
- platform/mac/TestExpectations:
- webexposed/css-properties-behind-flags-expected.txt: Removed.
- webexposed/css-properties-behind-flags.html: Removed.
- 3:27 PM Changeset in webkit [266673] by
-
- 6 edits1 delete in trunk/Source/WebCore
[iOS Family] Remove the concept of custom fallback fonts
https://bugs.webkit.org/show_bug.cgi?id=215690
Reviewed by Sam Weinig.
They're no longer necessary for iOS, and macOS doesn't
even have the concept of custom fallback fonts, so we
can just remove the entire concept.
- platform/graphics/FontCache.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::systemFallbackForCharacters):
- platform/graphics/cocoa/FontCacheCoreText.h:
- platform/graphics/ios/FontCacheIOS.mm:
(WebCore::requiresCustomFallbackFont): Deleted.
(WebCore::FontCache::getCustomFallbackFont): Deleted.
- 2:34 PM Changeset in webkit [266672] by
-
- 15 edits2 adds in trunk/Source
[Cocoa] USE(PLATFORM_SYSTEM_FALLBACK_LIST) is true on all Cocoa platforms, so there's no need to consult it in Cocoa-specific files
https://bugs.webkit.org/show_bug.cgi?id=215684
Reviewed by Darin Adler.
Source/WebCore:
Removes dead code.
No new tests because there is no behavior change.
- Configurations/WebCore.xcconfig:
- PlatformFTW.cmake:
- PlatformWin.cmake:
- page/cocoa/MemoryReleaseCocoa.mm:
(WebCore::platformReleaseMemory):
- platform/FreeType.cmake:
- platform/graphics/FontCascadeDescription.cpp:
(WebCore::FontCascadeDescription::effectiveFamilyCount const): Deleted.
(WebCore::FontCascadeDescription::effectiveFamilyAt const): Deleted.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::invalidateFontCache):
- platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
- platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges const):
- platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
- platform/graphics/harfbuzz/FontDescriptionHarfBuzz.cpp: Added. Moved port-specific
implementations into port-specific files.
(WebCore::FontCascadeDescription::effectiveFamilyCount const):
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
- platform/graphics/win/FontDescriptionWin.cpp: Added. Moved port-specific
implementations into port-specific files.
(WebCore::FontCascadeDescription::effectiveFamilyCount const):
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
Source/WebCore/PAL:
- pal/spi/cocoa/CoreTextSPI.h:
Source/WTF:
- wtf/PlatformUse.h:
- 1:54 PM Changeset in webkit [266671] by
-
- 4 edits in trunk
XML documents in iframes should not inherit encoding from parent frame
https://bugs.webkit.org/show_bug.cgi?id=216216
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/encoding/utf-32-from-win1252-expected.txt:
Source/WebCore:
This seems to match the behavior of Chrome and Firefox.
Covered by newly passing web platform tests, which other browsers already pass.
- loader/DocumentWriter.cpp:
(WebCore::canReferToParentFrameEncoding):
- 1:10 PM Changeset in webkit [266670] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: AXI: Audit: obtuse error strings
https://bugs.webkit.org/show_bug.cgi?id=201080
<rdar://problem/54648118>
Patch by Greg Doolittle <gr3g@apple.com> on 2020-09-05
Reviewed by Devin Rousso.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Controllers/AuditManager.js:
(WI.AuditManager.prototype._addDefaultTests):
(WI.AuditManager):
- 1:06 PM Changeset in webkit [266669] by
-
- 20 edits11 adds in trunk
Web Inspector: allow DOM breakpoints to be configured
https://bugs.webkit.org/show_bug.cgi?id=215795
Reviewed by Brian Burg.
Source/JavaScriptCore:
- inspector/protocol/DOMDebugger.json:
Add an
optionsparameter toDOMDebugger.setDOMBreakpointto allow configuration.
Source/WebCore:
Tests: inspector/dom-debugger/attribute-modified-style.html
inspector/dom-debugger/dom-breakpoints.html
inspector/dom-debugger/dom-breakpoint-attribute-modified.html
inspector/dom-debugger/dom-breakpoint-node-removed-ancestor.html
inspector/dom-debugger/dom-breakpoint-node-removed-direct.html
inspector/dom-debugger/dom-breakpoint-subtree-modified-add.html
inspector/dom-debugger/dom-breakpoint-subtree-modified-remove.html
- inspector/agents/page/PageDOMDebuggerAgent.h:
- inspector/agents/page/PageDOMDebuggerAgent.cpp:
(WebCore::PageDOMDebuggerAgent::disable):
(WebCore::PageDOMDebuggerAgent::setDOMBreakpoint):
(WebCore::PageDOMDebuggerAgent::removeDOMBreakpoint):
(WebCore::PageDOMDebuggerAgent::frameDocumentUpdated):
(WebCore::calculateDistance): Added.
(WebCore::PageDOMDebuggerAgent::willInsertDOMNode):
(WebCore::PageDOMDebuggerAgent::willRemoveDOMNode):
(WebCore::PageDOMDebuggerAgent::didRemoveDOMNode):
(WebCore::PageDOMDebuggerAgent::willModifyDOMAttr):
(WebCore::PageDOMDebuggerAgent::willInvalidateStyleAttr):
(WebCore::PageDOMDebuggerAgent::buildPauseDataForDOMBreakpoint): Added.
(WebCore::domTypeForName): Deleted.
(WebCore::domTypeName): Deleted.
(WebCore::PageDOMDebuggerAgent::didInsertDOMNode): Deleted.
(WebCore::PageDOMDebuggerAgent::descriptionForDOMEvent): Deleted.
(WebCore::PageDOMDebuggerAgent::updateSubtreeBreakpoints): Deleted.
(WebCore::PageDOMDebuggerAgent::hasBreakpoint): Deleted.
Replace the bitmask with separateHashMapfor each type of DOM breakpoint. Instead of
propagating theSubtreeModifiedbit to the entire subtree when new nodes are added (which
means there's an entry in theHashMapfor every descendant) and removing them all when
that node is removed, only keep nodes in eachHashMapif it directly has a DOM breakpoint.
Walk up the ancestor chain when nodes are added/removed to determine if there is a nearby
breakpoint to pause. When a node is removed, remove any existing DOM breakpoint if it's
owner is part of the removed subtree.
- inspector/agents/worker/WorkerDOMDebuggerAgent.h:
- inspector/agents/worker/WorkerDOMDebuggerAgent.cpp:
(WebCore::WorkerDOMDebuggerAgent::setDOMBreakpoint):
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
Source/WebInspectorUI:
- UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype._setChildNodes):
Dispatch events for each new child node added and each existing child node removed so that
any listeners can also know when new nodes are added via a full children payload update.
- UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager):
(WI.DOMDebuggerManager.prototype.addDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.removeDOMBreakpoint):
(WI.DOMDebuggerManager.prototype._detachDOMBreakpointsForFrame): Added.
(WI.DOMDebuggerManager.prototype._speculativelyResolveDOMBreakpointsForURL):
(WI.DOMDebuggerManager.prototype._speculativelyResolveDOMBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._resolveDOMBreakpoint):
(WI.DOMDebuggerManager.prototype._setDOMBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._removeDOMBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._handleDOMBreakpointDisabledStateChanged):
(WI.DOMDebuggerManager.prototype._handleDOMBreakpointEditablePropertyChanged): Added.
(WI.DOMDebuggerManager.prototype._handleDOMBreakpointActionsChanged): Added.
(WI.DOMDebuggerManager.prototype._handleDOMBreakpointDOMNodeWillChange): Added.
(WI.DOMDebuggerManager.prototype._handleDOMBreakpointDOMNodeDidChange): Added.
(WI.DOMDebuggerManager.prototype._childFrameWasRemoved):
(WI.DOMDebuggerManager.prototype._mainResourceDidChange):
(WI.DOMDebuggerManager.prototype._nodeInserted):
(WI.DOMDebuggerManager.prototype._nodeRemoved):
(WI.DOMDebuggerManager.prototype._detachDOMBreakpoint): Deleted.
(WI.DOMDebuggerManager.prototype._detachBreakpointsForFrame): Deleted.
(WI.DOMDebuggerManager.prototype._updateDOMBreakpoint): Deleted.
Recursively walk any added node's subtree to resolve and set any matching DOM breakpoints.
Iterate all existing DOM breakpoints to see if the owner node is part of the subtree of any
removed nodes and remove ot if so.
- UserInterface/Models/DOMBreakpoint.js:
(WI.DOMBreakpoint):
(WI.DOMBreakpoint.displayNameForType):
(WI.DOMBreakpoint.fromJSON):
(WI.DOMBreakpoint.prototype.get editable): Added.
(WI.DOMBreakpoint.prototype.get domNode): Added.
(WI.DOMBreakpoint.prototype.set domNode): Added.
(WI.DOMBreakpoint.prototype.get domNodeIdentifier): Deleted.
(WI.DOMBreakpoint.prototype.set domNodeIdentifier): Deleted.
- UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.closed):
(WI.DOMTreeContentView.prototype._domTreeElementAdded):
(WI.DOMTreeContentView.prototype._domBreakpointAddedOrRemoved):
(WI.DOMTreeContentView.prototype._handleDOMBreakpointDisabledStateChanged):
(WI.DOMTreeContentView.prototype._handleDOMBreakpointDOMNodeWillChange): Added.
(WI.DOMTreeContentView.prototype._handleDOMBreakpointDOMNodeDidChange): Added.
(WI.DOMTreeContentView.prototype._updateBreakpointStatus):
(WI.DOMTreeContentView.prototype._restoreBreakpointsAfterUpdate):
(WI.DOMTreeContentView.prototype._handleDOMBreakpointDOMNodeChanged): Deleted.
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):
(WI.SourcesNavigationSidebarPanel.prototype._handleDOMBreakpointDOMNodeWillChange): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleDOMBreakpointDOMNodeDidChange): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleDOMBreakpointDOMNodeChanged): Deleted.
Use aWI.DOMNodeinstead of an identifier instead of fetching the node for the identifier
each time and checking if is valid.
LayoutTests:
- inspector/debugger/resources/breakpoint-options-utilities.js:
(TestPage.registerInitializer.InspectorTest.BreakpointOptions.addTestCases):
- inspector/dom-debugger/resources/dom-breakpoint-utilities.js: Added.
(TestPage.registerInitializer.InspectorTest.DOMBreakpoint.teardown):
(TestPage.registerInitializer.InspectorTest.DOMBreakpoint.createBreakpoint):
(TestPage.registerInitializer.InspectorTest.DOMBreakpoint.addBreakpoint):
(TestPage.registerInitializer.InspectorTest.DOMBreakpoint.awaitQuerySelector):
- inspector/dom-debugger/attribute-modified-style.html:
- inspector/dom-debugger/attribute-modified-style-expected.txt:
- inspector/dom-debugger/dom-breakpoints.html:
- inspector/dom-debugger/dom-breakpoints-expected.txt:
- inspector/dom-debugger/dom-breakpoint-attribute-modified.html: Added.
- inspector/dom-debugger/dom-breakpoint-attribute-modified-expected.txt: Added.
- inspector/dom-debugger/dom-breakpoint-node-removed-ancestor.html: Added.
- inspector/dom-debugger/dom-breakpoint-node-removed-ancestor-expected.txt: Added.
- inspector/dom-debugger/dom-breakpoint-node-removed-direct.html: Added.
- inspector/dom-debugger/dom-breakpoint-node-removed-direct-expected.txt: Added.
- inspector/dom-debugger/dom-breakpoint-subtree-modified-add.html: Added.
- inspector/dom-debugger/dom-breakpoint-subtree-modified-remove-expected.txt: Added.
- inspector/dom-debugger/dom-breakpoint-subtree-modified-remove.html: Added.
- inspector/dom-debugger/dom-breakpoint-subtree-modified-add-expected.txt: Added.
- 12:48 PM Changeset in webkit [266668] by
-
- 12 edits1 delete in trunk
TextDecoder should properly handle streams
https://bugs.webkit.org/show_bug.cgi?id=216202
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/encoding/streams/decode-non-utf8.any-expected.txt:
- web-platform-tests/encoding/streams/decode-non-utf8.any.js:
- web-platform-tests/encoding/streams/decode-non-utf8.any.worker-expected.txt:
- web-platform-tests/encoding/streams/decode-split-character.any-expected.txt:
- web-platform-tests/encoding/streams/decode-split-character.any.worker-expected.txt:
- web-platform-tests/encoding/streams/realms.window-expected.txt:
- web-platform-tests/encoding/textdecoder-fatal-streaming-expected.txt: Removed.
- web-platform-tests/encoding/textdecoder-fatal-streaming.any-expected.txt:
- web-platform-tests/encoding/textdecoder-fatal-streaming.any.worker-expected.txt:
Source/WebCore:
A TextCodec keeps state when it decodes part of valid input, such as the first byte of a multibyte sequence.
TextEncoding::decode makes a new TextCodec and throws away that state.
In order to properly handle streaming, we need to keep the TextCodec and call TextCodec::decode directly.
Covered by newly passing web platform tests. I also added a test that failed in my first implementation attempt
but passes now in WebKit as well as Chromium. Firefox hasn't implemented TextDecoderStream yet, but this test will
hopefully help them not make the same mistake I did.
- dom/TextDecoder.cpp:
(WebCore::TextDecoder::decode):
(WebCore::codeUnitByteSize): Deleted.
- dom/TextDecoder.h:
- 11:21 AM Changeset in webkit [266667] by
-
- 9 edits in trunk/Source
[Cocoa] CTFontIsSystemUIFont() is faster than CTFontDescriptorIsSystemUIFont()/CTFontCopyFontDescriptor()
https://bugs.webkit.org/show_bug.cgi?id=215687
Reviewed by Darin Adler.
Source/WebCore:
Instead of making the two calls, we can make a single call that has the same effect.
No new tests because there is no behavior change.
- platform/graphics/FontPlatformData.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::fontIsSystemFont):
- platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::primaryFontIsSystemFont const):
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::isSystemFont):
Source/WebCore/PAL:
- pal/spi/cocoa/CoreTextSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
- 11:07 AM Changeset in webkit [266666] by
-
- 4 edits in trunk/Source
[Cocoa] Migrate off SPI in Font::platformWidthForGlyph()
https://bugs.webkit.org/show_bug.cgi?id=215670
Reviewed by Zalan Bujtas.
Source/WebCore:
All the tests pass, and the microbenchmark attached to <rdar://problem/21026016> says it isn't a regression.
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformWidthForGlyph const):
Source/WTF:
- wtf/PlatformUse.h:
- 10:57 AM Changeset in webkit [266665] by
-
- 5 edits2 adds in trunk
[macOS] Don't apply synthetic bold or italics to emoji
https://bugs.webkit.org/show_bug.cgi?id=215686
Reviewed by Darin Adler.
Source/WebCore:
Italicized emoji are one of the most hideous things I've ever seen.
This unifies the behavior between macOS and iOS.
Test: fast/text/emoji-synthesis.html
- WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::computeNecessarySynthesis):
LayoutTests:
- fast/text/emoji-synthesis-expected.html: Added.
- fast/text/emoji-synthesis.html: Added.
- platform/win/TestExpectations:
- platform/mac/fast/text/fallback-traits-fixup-expected.txt:
- 10:55 AM Changeset in webkit [266664] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r260571): Scrolling on weather.com in Safari causes the gradient background to flicker (fixed backgrounds)
https://bugs.webkit.org/show_bug.cgi?id=216192
<rdar://problem/68192010>
Reviewed by Tim Horton.
If a page has slow-scrolling reasons, like background-attachment:fixed on a non-root element,
then we should never update layer positions on the scrolling thread, since this results
in scroll position being out of sync with the painted background position.
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::canUpdateLayersOnScrollingThread const):
(WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout):
(WebCore::ThreadedScrollingTree::delayedRenderingUpdateDetectionTimerFired):
(WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):
- page/scrolling/ThreadedScrollingTree.h:
- 10:51 AM Changeset in webkit [266663] by
-
- 8 edits1 delete in trunk/Source/WebCore
[Cocoa] Unify implementation of custom font name aliases between all Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=215689
Reviewed by Darin Adler.
The existing code is duplicated almost verbatim. There's no point in having two copies of the same thing.
No new tests because there is no behavior change.
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::fontWithFamilySpecialCase):
(WebCore::fontWithFamily):
- platform/graphics/cocoa/FontCacheCoreText.h:
- platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::FontCascadeDescription::effectiveFamilyCount const):
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
- platform/graphics/ios/FontCacheIOS.mm:
(WebCore::baseSystemFontDescriptor): Deleted.
(WebCore::systemFontModificationAttributes): Deleted.
(WebCore::systemFontDescriptor): Deleted.
(WebCore::platformFontWithFamilySpecialCase): Deleted.
- platform/graphics/mac/FontCacheMac.mm: Removed.
- 10:14 AM Changeset in webkit [266662] by
-
- 189 edits1 copy7 moves4 adds5 deletes in trunk/Source
[WebIDL] Realign our IDL extended attribute names with those specified in WebIDL
https://bugs.webkit.org/show_bug.cgi?id=216194
Reviewed by Darin Adler.
Source/WebCore:
Over time, the WebIDL and HTML specifications have added / renamed extended attributes and we have
not stayed up to date. This updates the names everywhere and URLs in IDLAttributes.json.
[AllowShared] -> new, marked as unsupported
[HTMLConstructor] - > new, marked as unsupported
[LegacyLenientSetter] -> renamed from [LenientSetter], still unsupported
[LegacyLenientThis] -> renamed from [LenientThis]
[LegacyNamespace] -> new, marked as unsupported
[LegacyNoInterfaceObject] -> renamed from [NoInterfaceObject]
[LegacyNullToEmptyString] -> renamed from [TreatNullAs=EmptyString]
[LegacyOverrideBuiltIns] -> renamed from OverrideBuiltins
[LegacyTreatNonObjectAsNull] -> renamed from [TreatNonObjectAsNull], still unsupported
[LegacyUnforgeable] -> renamed from [Unforgeable]
[Serializable] -> new, marked as unsupported
[Transferable] -> new, marked as unsupported
- Modules/applepay/ApplePayCancelEvent.idl:
- Modules/applepay/ApplePayPaymentAuthorizedEvent.idl:
- Modules/applepay/ApplePayPaymentMethodSelectedEvent.idl:
- Modules/applepay/ApplePayShippingContactSelectedEvent.idl:
- Modules/applepay/ApplePayShippingMethodSelectedEvent.idl:
- Modules/applepay/ApplePayValidateMerchantEvent.idl:
- Modules/fetch/FetchBody.idl:
- Modules/mediacontrols/MediaControlsHost.idl:
- Modules/mediasource/VideoPlaybackQuality.idl:
- Modules/mediastream/RTCPeerConnection.idl:
- Modules/plugins/QuickTimePluginReplacement.idl:
- Modules/quota/StorageInfo.idl:
- Modules/quota/StorageQuota.idl:
- Modules/speech/SpeechSynthesis.idl:
- Modules/speech/SpeechSynthesisVoice.idl:
- Modules/streams/ReadableStreamSink.idl:
- Modules/streams/ReadableStreamSource.idl:
- Modules/webaudio/WebKitAudioBufferSourceNode.idl:
- Modules/webaudio/WebKitAudioListener.idl:
- Modules/webaudio/WebKitDynamicsCompressorNode.idl:
- Modules/webaudio/WebKitOscillatorNode.idl:
- Scripts/SettingsTemplates/InternalSettingsGenerated.idl.erb:
- accessibility/AccessibilityRole.idl:
- accessibility/AriaAttributes.idl:
- animation/Animatable.idl:
- bindings/IDLTypes.h:
- bindings/js/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::disableLegacyOverrideBuiltInsBehavior):
(WebCore::DOMWrapperWorld::shouldDisableLegacyOverrideBuiltInsBehavior const):
(WebCore::DOMWrapperWorld::disableOverrideBuiltinsBehavior): Deleted.
(WebCore::DOMWrapperWorld::shouldDisableOverrideBuiltinsBehavior const): Deleted.
- bindings/js/JSDOMAbstractOperations.h:
(WebCore::isVisibleNamedProperty):
(WebCore::accessVisibleNamedProperty):
- bindings/js/JSDOMConvertNullable.h:
- bindings/js/JSDOMConvertStrings.h:
(WebCore::Converter<IDLTreatNullAsEmptyAdaptor<T>>::convert): Deleted.
(WebCore::JSConverter<IDLTreatNullAsEmptyAdaptor<T>>::convert): Deleted.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlot):
(GenerateGetOwnPropertySlotByIndex):
(GeneratePut):
(GeneratePutByIndex):
(GenerateIsLegacyUnforgeablePropertyName):
(GenerateDefineOwnProperty):
(GenerateDeletePropertyCommon):
(AttributeShouldBeOnInstance):
(OperationShouldBeOnInstance):
(IsAcceleratedDOMAttribute):
(GetJSCAttributesForAttribute):
(GenerateHeader):
(GenerateImplementation):
(GenerateAttributeGetterTrampolineDefinition):
(GenerateAttributeSetterTrampolineDefinition):
(IsAnnotatedType):
(GetAnnotatedIDLType):
(GenerateConstructorHelperMethods):
(NeedsConstructorProperty):
(IsLegacyUnforgeable):
(ComputeFunctionSpecial):
(GenerateIsUnforgeablePropertyName): Deleted.
(IsUnforgeable): Deleted.
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/preprocess-idls.pl:
- bindings/scripts/test/BindingTestGlobalConstructors.idl:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp: Added.
- bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h: Added.
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp: Added.
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h: Added.
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp: Added.
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h: Added.
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: Removed.
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h: Removed.
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: Removed.
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h: Removed.
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: Removed.
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h: Removed.
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: Removed.
- bindings/scripts/test/JS/JSTestOverrideBuiltins.h: Removed.
- bindings/scripts/test/SupplementalDependencies.dep:
- bindings/scripts/test/TestIncludes.idl:
- bindings/scripts/test/TestLegacyOverrideBuiltIns.idl: Added.
- bindings/scripts/test/TestNamedSetterWithLegacyOverrideBuiltIns.idl: Added.
- bindings/scripts/test/TestNamedSetterWithLegacyUnforgeableProperties.idl: Added.
- bindings/scripts/test/TestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.idl: Added.
- bindings/scripts/test/TestNamedSetterWithOverrideBuiltins.idl: Removed.
- bindings/scripts/test/TestNamedSetterWithUnforgableProperties.idl: Removed.
- bindings/scripts/test/TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.idl: Removed.
- bindings/scripts/test/TestObj.idl:
- bindings/scripts/test/TestOperationBase.idl:
- bindings/scripts/test/TestOverrideBuiltins.idl: Removed.
- css/CSSStyleDeclaration.idl:
- css/CSSUnknownRule.idl:
- css/ElementCSSInlineStyle.idl:
- css/MediaList.idl:
- css/StyleMedia.idl:
- dom/CharacterData.idl:
- dom/ChildNode.idl:
- dom/DOMImplementation.idl:
- dom/DOMStringMap.idl:
- dom/DeviceOrientationOrMotionEvent.idl:
- dom/Document.idl:
- dom/DocumentAndElementEventHandlers.idl:
- dom/DocumentOrShadowRoot.idl:
- dom/Element.idl:
- dom/Event.idl:
- dom/EventListener.idl:
- dom/GlobalEventHandlers.idl:
- dom/NavigatorMaxTouchPoints.idl:
- dom/NonDocumentTypeChildNode.idl:
- dom/NonElementParentNode.idl:
- dom/ParentNode.idl:
- dom/ShadowRoot.idl:
- dom/Slotable.idl:
- html/HTMLBodyElement.idl:
- html/HTMLDocument.idl:
- html/HTMLElement.idl:
- html/HTMLFontElement.idl:
- html/HTMLFormElement.idl:
- html/HTMLFrameElement.idl:
- html/HTMLHyperlinkElementUtils.idl:
- html/HTMLIFrameElement.idl:
- html/HTMLImageElement.idl:
- html/HTMLInputElement.idl:
- html/HTMLObjectElement.idl:
- html/HTMLOrForeignElement.idl:
- html/HTMLOutputElement.idl:
- html/HTMLTableCellElement.idl:
- html/HTMLTableElement.idl:
- html/HTMLTableRowElement.idl:
- html/HTMLTextAreaElement.idl:
- html/canvas/ANGLEInstancedArrays.idl:
- html/canvas/CanvasCompositing.idl:
- html/canvas/CanvasDrawImage.idl:
- html/canvas/CanvasDrawPath.idl:
- html/canvas/CanvasFillStrokeStyles.idl:
- html/canvas/CanvasFilters.idl:
- html/canvas/CanvasImageData.idl:
- html/canvas/CanvasImageSmoothing.idl:
- html/canvas/CanvasPath.idl:
- html/canvas/CanvasPathDrawingStyles.idl:
- html/canvas/CanvasRect.idl:
- html/canvas/CanvasShadowStyles.idl:
- html/canvas/CanvasState.idl:
- html/canvas/CanvasText.idl:
- html/canvas/CanvasTextDrawingStyles.idl:
- html/canvas/CanvasTransform.idl:
- html/canvas/CanvasUserInterface.idl:
- html/canvas/EXTBlendMinMax.idl:
- html/canvas/EXTColorBufferFloat.idl:
- html/canvas/EXTColorBufferHalfFloat.idl:
- html/canvas/EXTFragDepth.idl:
- html/canvas/EXTShaderTextureLOD.idl:
- html/canvas/EXTTextureFilterAnisotropic.idl:
- html/canvas/EXTsRGB.idl:
- html/canvas/OESElementIndexUint.idl:
- html/canvas/OESStandardDerivatives.idl:
- html/canvas/OESTextureFloat.idl:
- html/canvas/OESTextureFloatLinear.idl:
- html/canvas/OESTextureHalfFloat.idl:
- html/canvas/OESTextureHalfFloatLinear.idl:
- html/canvas/OESVertexArrayObject.idl:
- html/canvas/WebGLColorBufferFloat.idl:
- html/canvas/WebGLCompressedTextureASTC.idl:
- html/canvas/WebGLCompressedTextureATC.idl:
- html/canvas/WebGLCompressedTextureETC.idl:
- html/canvas/WebGLCompressedTextureETC1.idl:
- html/canvas/WebGLCompressedTexturePVRTC.idl:
- html/canvas/WebGLCompressedTextureS3TC.idl:
- html/canvas/WebGLCompressedTextureS3TCsRGB.idl:
- html/canvas/WebGLDebugRendererInfo.idl:
- html/canvas/WebGLDebugShaders.idl:
- html/canvas/WebGLDepthTexture.idl:
- html/canvas/WebGLDrawBuffers.idl:
- html/canvas/WebGLLoseContext.idl:
- html/canvas/WebGLRenderingContextBase.idl:
- html/canvas/WebGLVertexArrayObjectOES.idl:
- html/track/TextTrackCueGeneric.idl:
- html/track/VTTRegionList.idl:
- inspector/CommandLineAPIHost.idl:
- inspector/InspectorFrontendHost.idl:
- page/DOMWindow.idl:
- page/GlobalCrypto.idl:
- page/GlobalPerformance.idl:
- page/Location.idl:
- page/NavigatorID.idl:
- page/NavigatorLanguage.idl:
- page/NavigatorOnLine.idl:
- page/NavigatorPlugins.idl:
- page/NavigatorServiceWorker.idl:
- page/NavigatorShare.idl:
- page/RemoteDOMWindow.idl:
- page/WindowEventHandlers.idl:
- page/WindowOrWorkerGlobalScope.idl:
- svg/SVGFilterPrimitiveStandardAttributes.idl:
- svg/SVGFitToViewBox.idl:
- svg/SVGTests.idl:
- svg/SVGURIReference.idl:
- svg/SVGZoomAndPan.idl:
- testing/GCObservation.idl:
- testing/InternalSettings.idl:
- testing/Internals.idl:
- testing/InternalsMapLike.idl:
- testing/InternalsSetLike.idl:
- testing/MallocStatistics.idl:
- testing/MemoryInfo.idl:
- testing/MockCDMFactory.idl:
- testing/MockContentFilterSettings.idl:
- testing/MockPageOverlay.idl:
- testing/MockPaymentCoordinator.idl:
- testing/ServiceWorkerInternals.idl:
- testing/TypeConversions.idl:
- testing/WebFakeXRDevice.idl:
- testing/WebFakeXRInputController.idl:
- testing/WebXRTest.idl:
- workers/AbstractWorker.idl:
- xml/XPathNSResolver.idl:
Source/WebKit:
- WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
(WebKit::InjectedBundleScriptWorld::disableOverrideBuiltinsBehavior):
Update for new name WebCore::DOMWrapperWorld.
- 8:57 AM Changeset in webkit [266661] by
-
- 2 edits in trunk/Source/WebCore
-Wreturn-type warning in BaseAudioContext.cpp
https://bugs.webkit.org/show_bug.cgi?id=216215
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-09-05
Reviewed by Darin Adler.
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::periodicWave):
- 8:45 AM Changeset in webkit [266660] by
-
- 12 edits3 deletes in trunk
CSS revert should serialize as "revert", not "Revert"
https://bugs.webkit.org/show_bug.cgi?id=216187
Reviewed by Anders Carlsson.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-color-adjust/parsing/color-scheme-valid-expected.txt: Expect
one additional test to pass instead of fail.
- web-platform-tests/css/css-values/unset-value-storage-expected.txt: Expect pass instead of fail.
- web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Ditto.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/css-values/unset-value-storage.html
imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block.html
- css/CSSRevertValue.cpp:
(WebCore::CSSRevertValue::customCSSText const): Use lowercase "revert".
- css/StyleProperties.cpp:
(WebCore::isCSSWideValueKeyword): Added. Replaces isInitialOrInherit.
(WebCore::StyleProperties::fontValue const): Use isCSSWideValueKeyword rather
than isInitialOrInherit.
(WebCore::StyleProperties::getLayeredShorthandValue const): Ditto. Also
rearranged thee function a bit and shortened some excessively wordy code.
(WebCore::StyleProperties::getShorthandValue const): Ditto.
(WebCore::StyleProperties::borderPropertyValue const): Ditto.
(WebCore::StyleProperties::asText const): Added code to properly handle the
case where both background-position/repeat-x and -y are the same CSS-wide
value keyword as well as cases involving "initial". The general case above
handles these properly, but background-position/repeat have their own code,
which needed to repeat some of the same logic.
(WebCore::StyleProperties::PropertyReference::cssText const): Use makeString
instead of StringBuilder.
- dom/StyledElement.cpp:
(WebCore::StyledElement::styleAttributeChanged): Removed incorrect code that
detached the CSS object model style wrapper from the element when the style
attribute was removed. This was incorrect behavior; it should stay attached.
This fix happens to be tested by the same file as the "revert"/"Revert" fix
and I wanted the whole file to pass, not just one more test.
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::addBlockStyle): Rewrote for simplicity, but
also so this works properly when inlineStyle is non-null but empty. This case
arises in one test now because of the change to StyledElement above.
LayoutTests:
- editing/spelling/spelling-dots-position-expected.html: Remove some unneeded style text.
Caught my eye because it uses "background-position: initial".
- fast/css/background-position-serialize-expected.txt: Updated for a progression.
We now correctly omit "background-position: initial initial; background-repeat: initial initial;".
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
These were only needed because the failure strings depended on the exact set of attributes.
But the test passes now.
- 8:18 AM Changeset in webkit [266659] by
-
- 4 edits in trunk
Implement serialization of CSSPropertyGap
https://bugs.webkit.org/show_bug.cgi?id=216210
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-align/parsing/gap-valid-expected.txt: Expect pass.
Source/WebCore:
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const): Use get2Values to serialize
the gap shorthand.
- 3:11 AM Changeset in webkit [266658] by
-
- 5 edits in trunk
Unreviewed, reverting r266614 and r266657.
https://bugs.webkit.org/show_bug.cgi?id=216213
Broke builds
Reverted changesets:
"Fix Internals::supportsVCPEncoder on BigSur"
https://bugs.webkit.org/show_bug.cgi?id=216174
https://trac.webkit.org/changeset/266614
"Fix the build after r266614"
https://bugs.webkit.org/show_bug.cgi?id=216174
https://trac.webkit.org/changeset/266657
Patch by Commit Queue <commit-queue@webkit.org> on 2020-09-05
- 12:20 AM Changeset in webkit [266657] by
-
- 2 edits in trunk/Source/WebCore
Fix the build after r266614
https://bugs.webkit.org/show_bug.cgi?id=216174
Unreviewed.
- testing/Internals.cpp:
(WebCore::Internals::supportsVCPEncoder): These parentheses really should be in
Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h,
but I don't know the process for updating that third-party library. This is a
short-term build fix.