Timeline



Nov 28, 2021:

10:08 PM Changeset in webkit [286203] by Said Abou-Hallawa
  • 21 edits
    1 add in trunk/Source/WebCore

[GPU Process] Apply the filter to an ImageBuffer through GraphicsContext and ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=232843

Reviewed by Cameron McCormack.

This step will allow sending the Filter to GPUProcess and applying it to
a remote ImageBuffer.

In this patch, managing the sourceImageBuffer of the CSSFilter is moved
to RenderLayerFilters. This is similar to what RenderSVGResourceFilter
does by maintaining the sourceImage for the SVGFilter.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawFilteredImageBuffer):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/filters/Filter.cpp: Added.

(WebCore::Filter::Filter):
(WebCore::Filter::apply):

  • platform/graphics/filters/Filter.h:

(WebCore::Filter::renderingMode const):
(WebCore::Filter::setRenderingMode):
(WebCore::Filter::scaledByFilterScale const):
(WebCore::Filter::Filter): Deleted.

  • platform/graphics/filters/FilterImage.h:
  • platform/graphics/filters/software/FETileSoftwareApplier.cpp:
  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.cpp:
  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.cpp:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::apply):
(WebCore::CSSFilter::setSourceImageRect):
(WebCore::CSSFilter::inputContext): Deleted.
(WebCore::CSSFilter::allocateBackingStoreIfNeeded): Deleted.
(WebCore::CSSFilter::output): Deleted.
(WebCore::CSSFilter::outputRect): Deleted.

  • rendering/CSSFilter.h:
  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::inputContext):
(WebCore::RenderLayerFilters::allocateBackingStore):
(WebCore::RenderLayerFilters::beginFilterEffect):
(WebCore::RenderLayerFilters::applyFilterEffect):

  • rendering/RenderLayerFilters.h:
  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::postApplyResource):

  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::apply):

  • svg/graphics/filters/SVGFilter.h:
9:11 PM Changeset in webkit [286202] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit

[WebGPU] Add WebKit DerivedSources to Xcode project
https://bugs.webkit.org/show_bug.cgi?id=233544

Reviewed by Simon Fraser.

This allows for things like searching from the UI to work.

No new tests because there is no behavior change.

  • WebKit.xcodeproj/project.pbxproj:
2:35 PM Changeset in webkit [286201] by commit-queue@webkit.org
  • 2 edits in trunk

Add mattwoodrow to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=233301

Patch by Matt Woodrow <matt.woodrow@gmail.com> on 2021-11-28
Reviewed by Cameron McCormack.

  • metadata/contributors.json:
2:24 PM Changeset in webkit [286200] by commit-queue@webkit.org
  • 6 edits in trunk

Serialize computed style of background shorthand with multiple layers correctly.
https://bugs.webkit.org/show_bug.cgi?id=111121

Patch by Matt Woodrow <matt.woodrow@gmail.com> on 2021-11-28
Reviewed by Cameron McCormack.

Source/WebCore:

New subtests added to getComputedStyle-background-shorthand

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::getBackgroundShorthandValue):

LayoutTests:

  • fast/css/getComputedStyle/getComputedStyle-background-shorthand-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-background-shorthand.html:
1:28 PM Changeset in webkit [286199] by mmaxfield@apple.com
  • 2 edits in trunk

[WebGPU] Add WebGPU to the "All Source" scheme in WebKit.xcworkspace
https://bugs.webkit.org/show_bug.cgi?id=233542

Reviewed by Dean Jackson.

This scheme should build WebGPU.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
12:34 PM Changeset in webkit [286198] by sihui_liu@apple.com
  • 12 edits
    1 add in trunk/LayoutTests

Convert error to string before passing to testFailed() in FileSystemAccess layout tests
https://bugs.webkit.org/show_bug.cgi?id=233241

Reviewed by Youenn Fablet.

testFailed() in js-test.js expects string, but finishTest() may receive Error object as parameter.

  • storage/filesystemaccess/directory-handle-basics.html:
  • storage/filesystemaccess/directory-handle-iteration.html:
  • storage/filesystemaccess/file-handle-getfile.html:
  • storage/filesystemaccess/handle-move.html:
  • storage/filesystemaccess/resources/directory-handle-basics.js:

(getDirectory):
(finishTest): Deleted.

  • storage/filesystemaccess/resources/directory-handle-iteration.js:

(finishTest): Deleted.

  • storage/filesystemaccess/resources/file-handle-getfile.js:

(async read):
(async test):
(finishTest): Deleted.

  • storage/filesystemaccess/resources/handle-move.js:

(async test):
(finishTest): Deleted.

  • storage/filesystemaccess/resources/shared.js: Added. Move finishTest() function here so the code can be shared.

(finishTest):

  • storage/filesystemaccess/resources/sync-access-handle-basics.js:

(getDirectory):
(finishTest): Deleted.

  • storage/filesystemaccess/resources/sync-access-handle-close.js:

(finishTest): Deleted.

  • storage/filesystemaccess/resources/sync-access-handle-read-write.js:

(async test):
(finishTest): Deleted.

11:15 AM Changeset in webkit [286197] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[WebGPU] Add derived sources to Xcode project
https://bugs.webkit.org/show_bug.cgi?id=233533

Reviewed by Simon Fraser.

This allows for things like searching within Xcode to work.

No new tests because there is no behavior change.

  • WebCore.xcodeproj/project.pbxproj:
10:55 AM Changeset in webkit [286196] by weinig@apple.com
  • 8 edits
    2 adds in trunk

[CSS Color 5] Update color-mix() to latest spec (again)
https://bugs.webkit.org/show_bug.cgi?id=233527

Reviewed by Dean Jackson.

Source/WebCore:

Updates color-mix() implementation with support for hue interpolation methods and
addresses various other spec changes (detailed below).

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add ColorInterpolation.h/cpp

  • css/CSSValueKeywords.in:

Add keywords need for the <color-space-interpolation> production. Separated out
from color-mix as these will be used for other CSS properties as well.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeHueInterpolationMethod):
(WebCore::CSSPropertyParserHelpers::consumeColorInterpolationMethod):
(WebCore::CSSPropertyParserHelpers::consumeColorMixComponent):
(WebCore::CSSPropertyParserHelpers::normalizedMixPercentages):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HWBA<float>>):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HSLA<float>>):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<LCHA<float>>):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<OKLCHA<float>>):
(WebCore::CSSPropertyParserHelpers::mixColorComponentsUsingColorInterpolationMethod):
(WebCore::CSSPropertyParserHelpers::mixColorComponents):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParameters):
(WebCore::CSSPropertyParserHelpers::consumeColorMixColorSpaceAndComma): Deleted.
(WebCore::CSSPropertyParserHelpers::fixupHueComponentsPriorToMix): Deleted.
(WebCore::CSSPropertyParserHelpers::mixColorComponentsInColorSpace): Deleted.
Rework color-mix to support the hue interpolation method specification for polor color spaces
like lch, oklch, hsl and hwb. Also update implementation to match the current spec by restricting
mix percentages to between 0 and 100 and applying alpha multiplier when the mix percentages add
up to less than 100.

  • platform/graphics/ColorInterpolation.cpp: Added.
  • platform/graphics/ColorInterpolation.h: Added.

Add structures to represent color interpolation methods including optional hue
interpolation parameters for color spaces that require it and provides prenormalization
that fixes up hue angles depending on the method selected. Over time, more aspects of
interpolation should be moved here as we figure out what can be shared.

LayoutTests:

  • fast/css/parsing-color-mix-expected.txt:
  • fast/css/parsing-color-mix.html:

Update tests to include testing of hue interpolation methods, new
restrictions on percentage ranges and the new alpha multiplier.

10:32 AM Changeset in webkit [286195] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Visual ordering may require multiple display box instances for a single inline box
https://bugs.webkit.org/show_bug.cgi?id=233538

Reviewed by Antti Koivisto.

This patch implements the multiple display box setup for cases when the visually re-ordered content escapes
the logical inline box boundaries.

a<span>bg</span>f<span>ec</span>d -> "abgfecd"

Introduce RTL/LTR overrides:

a<span>b&#8238;g</span>f<span>e&#8237;c</span>d -> "abcdefg"

current direction: left-to-right.
take: 'a'
take: 'b'
take: RTL override (current direction: right-to-left, ie jump to the right end of the override content unless there's a nested override)
take: (nested)LTR override (current direction: left-to-right, ie jump to the left end of the override content)
take: 'c'
take: 'd' (end of nested LTR override)
take: 'e' (in RTL direction)
take: 'f'
take: 'g'

By jumping between these bidi runs, we may end up going back and forth between various inline boxes.
Each time we "leave" an inline box (e.g. going from 'b' to 'c'), we need to close the current inline box(es)
and "open" new one(s) for the content.
This patch implements the jumping logic but it does not yet compute geometry for each of these fragmented inline boxes.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSpanningInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBoxForBidiBoundary):
(WebCore::Layout::InlineDisplayContentBuilder::adjustInlineBoxDisplayBoxForBidiBoundary):
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent): "Open" and "close" inline boxes based on the content
and not based on the [inline box start]/[inline box end] runs (ie content where logical order == visual order can use those explicit markers to
construct the associated display boxes but with re-ordering we need to rely on the content itself)

(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
10:19 AM Changeset in webkit [286194] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Weird JS usage in webrtc/multi-video.html
https://bugs.webkit.org/show_bug.cgi?id=233540

Patch by Philippe Normand <pnormand@igalia.com> on 2021-11-28
Reviewed by Youenn Fablet.

  • webrtc/multi-video.html: MediaStream.getVideoTracks() accepts no argument and returns a

sequence. The MediaStream constructor needs a sequence of tracks.

Nov 27, 2021:

8:28 PM Changeset in webkit [286193] by Said Abou-Hallawa
  • 22 edits
    7 adds
    4 deletes in trunk/Source/WebCore

[GPU Process] Implement FilterEffect CoreImage appliers
https://bugs.webkit.org/show_bug.cgi?id=232831

Reviewed by Cameron McCormack.

This will allow applying the CoreImage filters through FilterEffect::apply().
It will also allow passing FilterImages to the FilterEffect CoreImage
appliers. This will require adding a CIImage as a possible result to
FilterImage.

If the CoreImage filters are enabled, the Filter will check if all the
FilterEffects supports CoreImage rendering. And if one if them does not
support it, the renderingMode will be switched to Unaccelerated.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/coreimage/FEColorMatrixCoreImageApplier.h: Copied from Source/WebCore/platform/graphics/filters/FilterEffectRenderer.cpp.
  • platform/graphics/coreimage/FEColorMatrixCoreImageApplier.mm: Added.

(WebCore::FEColorMatrixCoreImageApplier::FEColorMatrixCoreImageApplier):
(WebCore::FEColorMatrixCoreImageApplier::supportsCoreImageRendering):
(WebCore::FEColorMatrixCoreImageApplier::apply const):

  • platform/graphics/coreimage/FEComponentTransferCoreImageApplier.h: Renamed from Source/WebCore/platform/graphics/filters/FilterEffectRenderer.h.
  • platform/graphics/coreimage/FEComponentTransferCoreImageApplier.mm: Added.

(WebCore::FEComponentTransferCoreImageApplier::FEComponentTransferCoreImageApplier):
(WebCore::FEComponentTransferCoreImageApplier::supportsCoreImageRendering):
(WebCore::FEComponentTransferCoreImageApplier::apply const):

  • platform/graphics/coreimage/FilterEffectRendererCoreImage.h: Removed.
  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm: Removed.
  • platform/graphics/coreimage/FilterImageCoreImage.mm: Added.

(WebCore::sharedCIContext):
(WebCore::FilterImage::setCIImage):
(WebCore::FilterImage::imageBufferFromCIImage):

  • platform/graphics/coreimage/SourceGraphicCoreImageApplier.h: Copied from Source/WebCore/platform/graphics/filters/FilterEffectRenderer.cpp.
  • platform/graphics/coreimage/SourceGraphicCoreImageApplier.mm: Renamed from Source/WebCore/platform/graphics/filters/FilterEffectRenderer.cpp.

(WebCore::SourceGraphicCoreImageApplier::apply const):

  • platform/graphics/cv/CVUtilities.mm:
  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::supportsCoreImageRendering const):
(WebCore::FEColorMatrix::createApplier const):

  • platform/graphics/filters/FEColorMatrix.h:
  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::supportsCoreImageRendering const):
(WebCore::FEComponentTransfer::createApplier const):

  • platform/graphics/filters/FEComponentTransfer.h:
  • platform/graphics/filters/Filter.h:

(WebCore::Filter::Filter):
(): Deleted.

  • platform/graphics/filters/FilterFunction.h:

(WebCore::FilterFunction::supportsCoreImageRendering const):

  • platform/graphics/filters/FilterImage.cpp:

(WebCore::FilterImage::imageBuffer):
(WebCore::FilterImage::imageBufferFromPixelBuffer):

  • platform/graphics/filters/FilterImage.h:

(WebCore::FilterImage::ciImage const):

  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::createApplier const):

  • platform/graphics/filters/SourceGraphic.h:
  • platform/mac/ScrollingEffectsController.mm:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::createSVGFilter):
(WebCore::CSSFilter::buildFilterFunctions):
(WebCore::CSSFilter::allocateBackingStoreIfNeeded):
(WebCore::CSSFilter::supportsCoreImageRendering const):
(WebCore::CSSFilter::apply):
(WebCore::CSSFilter::output):
(WebCore::CSSFilter::outputRect):

  • rendering/CSSFilter.h:
  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):

  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):
(WebCore::SVGFilter::SVGFilter):
(WebCore::SVGFilter::supportsCoreImageRendering const):

  • svg/graphics/filters/SVGFilter.h:
7:43 PM Changeset in webkit [286192] by ysuzuki@apple.com
  • 2 edits in trunk

Unreviewed, update atomics detection to make libpas built on Linux

  • Source/cmake/WebKitCompilerFlags.cmake:
12:54 PM Changeset in webkit [286191] by weinig@apple.com
  • 22 edits
    32 adds in trunk

[CSS Color 4] Add support for oklab() and oklch() colors
https://bugs.webkit.org/show_bug.cgi?id=233507

Reviewed by Cameron McCormack.

LayoutTests/imported/w3c:

Add new tests for oklab() and oklch() based on the existing lab()
and lch() tests.

  • web-platform-tests/css/css-color/oklab-001-expected.html: Added.
  • web-platform-tests/css/css-color/oklab-001.html: Added.
  • web-platform-tests/css/css-color/oklab-002-expected.html: Added.
  • web-platform-tests/css/css-color/oklab-002.html: Added.
  • web-platform-tests/css/css-color/oklab-003-expected.html: Added.
  • web-platform-tests/css/css-color/oklab-003.html: Added.
  • web-platform-tests/css/css-color/oklab-004-expected.html: Added.
  • web-platform-tests/css/css-color/oklab-004.html: Added.
  • web-platform-tests/css/css-color/oklab-005-expected.html: Added.
  • web-platform-tests/css/css-color/oklab-005.html: Added.
  • web-platform-tests/css/css-color/oklab-006-expected.html: Added.
  • web-platform-tests/css/css-color/oklab-006.html: Added.
  • web-platform-tests/css/css-color/oklab-007-expected.html: Added.
  • web-platform-tests/css/css-color/oklab-007.html: Added.
  • web-platform-tests/css/css-color/oklab-008-expected.html: Added.
  • web-platform-tests/css/css-color/oklab-008.html: Added.
  • web-platform-tests/css/css-color/oklch-001-expected.html: Added.
  • web-platform-tests/css/css-color/oklch-001.html: Added.
  • web-platform-tests/css/css-color/oklch-002-expected.html: Added.
  • web-platform-tests/css/css-color/oklch-002.html: Added.
  • web-platform-tests/css/css-color/oklch-003-expected.html: Added.
  • web-platform-tests/css/css-color/oklch-003.html: Added.
  • web-platform-tests/css/css-color/oklch-004-expected.html: Added.
  • web-platform-tests/css/css-color/oklch-004.html: Added.
  • web-platform-tests/css/css-color/oklch-005-expected.html: Added.
  • web-platform-tests/css/css-color/oklch-005.html: Added.
  • web-platform-tests/css/css-color/oklch-006-expected.html: Added.
  • web-platform-tests/css/css-color/oklch-006.html: Added.
  • web-platform-tests/css/css-color/oklch-007-expected.html: Added.
  • web-platform-tests/css/css-color/oklch-007.html: Added.
  • web-platform-tests/css/css-color/oklch-008-expected.html: Added.
  • web-platform-tests/css/css-color/oklch-008.html: Added.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/css-color/oklab-001.html

imported/w3c/web-platform-tests/css/css-color/oklab-002.html
imported/w3c/web-platform-tests/css/css-color/oklab-003.html
imported/w3c/web-platform-tests/css/css-color/oklab-004.html
imported/w3c/web-platform-tests/css/css-color/oklab-005.html
imported/w3c/web-platform-tests/css/css-color/oklab-006.html
imported/w3c/web-platform-tests/css/css-color/oklab-007.html
imported/w3c/web-platform-tests/css/css-color/oklab-008.html
imported/w3c/web-platform-tests/css/css-color/oklch-001.html
imported/w3c/web-platform-tests/css/css-color/oklch-002.html
imported/w3c/web-platform-tests/css/css-color/oklch-003.html
imported/w3c/web-platform-tests/css/css-color/oklch-004.html
imported/w3c/web-platform-tests/css/css-color/oklch-005.html
imported/w3c/web-platform-tests/css/css-color/oklch-006.html
imported/w3c/web-platform-tests/css/css-color/oklch-007.html
imported/w3c/web-platform-tests/css/css-color/oklch-008.html

Adds support for oklab() and oklch() CSS colors and as interpolation
parameters for color-mix().

OKLab (and its polar form OKLCH) is a relatively new Lab-like colorspace that aims
to be an improved (improved hue linearity, hue uniformity, and chroma uniformity)
Lab. It was create by Björn Ottosson and is documented at https://bottosson.github.io/posts/oklab/.

  • css/CSSValueKeywords.in:

Add 'oklab' and 'oklch' to the keyword list so they can be used as function
identifiers. Remove old mention of 'lab' in the color() function section,
since 'lab' is no longer a valid colorspace to use in the color() function
(rather, only lab() is supported).

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
Generalize lab and lch function parsing to also support the oklab and
oklch variants (they have the same parsing rules).

(WebCore::CSSPropertyParserHelpers::consumeColorMixColorSpaceAndComma):
(WebCore::CSSPropertyParserHelpers::mixColorComponents):
Add support for using oklab and oklch as the interpolation space of a color-mix().
This was already generalized so all it meant doing was adding mappings of the
new identifiers to enums and mixColorComponentsInColorSpace calls.

  • platform/graphics/ColorComponents.h:

(WebCore::ColorComponents::subset const):
Fix compile error (no one had used subset yet it seems). 'std::remove_const_t<decltype(T::Size)>'
was likely copied from mapColorComponents() where it is templatized and needs to deduce the loop
variable, but that is not needed here.

  • platform/graphics/ColorConversion.cpp:

(WebCore::convertToPolarForm):
(WebCore::convertToRectangularForm):
Move conversion to/from polar/rectangular forms from the LCHA conversion
code here, so that it can be reused for OKLCHA.

(WebCore::OKLab<float>>::convert):
Add support for converting OKLab to/from XYZ D65. Matrix values come from https://bottosson.github.io/posts/oklab/
with updates from https://github.com/w3c/csswg-drafts/issues/6642#issuecomment-943521484

(WebCore::OKLCHA<float>>::convert):
Add support for converting OKLCHA. This is identical to the LCHA code above.

(WebCore::converColorComponents):
Add cases for new colorspaces.

  • platform/graphics/ColorConversion.h:

Add converters for new colorspaces. Update diagram with them as well.

  • platform/graphics/ColorMatrix.h:

(WebCore::ColorMatrix::transformedColorComponents const):
Generalize transformedColorComponents to work with any size ColorComponents object. This allows
the OKLab conversion code to be a bit simpler as it can operate on just the non-alpha components
in a more systematic way.

  • platform/graphics/ColorModels.h:

Add new predicate template variables to help when needing to check what model a particular
color type uses.

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
Add serialization support for new colorspaces. Also removes unused support for serializing lab
colors using the color(lab ...) syntax which has not been supported for some time.

  • platform/graphics/ColorSpace.cpp:
  • platform/graphics/ColorSpace.h:
  • platform/graphics/cg/ColorSpaceCG.h:

Add OKLab and OKLCH to the list of enumerated colorspaces and add mappings to their
newly defined types OKLab<T> and OKLCHA<T>.

  • platform/graphics/ColorTypes.h:

(WebCore::OKLab::OKLab):
(WebCore::OKLCHA::OKLCHA):
Add new types OKLab<T> and OKLCHA<T> (it looks like at some point an earlier version of this
must have partially landed as there were existing forward declarations). Like Lab<T> and LCHA<T>,
these new types use the LabModel<T> and LCHModel<T> models, but unlike them they use a whitepoint
of D65.

  • platform/graphics/ColorUtilities.h:

Generalize isBlack and isWhite to have a variant that works with Lab, LCH, OKLab and OKLCH (as they
all are identical) using SFINAE, use the new model predicates to make this more clear.

LayoutTests:

Update existing tests for lab() and lch() to also test oklab() and oklch().
As they have the same parsing rules, this is mostly done by templatizing
the tests and running them in a loop.

  • fast/css/parsing-color-mix-expected.txt:
  • fast/css/parsing-color-mix.html:
  • fast/css/parsing-lab-colors-expected.txt:
  • fast/css/parsing-lab-colors.html:
  • fast/css/parsing-relative-color-syntax-expected.txt:
  • fast/css/parsing-relative-color-syntax.html:
9:52 AM Changeset in webkit [286190] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Decouple display box construction for bidi and non-bidi content
https://bugs.webkit.org/show_bug.cgi?id=233531

Reviewed by Antti Koivisto.

Having a common display box creation codepath for both bidi and non-bidi content worked out well this far
but the upcoming inline box visual ordering will certainly make the common codepath unnecessarily confusing
for the non-bidi case.
In this patch the newly introduced append* functions manage the display box creation and
their callers (processNonBidiContent/processBidiContent) deal with the visual ordering details.
It means that the non-bidi codepath simply loops through the line runs and calls the append* functions,
while the bidi codepath keeps track of the visual ordering and calls the append* functions accordingly.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSoftLineBreakDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendHardLineBreakDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendAtomicInlineLevelDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSpanningInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processOverflownRunsForEllipsis):
(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineContent): Deleted.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
8:41 AM Changeset in webkit [286189] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][a11y] Signal state-changed:selected is not emitted for listbox elements when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=233521

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Post a selected change notification for option elements when the state changes.

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::setSelectedState):

Tools:

Add test cases to check that the signal is now emitted as expected.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(AccessibilityTest::isSelected):
(testAccessibleStateChanged):
(testSelectionListBox):
(testSelectionMenuList):

1:44 AM Changeset in webkit [286188] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[:has() pseudo-class] Invalidation support for adding and removing elements
https://bugs.webkit.org/show_bug.cgi?id=233489
<rdar://problem/85754298>

Unreviewed followup.

Some unitialized bits caused us to do unnecessary work and regressed Speedometer.

  • style/RuleFeature.h:

Initialize the usedMatchElements array.

Nov 26, 2021:

6:43 PM Changeset in webkit [286187] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

Typo in ColorConversion code: converColorComponents
https://bugs.webkit.org/show_bug.cgi?id=233497

Reviewed by Ryosuke Niwa.

Fix typo in ColorConversion code. converColorComponents -> convertColorComponents

  • platform/graphics/Color.cpp:

(WebCore::Color::toColorComponentsInColorSpace const):

  • platform/graphics/ColorConversion.cpp:

(WebCore::convertColorComponents):
(WebCore::converColorComponents): Deleted.

  • platform/graphics/ColorConversion.h:
3:51 PM Changeset in webkit [286186] by Said Abou-Hallawa
  • 74 edits in trunk/Source/WebCore

[GPU Process] Make FilterEffects create FilterEffectAppliers which will be used by FilterEffect::apply()
https://bugs.webkit.org/show_bug.cgi?id=233516

Reviewed by Cameron McCormack.

This step is required to allow integrating CoreImage FilterEffect appliers
in FilterEffect::apply(). Currently applying CoreImage FilterEffect has
to go to a different code path in FilterEffectRendererCoreImage.

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::createApplier const):
(WebCore::FEBlend::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEBlend.h:
  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::createApplier const):
(WebCore::FEColorMatrix::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEColorMatrix.h:
  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::createApplier const):
(WebCore::FEComponentTransfer::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEComponentTransfer.h:
  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::createApplier const):
(WebCore::FEComposite::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEComposite.h:
  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::createApplier const):
(WebCore::FEConvolveMatrix::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEConvolveMatrix.h:
  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::createApplier const):
(WebCore::FEDisplacementMap::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::createApplier const):
(WebCore::FEDropShadow::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEDropShadow.h:
  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFlood::createApplier const):
(WebCore::FEFlood::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEFlood.h:
  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::createApplier const):
(WebCore::FEGaussianBlur::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEGaussianBlur.h:
  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::createApplier const):
(WebCore::FELighting::platformApplySoftware): Deleted.

  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FEMerge.cpp:

(WebCore::FEMerge::createApplier const):
(WebCore::FEMerge::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEMerge.h:
  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::createApplier const):
(WebCore::FEMorphology::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEMorphology.h:
  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::createApplier const):
(WebCore::FEOffset::platformApplySoftware): Deleted.

  • platform/graphics/filters/FEOffset.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::createApplier const):
(WebCore::FETile::platformApplySoftware): Deleted.

  • platform/graphics/filters/FETile.h:
  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::createApplier const):
(WebCore::FETurbulence::platformApplySoftware): Deleted.

  • platform/graphics/filters/FETurbulence.h:
  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::apply):

  • platform/graphics/filters/FilterEffect.h:
  • platform/graphics/filters/FilterEffectApplier.h:

(WebCore::FilterEffectApplier::create):
(WebCore::FilterEffectConcreteApplier::FilterEffectConcreteApplier):

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::createApplier const):
(WebCore::SourceAlpha::platformApplySoftware): Deleted.

  • platform/graphics/filters/SourceAlpha.h:
  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::createApplier const):
(WebCore::SourceGraphic::platformApplySoftware): Deleted.

  • platform/graphics/filters/SourceGraphic.h:
  • platform/graphics/filters/software/FEBlendSoftwareApplier.cpp:

(WebCore::FEBlendSoftwareApplier::apply const):
(WebCore::FEBlendSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEBlendSoftwareApplier.h:
  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.cpp:

(WebCore::FEColorMatrixSoftwareApplier::FEColorMatrixSoftwareApplier):
(WebCore::FEColorMatrixSoftwareApplier::apply const):
(WebCore::FEColorMatrixSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.h:
  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.cpp:

(WebCore::FEComponentTransferSoftwareApplier::apply const):
(WebCore::FEComponentTransferSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h:
  • platform/graphics/filters/software/FECompositeSoftwareApplier.cpp:

(WebCore::FECompositeSoftwareApplier::applyArithmetic const):
(WebCore::FECompositeSoftwareApplier::applyNonArithmetic const):
(WebCore::FECompositeSoftwareApplier::apply const):
(WebCore::FECompositeSoftwareApplier::applyArithmetic): Deleted.
(WebCore::FECompositeSoftwareApplier::applyNonArithmetic): Deleted.
(WebCore::FECompositeSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FECompositeSoftwareApplier.h:
  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.cpp:

(WebCore::FEConvolveMatrixSoftwareApplier::apply const):
(WebCore::FEConvolveMatrixSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h:
  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.cpp:

(WebCore::FEDisplacementMapSoftwareApplier::FEDisplacementMapSoftwareApplier):
(WebCore::FEDisplacementMapSoftwareApplier::apply const):
(WebCore::FEDisplacementMapSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.h:
  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.cpp:

(WebCore::FEDropShadowSoftwareApplier::apply const):
(WebCore::FEDropShadowSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.h:
  • platform/graphics/filters/software/FEFloodSoftwareApplier.cpp:

(WebCore::FEFloodSoftwareApplier::apply const):
(WebCore::FEFloodSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEFloodSoftwareApplier.h:
  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:

(WebCore::FEGaussianBlurSoftwareApplier::apply const):
(WebCore::FEGaussianBlurSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h:
  • platform/graphics/filters/software/FELightingSoftwareApplier.cpp:

(WebCore::FELightingSoftwareApplier::apply const):
(WebCore::FELightingSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FELightingSoftwareApplier.h:
  • platform/graphics/filters/software/FEMergeSoftwareApplier.cpp:

(WebCore::FEMergeSoftwareApplier::apply const):
(WebCore::FEMergeSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEMergeSoftwareApplier.h:
  • platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp:

(WebCore::FEMorphologySoftwareApplier::apply const):
(WebCore::FEMorphologySoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEMorphologySoftwareApplier.h:
  • platform/graphics/filters/software/FEOffsetSoftwareApplier.cpp:

(WebCore::FEOffsetSoftwareApplier::apply const):
(WebCore::FEOffsetSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FEOffsetSoftwareApplier.h:
  • platform/graphics/filters/software/FETileSoftwareApplier.cpp:

(WebCore::FETileSoftwareApplier::apply const):
(WebCore::FETileSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FETileSoftwareApplier.h:
  • platform/graphics/filters/software/FETurbulenceSoftwareApplier.cpp:

(WebCore::FETurbulenceSoftwareApplier::apply const):
(WebCore::FETurbulenceSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/FETurbulenceSoftwareApplier.h:
  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.cpp:

(WebCore::SourceAlphaSoftwareApplier::apply const):
(WebCore::SourceAlphaSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.h:
  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.cpp:

(WebCore::SourceGraphicSoftwareApplier::apply const):
(WebCore::SourceGraphicSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImageSoftwareApplier::apply const):
(WebCore::FEImage::createApplier const):
(WebCore::FEImageSoftwareApplier::apply): Deleted.
(WebCore::FEImage::platformApplySoftware): Deleted.

  • svg/graphics/filters/SVGFEImage.h:
2:19 PM Changeset in webkit [286185] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Gardening API test WebKit.OnDeviceChangedCrash as flaky timeout

Unreviewed test gardening.

Flakiness seems to have been introduced between 243131@main and
243249@main.

  • TestWebKitAPI/glib/TestExpectations.json:
2:10 PM Changeset in webkit [286184] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.35.1

WPE WebKit 2.35.1

2:09 PM Changeset in webkit [286183] by Adrian Perez de Castro
  • 4 edits in trunk

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.35.1 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.35.1.
1:45 PM Changeset in webkit [286182] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Unreviewed non-unified build fix.

No new tests needed.

  • css/SelectorChecker.cpp: Add missin StyleRule.h header inclusion.
11:36 AM Changeset in webkit [286181] by ntim@apple.com
  • 1 edit
    1 delete in trunk/LayoutTests

Remove focus-after-close-expected.txt for glib as it is identical as the cross-platform file

Unreviewed test gardening

  • platform/glib/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt: Removed.
7:13 AM Changeset in webkit [286180] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

[:has() pseudo-class] Don't traverse descendants during selector matching unless needed
https://bugs.webkit.org/show_bug.cgi?id=233520

Reviewed by Alan Bujtas.

It is sufficient to traverse direct children to match something like :has(> foo).

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):
(WebCore::SelectorChecker::matchHasPseudoClass const):

Factor into a function.
Compute the match element for the :has() argument and use it to choose what to traverse.

  • css/SelectorChecker.h:
  • style/RuleFeature.cpp:

(WebCore::Style::computeNextMatchElement):
(WebCore::Style::computeHasPseudoClassMatchElement):
(WebCore::Style::computeSubSelectorMatchElement):

Make these free-standing functions and expose computeHasPseudoClassMatchElement.

(WebCore::Style::RuleFeatureSet::computeNextMatchElement): Deleted.
(WebCore::Style::RuleFeatureSet::computeSubSelectorMatchElement): Deleted.

  • style/RuleFeature.h:
7:01 AM Changeset in webkit [286179] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION(r286112): Style invalidation for text mutation happening after event dispatch
https://bugs.webkit.org/show_bug.cgi?id=233501
<rdar://problem/85754810>

Reviewed by Alan Bujtas.

Source/WebCore:

Test: fast/events/mutation-in-DOMCharacterDataModified.html

  • dom/CharacterData.cpp:

(WebCore::CharacterData::setDataAndUpdate):

Scope ChildChangeInvalidation more narrowly.

LayoutTests:

  • fast/events/mutation-in-DOMCharacterDataModified-expected.txt: Added.
  • fast/events/mutation-in-DOMCharacterDataModified.html: Added.
6:42 AM Changeset in webkit [286178] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Generate ellipsis boxes for tex-overflow: ellipsis
https://bugs.webkit.org/show_bug.cgi?id=233508

Reviewed by Antti Koivisto.

  1. Check for overflowing inline content
  2. Truncate runs to make room for the ellipsis content

(https://drafts.csswg.org/css-overflow/#text-overflow)

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::processOverflownRunsForEllipsis):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineRect.h:

(WebCore::Layout::InlineRect::setRight):

  • layout/formattingContexts/inline/display/InlineDisplayBox.h:

(WebCore::InlineDisplay::Box::isEllipsis const):
(WebCore::InlineDisplay::Box::moveHorizontally):
(WebCore::InlineDisplay::Box::truncate):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::breakWord):

  • layout/formattingContexts/inline/text/TextUtil.h:
5:35 AM Changeset in webkit [286177] by Carlos Garcia Campos
  • 6 edits in trunk

[GTK][a11y] MenuListPopup elements should implement selection interface too when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=233519

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add an implementation of canHaveSelectedChildren() to AccessibilityMenuListPopup that returns true for
ATSPI. Also implement selectedChildren() which is enough to share the same selection interface implementation
with list box elements. This is consistent with chromium.

  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::canHaveSelectedChildren const):
(WebCore::AccessibilityMenuListPopup::selectedChildren):

  • accessibility/AccessibilityMenuListPopup.h:
  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

Tools:

Add a test case for menu list.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testSelectionListBox):
(testSelectionMenuList):
(beforeAll):

5:17 AM Changeset in webkit [286176] by Adrian Perez de Castro
  • 14 edits in trunk/Source

Non-unified build fixes, late November 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=233493

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • jit/ThunkGenerators.h: Add missing inclusion of CallMode.h header, move header

inclusions inside the ENABLE(JIT) guard.

Source/WebCore:

No new tests needed.

  • Modules/mediastream/RTCDataChannelRemoteHandler.cpp: Add missing ProcessQualified.h and

ScriptExecutionContextIdentifier.h headers.

  • Modules/mediastream/RTCDataChannelRemoteSource.cpp: Ditto.
  • contentextensions/ContentExtensionActions.cpp: Add missing ResourceRequest.h header.
  • platform/graphics/filters/FilterImage.h: Add missing forward declarations for the Filter

and FloatRect types.

  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.h: Add missing forward

declaration for the PixelBuffer type.

  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h: Ditto.
  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h: Add missing

IntPoint.h, IntSize.h, and JavaScriptCore/TypedArrayAdaptersForwardDeclarations.h headers.

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h: Add missing

IntSize.h header.

  • platform/graphics/filters/software/FELightingSoftwareApplier.h: Add missing

FilterEffect.h and FilterImageVector.h headers.

Source/WebKit:

  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.h: Add missing

WebCore/ProcessQualified.h header.

3:11 AM Changeset in webkit [286175] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

GraphicsContextGLOpenGL.cpp contains OpenGL implementation specific and platform specific code
https://bugs.webkit.org/show_bug.cgi?id=233513

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-26
Reviewed by Antti Koivisto.

Move duplicate functionality of "context changed, context not changed" from

  • GraphicsContextGLOpenGL ANGLE variant
  • GraphicsContextGLOpenGL OpenGL, OpenGL ES variant
  • RemoteGraphicsContextGLProxyBase

to base class GraphicsContextGL. In order to do this, add few WEBCORE_EXPORTs to
GraphicsContextGL.h, since RemoteGraphicsContextGLProxyBase is in WebKit and needs to call
the base-class versions as well as use vtable.

Move ANGLE-specific functions from GraphicsContextGLOpenGL.cpp to GraphicsContextGLANGLE.cpp.
Move TextureMapper-specific functions from GraphicsContextGLOpenGL.cpp to GraphicsContextGLTextureMapper.cpp.
Move OpenGL, OpenGL ES specific functions from GraphicsContextGLOpenGL.cpp to GraphicsContextGLOpenGLCommon.cpp.

This works towards being able to separate ANGLE and OpenGL, OpenGL ES implementations to different classes,
reducing the ifdeffing in GraphicsContextGLOpenGL.h.

No new tests, refactor.

  • platform/graphics/GraphicsContextGL.cpp:

(WebCore::GraphicsContextGL::markContextChanged):
(WebCore::GraphicsContextGL::layerComposited const):
(WebCore::GraphicsContextGL::setBuffersToAutoClear):
(WebCore::GraphicsContextGL::getBuffersToAutoClear const):
(WebCore::GraphicsContextGL::markLayerComposited):

  • platform/graphics/GraphicsContextGL.h:

(WebCore::GraphicsContextGL::Client::~Client): Deleted.

  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:

(WebCore::RemoteGraphicsContextGLProxyBase::markContextChanged):
(WebCore::RemoteGraphicsContextGLProxyBase::markLayerComposited): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::layerComposited const): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::setBuffersToAutoClear): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::getBuffersToAutoClear const): Deleted.

  • platform/graphics/RemoteGraphicsContextGLProxyBase.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::markContextChanged): Deleted.
(WebCore::GraphicsContextGLOpenGL::markLayerComposited): Deleted.
(WebCore::GraphicsContextGLOpenGL::layerComposited const): Deleted.

  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::resetBuffersToAutoClear): Deleted.
(WebCore::GraphicsContextGLOpenGL::setBuffersToAutoClear): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBuffersToAutoClear const): Deleted.
(WebCore::GraphicsContextGLOpenGL::releaseThreadResources): Deleted.
(WebCore::GraphicsContextGLOpenGL::platformReleaseThreadResources): Deleted.
(WebCore::GraphicsContextGLOpenGL::texImage2DResourceSafe): Deleted.
(WebCore::GraphicsContextGLOpenGL::setContextVisibility): Deleted.
(WebCore::GraphicsContextGLOpenGL::simulateEventForTesting): Deleted.
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay): Deleted.
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample): Deleted.
(WebCore::GraphicsContextGLOpenGL::readCompositedResults): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyTextureFromMedia): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::texImage2DResourceSafe):
(WebCore::GraphicsContextGLOpenGL::markContextChanged): Deleted.
(WebCore::GraphicsContextGLOpenGL::markLayerComposited): Deleted.
(WebCore::GraphicsContextGLOpenGL::layerComposited const): Deleted.

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::setContextVisibility):
(WebCore::GraphicsContextGLOpenGL::simulateEventForTesting):
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample):
(WebCore::GraphicsContextGLOpenGL::readCompositedResults):
(WebCore::GraphicsContextGLTextureMapper::copyTextureFromMedia):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
1:22 AM Changeset in webkit [286174] by ntim@apple.com
  • 8 edits in trunk

Update dialog focusing steps inert/disconnected handling
https://bugs.webkit.org/show_bug.cgi?id=233514

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Updated tests to reflect new behavior.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-disconnected-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-disconnected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-inert-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-inert.html:

Source/WebCore:

After discussing with Domenic Denicola, we resolved on stopping early return in case of inert <dialog>,
and disconnected <dialog> will just do nothing at the "focus the control" step.

The focus fixup rule still applies, meaning the focus is still moved to the viewport in case of modal <dialog>,
given everything else is non-focusable.

https://github.com/whatwg/html/commit/08b4033db249ea0c63fd35f4e8fa06e85ec20a6f

https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::runFocusingSteps):

12:41 AM Changeset in webkit [286173] by Carlos Garcia Campos
  • 11 edits
    1 add in trunk

[GTK][a11y] Add implementation of selection interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=233494

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::deferSelectedChildrenChangedIfNeeded):

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::selectionChanged):

  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::name const):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::selectionCount const):
(WebCore::AccessibilityObjectAtspi::selectedChild const):
(WebCore::AccessibilityObjectAtspi::setChildSelected const):
(WebCore::AccessibilityObjectAtspi::deselectSelectedChild const):
(WebCore::AccessibilityObjectAtspi::isChildSelected const):
(WebCore::AccessibilityObjectAtspi::selectAll const):
(WebCore::AccessibilityObjectAtspi::clearSelection const):
(WebCore::AccessibilityObjectAtspi::selectionChanged):

Tools:

Add tests case for selection interface and WTR implementation.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testSelectionListBox):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::selectedChildAtIndex const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::clearSelectedChildren const):

Nov 25, 2021:

11:53 PM Changeset in webkit [286172] by Said Abou-Hallawa
  • 21 edits in trunk/Source/WebCore

[GPU Process] Move FilterEffect relative absolutePaintRect calculation to FilterImage
https://bugs.webkit.org/show_bug.cgi?id=233510

Reviewed by Cameron McCormack.

drawingRegionOfInputImage() and requestedRegionOfInputPixelBuffer() will
be removed from FilterEffect and will be replaced by FilterImage::
absoluteImageRectRelativeTo(). Both of the removed function were just
getting the absolutePaintRect of a FilterEffect relative to a specified
FilterImage. Also there is o need for scaling because of clamping since
the areas of all FilterImages have to be less than MaxClampedArea.

  • platform/graphics/filters/Filter.h:

(WebCore::Filter::maxEffectRect const): Deleted.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::requestedRegionOfInputPixelBuffer const): Deleted.
(WebCore::FilterEffect::drawingRegionOfInputImage const): Deleted.

  • platform/graphics/filters/FilterEffect.h:
  • platform/graphics/filters/FilterImage.cpp:

(WebCore::FilterImage::maxEffectRect const):
(WebCore::FilterImage::absoluteImageRectRelativeTo const):

  • platform/graphics/filters/FilterImage.h:
  • platform/graphics/filters/software/FEBlendSoftwareApplier.cpp:

(WebCore::FEBlendSoftwareApplier::apply):

  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.cpp:

(WebCore::FEColorMatrixSoftwareApplier::apply):

  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.cpp:

(WebCore::FEComponentTransferSoftwareApplier::apply):

  • platform/graphics/filters/software/FECompositeSoftwareApplier.cpp:

(WebCore::FECompositeSoftwareApplier::applyArithmetic):
(WebCore::FECompositeSoftwareApplier::applyNonArithmetic):

  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.cpp:

(WebCore::FEConvolveMatrixSoftwareApplier::apply):

  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.cpp:

(WebCore::FEDisplacementMapSoftwareApplier::apply):

  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.cpp:

(WebCore::FEDropShadowSoftwareApplier::apply):

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:

(WebCore::FEGaussianBlurSoftwareApplier::apply):

  • platform/graphics/filters/software/FELightingSoftwareApplier.cpp:

(WebCore::FELightingSoftwareApplier::apply):

  • platform/graphics/filters/software/FEMergeSoftwareApplier.cpp:

(WebCore::FEMergeSoftwareApplier::apply):

  • platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp:

(WebCore::FEMorphologySoftwareApplier::apply):

  • platform/graphics/filters/software/FEOffsetSoftwareApplier.cpp:

(WebCore::FEOffsetSoftwareApplier::apply):

  • platform/graphics/filters/software/FETileSoftwareApplier.cpp:

(WebCore::FETileSoftwareApplier::apply):

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::outputRect):

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImageSoftwareApplier::apply):

9:04 PM Changeset in webkit [286171] by Jean-Yves Avenard
  • 10 edits in trunk

Avoid flattening a SharedBuffer when reading reading it through SharedBufferChunkReader.
https://bugs.webkit.org/show_bug.cgi?id=233481
rdar://problem/85733358

Source/WebCore:

Reviewed by Cameron McCormack

SharedBufferChunkReader required the SharedBuffer to be flattened which
would mutate the underlying SharedBuffer.
The peek method was also incorrect if the data read overlapped multiple
segments (it would return too many characters) and some members were used
without being initialised.

Additionally, add a similar read method in SharedBuffer that will be used
in bug 233030.

Covered in existing tests, API tests added.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::getSomeData const):
(WebCore::SharedBuffer::getSegmentForPosition const):
(WebCore::SharedBuffer::read const):

  • platform/SharedBuffer.h:
  • platform/SharedBufferChunkReader.cpp:

(WebCore::SharedBufferChunkReader::SharedBufferChunkReader):
(WebCore::SharedBufferChunkReader::nextChunk):
(WebCore::SharedBufferChunkReader::peek):

  • platform/SharedBufferChunkReader.h:

Tools:

Reviewed by Cameron McCormack.

Add API tests.
API tests original data come from the original bug that added
SharedBufferChunkReader (bug 59946) and then expanded.

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F):
(TestWebKitAPI::readAllChunks):
(TestWebKitAPI::checkChunks):
(TestWebKitAPI::checkDataInRange):

  • TestWebKitAPI/Tests/WebCore/SharedBufferTest.h:
8:15 PM Changeset in webkit [286170] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Gardening API test authentication-success flaky timeout

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
1:14 PM Changeset in webkit [286169] by Antti Koivisto
  • 10 edits in trunk

[:has() pseudo-class] Invalidation support for adding and removing nodes
https://bugs.webkit.org/show_bug.cgi?id=233489

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Add some additional cases to an existing test.

  • web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has-expected.txt:
  • web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html:

Source/WebCore:

We need to invalidate style when added or removed elements match :has() arguments.

This patch adds tag name invalidation rulesets for :has() case, along with the existing class
and attribute rulesets. It is still missing support for #id invalidation.

  • style/ChildChangeInvalidation.cpp:

(WebCore::Style::ChildChangeInvalidation::ChildChangeInvalidation):

See if we need to invalidate for the elements being removed before the mutation.

(WebCore::Style::ChildChangeInvalidation::~ChildChangeInvalidation):

See if we need to invalidate for the elements being added after the mutation.

(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):

Find the relevant invalidation rulesets for attributes, classes and tags and invalidate using them.

(WebCore::Style::needsTraversal):

We only need to do anything in the presence of :has() rules.

(WebCore::Style::needsDescendantTraversal):

Full traversal is only needed in case there are :has() rules using descendant combinator.

(WebCore::Style::ChildChangeInvalidation::traverseRemovedElements):
(WebCore::Style::ChildChangeInvalidation::traverseAddedElements):

  • style/ChildChangeInvalidation.h:
  • style/RuleFeature.cpp:

(WebCore::Style::isHasPseudoClassMatchElement):
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::Style::RuleFeatureSet::collectFeatures):

Collect tag invalidation rulesets for :has case only.

(WebCore::Style::RuleFeatureSet::add):
(WebCore::Style::RuleFeatureSet::clear):
(WebCore::Style::RuleFeatureSet::shrinkToFit):

  • style/RuleFeature.h:

(WebCore::Style::RuleFeatureSet::usesMatchElement const):
(WebCore::Style::RuleFeatureSet::setUsesMatchElement):

Keep track of what sort of match elements are being used.

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::collectFeatures const):
(WebCore::Style::ScopeRuleSets::tagInvalidationRuleSets const):

  • style/StyleScopeRuleSets.h:
7:24 AM Changeset in webkit [286168] by weinig@apple.com
  • 25 edits
    19 copies
    9 adds in trunk

[CSS Color 4] Add support for new srgb-linear, xyz-d50 and xyz-d65 colorspaces
https://bugs.webkit.org/show_bug.cgi?id=233475

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update existing color(xyz ...) tests for new d65 whitepoint and add new tests
for color(srgb-linear ...), color(xyz-d50 ...) and color(xyz-d65 ...).

  • web-platform-tests/css/css-color/predefined-016.html:
  • web-platform-tests/css/css-color/srgb-linear-001-expected.html: Added.
  • web-platform-tests/css/css-color/srgb-linear-001.html: Added.
  • web-platform-tests/css/css-color/srgb-linear-002-expected.html: Added.
  • web-platform-tests/css/css-color/srgb-linear-002.html: Added.
  • web-platform-tests/css/css-color/srgb-linear-003-expected.html: Added.
  • web-platform-tests/css/css-color/srgb-linear-003.html: Added.
  • web-platform-tests/css/css-color/srgb-linear-004-expected.html: Added.
  • web-platform-tests/css/css-color/srgb-linear-004.html: Added.
  • web-platform-tests/css/css-color/xyz-001.html:
  • web-platform-tests/css/css-color/xyz-003-expected.html:
  • web-platform-tests/css/css-color/xyz-003.html:
  • web-platform-tests/css/css-color/xyz-004-expected.html:
  • web-platform-tests/css/css-color/xyz-004.html:
  • web-platform-tests/css/css-color/xyz-005.html:
  • web-platform-tests/css/css-color/xyz-d50-001-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-001.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-002-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-002.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-003-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-003.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-004-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-004.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-005-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d50-005.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-001-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-001.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-002-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-002.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-003-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-003.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-004-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-004.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-005-expected.html: Added.
  • web-platform-tests/css/css-color/xyz-d65-005.html: Added.

Source/WebCore:

Updates existing tests to add cases for the new colorspaces.

  • Adds support for color(srgb-linear ...), color(xyz-d50 ...) and color(xyz-d65 ...)
  • Updates color(xyz ...) to be an alias of color(xyz-d65 ...), which is a breaking change both because previously it used the d50 white point and because we now serialize it as color(xyz-d65 ...). We think this is acceptable as we just shipped the feature and no other browsers yet support it.
  • Adds support for color-mix(in xyz-d50, ...) and color-mix(in xyz-d65, ...).
  • Updates color-mix(in xyz, ...) to use the d65 white point (like above). We have not shipped color-mix enabled, so this should even less controvertial.
  • css/CSSValueKeywords.in:

Add new keywords.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::consumeColorMixColorSpaceAndComma):
(WebCore::CSSPropertyParserHelpers::mixColorComponents):
Add/update parsing support for new/updated colorspaces. parseColorFunctionForXYZTypes
is now templatized like parseColorFunctionForRGBTypes to allow reusing it for each
of the XYZ types.

  • platform/graphics/ColorSpace.h:

(WebCore::callWithColorType):

  • platform/graphics/ColorSpace.cpp:

(WebCore::operator<<):

  • platform/graphics/ColorConversion.cpp:

(WebCore::converColorComponents):
Add new "named" colorspace, XYZ_D65, so that color(xyz-d65 ...) can be piped through
and serialized correctly. We already had a name for srgb-linear (though it was not
possible to create it from css previously) so no new name was needed for it.

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
Add serialization specialization for xyz-d50/xyz-d65 and update name of LinearSRGBA
to "srgb-linear" to match the now defined name in css.

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::xyzD50ColorSpaceRef):
(WebCore::colorSpaceForCGColorSpace):
(WebCore::xyzColorSpaceRef): Deleted.

  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::cachedNullableCGColorSpace):
Updates xyzColorSpaceRef() function to be named xyzD50ColorSpaceRef() to more accurately
state what it is. It is not yet clear how or if an xyz-d65 colorspace can be created in
CoreGraphics, so we return nullptr when requested. This does not change any rendered values
as we can convert to extended-srgb in that case (as we do with lab and lch) without any loss.

LayoutTests:

Update tests for new srgb-linear, xyz-d50 and xyz-d65 colorspaces

  • fast/css/parsing-color-function-expected.txt:
  • fast/css/parsing-color-function.html:
  • fast/css/parsing-color-mix-expected.txt:
  • fast/css/parsing-color-mix.html:
  • fast/css/parsing-relative-color-syntax-expected.txt:
  • fast/css/parsing-relative-color-syntax.html:
5:22 AM Changeset in webkit [286167] by commit-queue@webkit.org
  • 17 edits
    3 moves
    2 adds
    1 delete in trunk

GraphicsContextGL implementations should have separate class definitions
https://bugs.webkit.org/show_bug.cgi?id=233491

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-25
Reviewed by Antti Koivisto.

Source/WebCore:

Add new concrete classes GraphicsContextGLCocoa and
GraphicsContextGLTextureMapper.
In the future, the platform-specific functionality can be moved
to these classes, reducing the GraphicsContextGLOpenGL #ifdefs.

No new tests, a refactor.

  • Modules/webxr/WebXROpaqueFramebuffer.cpp:

(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::endFrame):

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/TextureMapper.cmake:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.h: Added.
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: Renamed from Source/WebCore/platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm.

(WebCore::GraphicsContextGLCocoa::create):
(WebCore::GraphicsContextGLCocoa::displayBuffer):
(WebCore::GraphicsContextGLCocoa::markDisplayBufferInUse):
(WebCore::GraphicsContextGLCocoa::GraphicsContextGLCocoa):
(WebCore::GraphicsContextGLCocoa::isValid const):
(WebCore::GraphicsContextGLCocoa::createPbufferAndAttachIOSurface):
(WebCore::GraphicsContextGLCocoa::destroyPbufferAndDetachIOSurface):
(WebCore::GraphicsContextGLCocoa::attachIOSurfaceToSharedTexture):
(WebCore::GraphicsContextGLCocoa::detachIOSurfaceFromSharedTexture):

  • platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm: Renamed from Source/WebCore/platform/graphics/cocoa/WebProcessGraphicsContextGLOpenGLCocoa.mm.

(WebCore::GraphicsContextGLOpenGL::create):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::isValid const): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLTextureMapper::create):
(WebCore::GraphicsContextGLTextureMapper::GraphicsContextGLTextureMapper):
(WebCore::GraphicsContextGLOpenGL::create):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.h: Added.

Source/WebKit:

Use the new concrete classes GraphicsContextGLCocoa and
GraphicsContextGLTextureMapper in GPUP WebGL implemetation.

Remove GPUProcessGraphicsContextGL as the added functionality is
now in the GraphicsContextGLCocoa.

  • GPUProcess/graphics/GPUProcessGraphicsContextGL.h: Removed.
  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):

  • GPUProcess/graphics/RemoteGraphicsContextGLWin.cpp:

(WebKit::RemoteGraphicsContextGLWin::platformWorkQueueInitialize):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Adjust TestGraphicsContextGLOpenGLCocoa to
TestGraphicsContextGLCocoa after GraphicsContextGLOpenGL
Cocoa variant rename to GraphicsContextGLCocoa.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLOpenGLCocoa.mm.

(TestWebKitAPI::createDefaultTestContext):
(TestWebKitAPI::changeContextContents):
(TestWebKitAPI::TEST_F):

4:34 AM Changeset in webkit [286166] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][WPE] Use WPE_SHELL_MEDIA_DISK_CACHE_PATH env var to customize media disk cache path
https://bugs.webkit.org/show_bug.cgi?id=233477

Reviewed by Xabier Rodriguez-Calvar.

"/var/tmp" isn't always the best place to store the media download cache generated by GstDownloadBuffer
on embedded platforms. Each of those downloads can hold up to a whole movie (Gigabytes) and "/var/tmp"
is sometimes a memory based tmpfs. Some way to control the cache path is needed.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Honor environment variable.
4:02 AM Changeset in webkit [286165] by eocanha@igalia.com
  • 5 edits in trunk/LayoutTests

[GTK] Layout Test http/tests/media/video-play-waiting.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=142489

Reviewed by Philippe Normand.

The test was failing with a timeout even after properly calling TestRunner.notifyDone()
internally because there was still an injectedBundle.topLoadingFrame() in InjectedBundlePage,
which means that the web page hadn't completely finished to be downloaded. This was caused
by the stalled video download that the test wants to exercise.

The solution is to set the video src to empty in order to convince TestRunner that the page
has finished downloading.

  • http/tests/media/video-play-waiting.html: Set the video src to empty.
  • platform/mac/TestExpectations: The test now just fails (for reasons unrelated to this fix) on mac instead of timing out.
  • platform/glib/TestExpectations: Unskipped test.
  • platform/win/TestExpectations: Unskipped test.
3:44 AM Changeset in webkit [286164] by Said Abou-Hallawa
  • 67 edits
    1 copy in trunk/Source/WebCore

[GPU Process] Make FilterEffect appliers take FilterImages in their apply() methods
https://bugs.webkit.org/show_bug.cgi?id=233487

Reviewed by Cameron McCormack.

Eventually the FilterImage will be removed from FilterEffect. So this is
a step towards making the FilterEffect hold the effect data only. To do
his change, FilterImage needs to hold two new members: primitiveSubregion
and isAlphaImage.

FilterEffect::setIsAlphaImage() is not needed and isAlphaImage() will be
a virtual function but it will be renamed resultIsAlphaImage(). The result
of this function will be stored in the result FilterImage.

FEGaussianBlurSoftwareApplier::apply() is the only user of isAlphaImage.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::resultIsAlphaImage const):
(WebCore::FEColorMatrix::platformApplySoftware):

  • platform/graphics/filters/FEColorMatrix.h:
  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::platformApplySoftware):

  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::platformApplySoftware):

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):

  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFlood::platformApplySoftware):

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::resultIsAlphaImage const):
(WebCore::FEGaussianBlur::platformApplySoftware):

  • platform/graphics/filters/FEGaussianBlur.h:
  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::platformApplySoftware):

  • platform/graphics/filters/FEMerge.cpp:

(WebCore::FEMerge::platformApplySoftware):

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::resultIsAlphaImage const):
(WebCore::FEMorphology::platformApplySoftware):

  • platform/graphics/filters/FEMorphology.h:
  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::resultIsAlphaImage const):
(WebCore::FEOffset::platformApplySoftware):

  • platform/graphics/filters/FEOffset.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::resultIsAlphaImage const):
(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/FETile.h:
  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::platformApplySoftware):

  • platform/graphics/filters/Filter.h:

(WebCore::Filter::maxEffectRect const):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::inputFilterImages const):
(WebCore::FilterEffect::externalRepresentation const):
(WebCore::FilterEffect::createResult): Deleted.
(WebCore::FilterEffect::imageBufferResult): Deleted.
(WebCore::FilterEffect::pixelBufferResult): Deleted.
(WebCore::FilterEffect::getPixelBufferResult): Deleted.
(WebCore::FilterEffect::copyPixelBufferResult const): Deleted.

  • platform/graphics/filters/FilterEffect.h:

(WebCore::FilterEffect::filterImage const):
(WebCore::FilterEffect::resultIsAlphaImage const):
(WebCore::FilterEffect::isAlphaImage const): Deleted.
(WebCore::FilterEffect::setIsAlphaImage): Deleted.
(WebCore::FilterEffect::normalizedFloats): Deleted.

  • platform/graphics/filters/FilterEffectApplier.h:
  • platform/graphics/filters/FilterImage.cpp:

(WebCore::FilterImage::create):
(WebCore::FilterImage::FilterImage):

  • platform/graphics/filters/FilterImage.h:

(WebCore::FilterImage::primitiveSubregion const):
(WebCore::FilterImage::isAlphaImage const):

  • platform/graphics/filters/FilterImageVector.h: Copied from Source/WebCore/platform/graphics/filters/FilterEffectApplier.h.
  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::platformApplySoftware):

  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::platformApplySoftware):

  • platform/graphics/filters/software/FEBlendSoftwareApplier.cpp:

(WebCore::FEBlendSoftwareApplier::apply):

  • platform/graphics/filters/software/FEBlendSoftwareApplier.h:
  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.cpp:

(WebCore::FEColorMatrixSoftwareApplier::apply):

  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.h:
  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.cpp:

(WebCore::FEComponentTransferSoftwareApplier::apply):

  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h:
  • platform/graphics/filters/software/FECompositeSoftwareApplier.cpp:

(WebCore::FECompositeSoftwareApplier::applyArithmetic):
(WebCore::FECompositeSoftwareApplier::applyNonArithmetic):
(WebCore::FECompositeSoftwareApplier::apply):

  • platform/graphics/filters/software/FECompositeSoftwareApplier.h:
  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.cpp:

(WebCore::FEConvolveMatrixSoftwareApplier::apply):

  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h:
  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.cpp:

(WebCore::FEDisplacementMapSoftwareApplier::apply):

  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.h:
  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.cpp:

(WebCore::FEDropShadowSoftwareApplier::apply):

  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.h:
  • platform/graphics/filters/software/FEFloodSoftwareApplier.cpp:

(WebCore::FEFloodSoftwareApplier::apply):

  • platform/graphics/filters/software/FEFloodSoftwareApplier.h:
  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:

(WebCore::FEGaussianBlurSoftwareApplier::apply):

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h:
  • platform/graphics/filters/software/FELightingSoftwareApplier.cpp:

(WebCore::FELightingSoftwareApplier::apply):

  • platform/graphics/filters/software/FELightingSoftwareApplier.h:
  • platform/graphics/filters/software/FEMergeSoftwareApplier.cpp:

(WebCore::FEMergeSoftwareApplier::apply):

  • platform/graphics/filters/software/FEMergeSoftwareApplier.h:
  • platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp:

(WebCore::FEMorphologySoftwareApplier::apply):

  • platform/graphics/filters/software/FEMorphologySoftwareApplier.h:
  • platform/graphics/filters/software/FEOffsetSoftwareApplier.cpp:

(WebCore::FEOffsetSoftwareApplier::apply):

  • platform/graphics/filters/software/FEOffsetSoftwareApplier.h:
  • platform/graphics/filters/software/FETileSoftwareApplier.cpp:

(WebCore::FETileSoftwareApplier::apply):

  • platform/graphics/filters/software/FETileSoftwareApplier.h:
  • platform/graphics/filters/software/FETurbulenceSoftwareApplier.cpp:

(WebCore::FETurbulenceSoftwareApplier::apply):

  • platform/graphics/filters/software/FETurbulenceSoftwareApplier.h:
  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.cpp:

(WebCore::SourceAlphaSoftwareApplier::apply):

  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.h:
  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.cpp:

(WebCore::SourceGraphicSoftwareApplier::apply):

  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.h:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::output):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::postApplyResource):

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImageSoftwareApplier::apply):
(WebCore::FEImage::platformApplySoftware):

1:58 AM Changeset in webkit [286163] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.35.1

WebKitGTK 2.35.1

1:57 AM Changeset in webkit [286162] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.35.1 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.35.1.
1:27 AM Changeset in webkit [286161] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix GTK distcheck build

Remove platform specific file from cross-platform makefile.

  • CMakeLists.txt: Add WebCoreTestSupport_PRIVATE_HEADERS and use it in WEBKIT_COPY_FILES.
  • PlatformMac.cmake: Append testing/cocoa/WebArchiveDumpSupport.h to WebCoreTestSupport_PRIVATE_HEADERS.
1:17 AM Changeset in webkit [286160] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

ANGLE Metal: The memory backing IOSurfaces of former client buffer pbuffers is leaked
https://bugs.webkit.org/show_bug.cgi?id=233328
<rdar://problem/85563187>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-25
Reviewed by Antti Koivisto.

Source/WebCore:

Fix a bug where recycling GraphicsContextGLOpenGL display buffers would
leak the spare buffer pbuffer handle. This would happen if the
display buffer was marked as "in use", so that the IOSurface reference
would be dropped immediately in order to not use it as next drawing buffer.
However, the IOSurface is still bound in ANGLE and as such, the pbuffer handle
must be returned during GraphicsContextGLIOSurfaceSwapChain::recycleBuffer`
call.

Adds API tests for testing the leak.

  • platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.cpp:

(WebCore::GraphicsContextGLIOSurfaceSwapChain::recycleBuffer):
(WebCore::GraphicsContextGLIOSurfaceSwapChain::present):

Source/WebCore/PAL:

Add prototype for IOSurfaceIncrementUseCount.
Currently used for a test, in simulating CA behavior.

  • pal/spi/cocoa/IOSurfaceSPI.h:

Tools:

Add tests testing Cocoa GraphicsContextGLOpenGL drawing buffer
recycling behavior.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/Sources.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp:

(TestWebKitAPI::imageBufferPixelIs):
(TestWebKitAPI::memoryFootprintChangedBy): Deleted.

  • TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLOpenGLCocoa.mm:

(TestWebKitAPI::createDefaultTestContext):
(TestWebKitAPI::changeContextContents):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/TestUtilities.h: Added.
  • TestWebKitAPI/TestUtilities.cpp: Added.

Add few useful functions to TestUtilities.h so that different
tests can use them.

Nov 24, 2021:

10:59 PM Changeset in webkit [286159] by ntim@apple.com
  • 2 edits
    4 adds in trunk/LayoutTests/imported/w3c

Re-import html/semantics/interactive-elements/the-dialog-element WPT
https://bugs.webkit.org/show_bug.cgi?id=233482

Reviewed by Cameron McCormack.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/71c864f8bd7f855f12c81bfc7a1fc3ebf18657f3

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-delegatesfocus-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-delegatesfocus.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
10:41 PM Changeset in webkit [286158] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] Unreviewed, speculative libpas Linux fix, libpas requires libatomic in Linux etc., part 2

  • CMakeLists.txt:
10:36 PM Changeset in webkit [286157] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] Unreviewed, libpas requires libatomic in Linux etc.

  • CMakeLists.txt:
5:39 PM Changeset in webkit [286156] by ddkilzer@apple.com
  • 10 edits in trunk/Source

Compiler should be able to check localized format strings for consistency
<https://webkit.org/b/232686>
<rdar://problem/84994345>

Reviewed by Darin Adler.

Source/WebCore:

The primary goal of this patch is to allow the compiler to check
format strings to ensure that the correct number and type of
arguments and placeholders are used. The epiphany to make this
possible was that Apple platforms may use CFStringRef objects or
const char* C-strings to accomplish this with CoreFoundation
macros. Non-Apple platforms continue to use const char* for
format strings to allow the compiler to check format strings.

To this end localized strings passed to formatLocalizedString()
must use a WEB_UI_FORMAT_*() macro on all platforms. Failure to
do so will result in a compiler error, though, since non-FORMAT
macros return a WTF::String.

This patch also eliminates autoreleased NSString objects except
when using WEB_UI_NSSTRING()/localizedNSString() directly (the
return value is always autoreleased), and it removes the need to
convert from CF/NSString -> WTF::String -> CF/NSString for
localized format strings.

  • Scripts/extract-localizable-strings.pl:

(isFormatMacro): Add.

  • Add support for parsing the following new macros with variadic parameter lists: o WEB_UI_FORMAT_STRING [cross-platform] o WEB_UI_FORMAT_CFSTRING o WEB_UI_FORMAT_CFSTRING_KEY
  • platform/LocalizedStrings.cpp:

(WebCore::formatLocalizedString):

  • Implement using CFStringRef format for Apple platforms, but const char* format for other platforms.
  • Use of these types allows format checking macros to be added to declarations in LocalizedStrings.h.

(WebCore::webCoreBundle): Add.

  • Extract code for getting a CFBundleRef for WebCore.framework into a function that's similar to webKitBundle() on Windows.

(WebCore::copyLocalizedString): Add.

  • This method was converted from localizedNSString() in LocalizedStringsCocoa.mm and from localizedString() in LocalizedStringsWin.cpp.

(WebCore::localizedString(CFStringRef)): Add.

  • Avoids runtime creation of CFStringRef on non-Windows platforms.

(WebCore::localizedString(const char*)):

  • Code for USE(CF) was converted from the same method in LocalizedStringsCocoa.mm, but only used on Windows port.

(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagTranslate):
(WebCore::multipleFileUploadText):
(WebCore::imageTitle):
(WebCore::localizedMediaTimeDescription):
(WebCore::validationMessageTooShortText):
(WebCore::validationMessageTooLongText):
(WebCore::validationMessageRangeUnderflowText):
(WebCore::validationMessageRangeOverflowText):
(WebCore::addTrackLabelAsSuffix):
(WebCore::addTextTrackKindClosedCaptionsSuffix):
(WebCore::addTextTrackKindCaptionsSuffix):
(WebCore::addTextTrackKindDescriptionsSuffix):
(WebCore::addTextTrackKindChaptersSuffix):
(WebCore::addTextTrackKindMetadataSuffix):
(WebCore::addTextTrackKindSDHSuffix):
(WebCore::addTextTrackKindEasyReaderSuffix):
(WebCore::addTextTrackKindForcedSuffix):
(WebCore::addAudioTrackKindDescriptionsSuffix):
(WebCore::addAudioTrackKindCommentarySuffix):
(WebCore::webCryptoMasterKeyKeychainLabel):
(WebCore::makeCredentialTouchIDPromptTitle):
(WebCore::getAssertionTouchIDPromptTitle):

  • Use WEB_UI_FORMAT_STRING() for cross-platform UI format strings, and use WEB_UI_FORMAT_CFSTRING[_KEY]() for Apple platform UI format strings.
  • Make formatLocalizedString() an implementation detail of WEB_UI_FORMAT_[CF]STRING() macros.
  • platform/LocalizedStrings.h:

(WEB_UI_STRING): Add.
(WEB_UI_STRING_KEY): Add.
(WEB_UI_STRING_WITH_MNEMONIC): Add.
(WEB_UI_CFSTRING): Add.
(WEB_UI_CFSTRING_KEY): Add.

  • Add USE(CF)-specific macros to avoid CFStringRef allocations at runtime. The Apple Windows port can not use these because it uses a default encoding of Mac Roman for CFSTR().

(WEB_UI_FORMAT_STRING): Add.

  • Cross-platform macro for UI format strings.
  • Note that non-USE(CF) macros essentially do nothing since localizedString() just converts const char* to WTF::String (which was previously converted back to const char*), and formatLocalizedString() now takes a const char*.

(WEB_UI_FORMAT_CFSTRING): Add.
(WEB_UI_FORMAT_CFSTRING_KEY): Add.

  • These macros are used as format string arguments to formatLocalizedString().

(WebCore::localizedFormatString): Add.

  • Declare a new function for USE(CF) that is passed to formatLocalizedString().

(WebCore::localizedString(CFStringRef)): Add.

  • Declare a new function for USE(CF) that takes a CFStringRef argument.

(WebCore::formatLocalizedString):

  • Change to use CFStringRef format for USE(CF) platforms (except Windows), and const char* format for other platforms so format macros may be added to the delaration.

(WebCore::localizedNSString):

  • Re-implement as an inline function using localizedString().
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::localizedNSString): Delete.

  • Moved to LocalizedStrings.h.

(WebCore::localizedString): Delete.

  • Moved to LocalizedStrings.cpp.

(WebCore::contextMenuItemTagSearchWeb):
(WebCore::keygenKeychainItemName):
(WebCore::htmlSelectMultipleItems):

  • Switch from WEB_UI_STRING() to WEB_UI_FORMAT_CFSTRING() due to the new rule for localized format strings.

(WebCore::validationMessageTooLongText):

  • Switch from +[NSString stringWithFormat:] and WEB_UI_NSSTRING() to WebCore::formatLocalizedString() and WEB_UI_FORMAT_CFSTRING() for consistency.
  • platform/win/LocalizedStringsWin.cpp:

(WebCore::localizedString): Delete.

  • Moved to localizedString() in LocalizedStrings.cpp.

Source/WebCore/platform/gtk/po:

  • CMakeLists.txt:

(add_custom_command: xgettext):

  • Add WEB_UI_FORMAT_STRING to list of macros containing localizable strings.

Source/WebKitLegacy/mac:

  • Misc/WebLocalizableStringsInternal.mm:

(WebLocalizedStringInternal):

  • Use localizedNSString() instead of localizedString() to eliminate the need to convert from CFString -> String -> NSString.
4:32 PM Changeset in webkit [286155] by commit-queue@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

MacroAssembler: remove unused load/store methods for addresses with patchable offsets
https://bugs.webkit.org/show_bug.cgi?id=233251

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-11-24
Reviewed by Yusuke Suzuki.

Remove MacroAssembler methods for load and store operations on addresses
with patchable offset values as they're not used in any place anymore.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::loadPtrWithAddressOffsetPatch): Deleted.
(JSC::MacroAssembler::loadPtrWithCompactAddressOffsetPatch): Deleted.
(JSC::MacroAssembler::storePtrWithAddressOffsetPatch): Deleted.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load32WithAddressOffsetPatch): Deleted.
(JSC::MacroAssemblerARM64::load32WithCompactAddressOffsetPatch): Deleted.
(JSC::MacroAssemblerARM64::store32WithAddressOffsetPatch): Deleted.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::load32WithAddressOffsetPatch): Deleted.
(JSC::MacroAssemblerARMv7::load32WithCompactAddressOffsetPatch): Deleted.
(JSC::MacroAssemblerARMv7::store32WithAddressOffsetPatch): Deleted.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::load32WithAddressOffsetPatch): Deleted.
(JSC::MacroAssemblerMIPS::load32WithCompactAddressOffsetPatch): Deleted.
(JSC::MacroAssemblerMIPS::store32WithAddressOffsetPatch): Deleted.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::load32WithAddressOffsetPatch): Deleted.
(JSC::MacroAssemblerX86Common::load32WithCompactAddressOffsetPatch): Deleted.
(JSC::MacroAssemblerX86Common::store32WithAddressOffsetPatch): Deleted.

3:50 PM Changeset in webkit [286154] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Fix floating-point register listings in FPRInfo.h
https://bugs.webkit.org/show_bug.cgi?id=233243

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-11-24
Reviewed by Yusuke Suzuki.

As with general-purpose registers, fpRegT0 to fpRegT7 assignments have
to match the argument registers. Index-to-FPRReg mapping functions are
updated accordingly.

  • jit/FPRInfo.h:

(JSC::FPRInfo::toRegister):
(JSC::FPRInfo::toIndex):

2:36 PM Changeset in webkit [286153] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Skip new stress test get-array-length-reuse.js if memory-limited
https://bugs.webkit.org/show_bug.cgi?id=233299
rdar://85502079

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-11-24
Reviewed by Yusuke Suzuki.

  • stress/get-array-length-reuse.js:
11:41 AM Changeset in webkit [286152] by Said Abou-Hallawa
  • 50 edits
    28 copies
    7 adds in trunk/Source/WebCore

[GPU Process] Move the software FilterEffectAppliers to separate files
https://bugs.webkit.org/show_bug.cgi?id=232833
rdar://85424225

Reviewed by Simon Fraser.

This patch moves the the software FilterEffectAppliers to separate source
and header files. There is no change in the appliers code.

But EdgeModeType and MorphologyOperatorType have to changed to be enum
classes so they can be forwarded declared in the appliers' header files.

  • CMakeLists.txt:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlendSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEBlend.h:
  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrixSoftwareApplier::FEColorMatrixSoftwareApplier): Deleted.
(WebCore::FEColorMatrixSoftwareApplier::matrix const): Deleted.
(WebCore::FEColorMatrixSoftwareApplier::saturateAndHueRotate const): Deleted.
(WebCore::FEColorMatrixSoftwareApplier::luminance const): Deleted.
(WebCore::FEColorMatrixSoftwareApplier::applyPlatformAccelerated const): Deleted.
(WebCore::FEColorMatrixSoftwareApplier::applyPlatformUnaccelerated const): Deleted.
(WebCore::FEColorMatrixSoftwareApplier::applyPlatform const): Deleted.
(WebCore::FEColorMatrixSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEColorMatrix.h:
  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransferSoftwareApplier::computeIdentityTable): Deleted.
(WebCore::FEComponentTransferSoftwareApplier::computeTabularTable): Deleted.
(WebCore::FEComponentTransferSoftwareApplier::computeDiscreteTable): Deleted.
(WebCore::FEComponentTransferSoftwareApplier::computeLinearTable): Deleted.
(WebCore::FEComponentTransferSoftwareApplier::computeGammaTable): Deleted.
(WebCore::FEComponentTransferSoftwareApplier::computeLookupTable): Deleted.
(WebCore::FEComponentTransferSoftwareApplier::applyPlatform const): Deleted.
(WebCore::FEComponentTransferSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEComponentTransfer.h:
  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FECompositeSoftwareApplier::clampByte): Deleted.
(WebCore::FECompositeSoftwareApplier::computeArithmeticPixels): Deleted.
(WebCore::FECompositeSoftwareApplier::computeArithmeticPixelsUnclamped): Deleted.
(WebCore::FECompositeSoftwareApplier::applyPlatformArithmetic): Deleted.
(WebCore::FECompositeSoftwareApplier::applyArithmetic): Deleted.
(WebCore::FECompositeSoftwareApplier::applyNonArithmetic): Deleted.
(WebCore::FECompositeSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEComposite.h:
  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::operator<<):
(WebCore::FEConvolveMatrixSoftwareApplier::clampRGBAValue): Deleted.
(WebCore::FEConvolveMatrixSoftwareApplier::setDestinationPixels): Deleted.
(WebCore::FEConvolveMatrixSoftwareApplier::getPixelValue): Deleted.
(WebCore::FEConvolveMatrixSoftwareApplier::setInteriorPixels): Deleted.
(WebCore::FEConvolveMatrixSoftwareApplier::setOuterPixels): Deleted.
(WebCore::FEConvolveMatrixSoftwareApplier::applyPlatform const): Deleted.
(WebCore::FEConvolveMatrixSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEConvolveMatrix.h:
  • platform/graphics/filters/FEDiffuseLighting.cpp:
  • platform/graphics/filters/FEDiffuseLighting.h:
  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMapSoftwareApplier::byteOffsetOfPixel): Deleted.
(WebCore::FEDisplacementMapSoftwareApplier::xChannelIndex const): Deleted.
(WebCore::FEDisplacementMapSoftwareApplier::yChannelIndex const): Deleted.
(WebCore::FEDisplacementMapSoftwareApplier::FEDisplacementMapSoftwareApplier): Deleted.
(WebCore::FEDisplacementMapSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadowSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEDropShadow.h:
  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFloodSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEFlood.h:
  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::determineAbsolutePaintRect):
(WebCore::FEGaussianBlurSoftwareApplier::kernelPosition): Deleted.
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurAlphaOnly): Deleted.
(WebCore::FEGaussianBlurSoftwareApplier::boxBlur): Deleted.
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurAccelerated): Deleted.
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurUnaccelerated): Deleted.
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurGeneric): Deleted.
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurWorker): Deleted.
(WebCore::FEGaussianBlurSoftwareApplier::applyPlatform): Deleted.
(WebCore::FEGaussianBlurSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEGaussianBlur.h:
  • platform/graphics/filters/FELighting.cpp:

(): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::topLeft const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::left const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottomLeft const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::top const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::center const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottom const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTop): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setCenter): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottom): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTopRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottomRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::shiftRow): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::shift): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::topLeftNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::topRowNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::topRightNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::leftColumnNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::interiorNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::rightColumnNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::bottomLeftNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::bottomRowNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::LightingData::bottomRightNormal const): Deleted.
(WebCore::FELightingSoftwareApplier::setPixelInternal): Deleted.
(WebCore::FELightingSoftwareApplier::setPixel): Deleted.
(WebCore::FELightingSoftwareApplier::applyPlatformGenericPaint): Deleted.
(WebCore::FELightingSoftwareApplier::applyPlatformGenericWorker): Deleted.
(WebCore::FELightingSoftwareApplier::applyPlatformGeneric): Deleted.
(WebCore::FELightingSoftwareApplier::applyPlatform): Deleted.
(WebCore::FELightingSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FEMerge.cpp:

(WebCore::FEMergeSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEMerge.h:
  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::operator<<):
(WebCore::FEMorphologySoftwareApplier::pixelArrayIndex): Deleted.
(WebCore::FEMorphologySoftwareApplier::makePixelValueFromColorComponents): Deleted.
(WebCore::FEMorphologySoftwareApplier::makeColorComponentsfromPixelValue): Deleted.
(WebCore::FEMorphologySoftwareApplier::minOrMax): Deleted.
(WebCore::FEMorphologySoftwareApplier::columnExtremum): Deleted.
(WebCore::FEMorphologySoftwareApplier::kernelExtremum): Deleted.
(WebCore::FEMorphologySoftwareApplier::applyPlatformGeneric): Deleted.
(WebCore::FEMorphologySoftwareApplier::applyPlatformWorker): Deleted.
(WebCore::FEMorphologySoftwareApplier::applyPlatform): Deleted.
(WebCore::FEMorphologySoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEMorphology.h:

(): Deleted.

  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffsetSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FEOffset.h:
  • platform/graphics/filters/FESpecularLighting.cpp:
  • platform/graphics/filters/FESpecularLighting.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETileSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FETile.h:
  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::setStitchTiles):
(WebCore::FETurbulenceSoftwareApplier::PaintingData::random): Deleted.
(): Deleted.
(WebCore::FETurbulenceSoftwareApplier::smoothCurve): Deleted.
(WebCore::FETurbulenceSoftwareApplier::linearInterpolation): Deleted.
(WebCore::FETurbulenceSoftwareApplier::initPaintingData): Deleted.
(WebCore::FETurbulenceSoftwareApplier::computeStitching): Deleted.
(WebCore::FETurbulenceSoftwareApplier::noise2D): Deleted.
(WebCore::FETurbulenceSoftwareApplier::toIntBasedColorComponents): Deleted.
(WebCore::FETurbulenceSoftwareApplier::calculateTurbulenceValueForPoint): Deleted.
(WebCore::FETurbulenceSoftwareApplier::applyPlatformGeneric): Deleted.
(WebCore::FETurbulenceSoftwareApplier::applyPlatformWorker): Deleted.
(WebCore::FETurbulenceSoftwareApplier::applyPlatform): Deleted.
(WebCore::FETurbulenceSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/FETurbulence.h:
  • platform/graphics/filters/FilterEffectApplier.h:
  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlphaSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/SourceAlpha.h:
  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphicSoftwareApplier::apply): Deleted.

  • platform/graphics/filters/SourceGraphic.h:
  • platform/graphics/filters/software/FEBlendSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEBlend.cpp.

(WebCore::FEBlendSoftwareApplier::apply):

  • platform/graphics/filters/software/FEBlendSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEMerge.h.
  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp.

(WebCore::FEColorMatrixSoftwareApplier::FEColorMatrixSoftwareApplier):
(WebCore::FEColorMatrixSoftwareApplier::matrix const):
(WebCore::FEColorMatrixSoftwareApplier::saturateAndHueRotate const):
(WebCore::FEColorMatrixSoftwareApplier::luminance const):
(WebCore::FEColorMatrixSoftwareApplier::applyPlatformAccelerated const):
(WebCore::FEColorMatrixSoftwareApplier::applyPlatformUnaccelerated const):
(WebCore::FEColorMatrixSoftwareApplier::applyPlatform const):
(WebCore::FEColorMatrixSoftwareApplier::apply):

  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEOffset.h.
  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp.

(WebCore::FEComponentTransferSoftwareApplier::computeIdentityTable):
(WebCore::FEComponentTransferSoftwareApplier::computeTabularTable):
(WebCore::FEComponentTransferSoftwareApplier::computeDiscreteTable):
(WebCore::FEComponentTransferSoftwareApplier::computeLinearTable):
(WebCore::FEComponentTransferSoftwareApplier::computeGammaTable):
(WebCore::FEComponentTransferSoftwareApplier::computeLookupTable):
(WebCore::FEComponentTransferSoftwareApplier::applyPlatform const):
(WebCore::FEComponentTransferSoftwareApplier::apply):

  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEOffset.h.
  • platform/graphics/filters/software/FECompositeSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEComposite.cpp.

(WebCore::FECompositeSoftwareApplier::clampByte):
(WebCore::FECompositeSoftwareApplier::computeArithmeticPixels):
(WebCore::FECompositeSoftwareApplier::computeArithmeticPixelsUnclamped):
(WebCore::FECompositeSoftwareApplier::applyPlatformArithmetic):
(WebCore::FECompositeSoftwareApplier::applyArithmetic):
(WebCore::FECompositeSoftwareApplier::applyNonArithmetic):
(WebCore::FECompositeSoftwareApplier::apply):

  • platform/graphics/filters/software/FECompositeSoftwareApplier.h: Added.
  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp.

(WebCore::FEConvolveMatrixSoftwareApplier::clampRGBAValue):
(WebCore::FEConvolveMatrixSoftwareApplier::setDestinationPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::getPixelValue):
(WebCore::FEConvolveMatrixSoftwareApplier::setInteriorPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::setOuterPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::applyPlatform const):
(WebCore::FEConvolveMatrixSoftwareApplier::apply):

  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h: Added.
  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp.

(WebCore::FEDisplacementMapSoftwareApplier::FEDisplacementMapSoftwareApplier):
(WebCore::FEDisplacementMapSoftwareApplier::xChannelIndex const):
(WebCore::FEDisplacementMapSoftwareApplier::yChannelIndex const):
(WebCore::FEDisplacementMapSoftwareApplier::apply):

  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEOffset.h.

(WebCore::FEDisplacementMapSoftwareApplier::byteOffsetOfPixel):

  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEDropShadow.cpp.

(WebCore::FEDropShadowSoftwareApplier::apply):

  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEMerge.h.
  • platform/graphics/filters/software/FEFloodSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEMerge.h.

(WebCore::FEFloodSoftwareApplier::apply):

  • platform/graphics/filters/software/FEFloodSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEMerge.h.
  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp.

(WebCore::FEGaussianBlurSoftwareApplier::kernelPosition):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurAlphaOnly):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlur):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurAccelerated):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurUnaccelerated):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurGeneric):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurWorker):
(WebCore::FEGaussianBlurSoftwareApplier::applyPlatform):
(WebCore::FEGaussianBlurSoftwareApplier::apply):

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h: Added.
  • platform/graphics/filters/software/FELightingSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FELighting.cpp.

(WebCore::FELightingSoftwareApplier::LightingData::topLeftNormal const):
(WebCore::FELightingSoftwareApplier::LightingData::topRowNormal const):
(WebCore::FELightingSoftwareApplier::LightingData::topRightNormal const):
(WebCore::FELightingSoftwareApplier::LightingData::leftColumnNormal const):
(WebCore::FELightingSoftwareApplier::LightingData::interiorNormal const):
(WebCore::FELightingSoftwareApplier::LightingData::rightColumnNormal const):
(WebCore::FELightingSoftwareApplier::LightingData::bottomLeftNormal const):
(WebCore::FELightingSoftwareApplier::LightingData::bottomRowNormal const):
(WebCore::FELightingSoftwareApplier::LightingData::bottomRightNormal const):
(WebCore::FELightingSoftwareApplier::setPixelInternal):
(WebCore::FELightingSoftwareApplier::setPixel):
(WebCore::FELightingSoftwareApplier::applyPlatformGenericPaint):
(WebCore::FELightingSoftwareApplier::applyPlatformGenericWorker):
(WebCore::FELightingSoftwareApplier::applyPlatformGeneric):
(WebCore::FELightingSoftwareApplier::applyPlatform):
(WebCore::FELightingSoftwareApplier::apply):

  • platform/graphics/filters/software/FELightingSoftwareApplier.h: Added.

(WebCore::FELightingSoftwareApplier::AlphaWindow::topLeft const):
(WebCore::FELightingSoftwareApplier::AlphaWindow::left const):
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottomLeft const):
(WebCore::FELightingSoftwareApplier::AlphaWindow::top const):
(WebCore::FELightingSoftwareApplier::AlphaWindow::center const):
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottom const):
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTop):
(WebCore::FELightingSoftwareApplier::AlphaWindow::setCenter):
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottom):
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTopRight):
(WebCore::FELightingSoftwareApplier::AlphaWindow::setRight):
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottomRight):
(WebCore::FELightingSoftwareApplier::AlphaWindow::shiftRow):
(WebCore::FELightingSoftwareApplier::AlphaWindow::shift):

  • platform/graphics/filters/software/FEMergeSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEMerge.cpp.

(WebCore::FEMergeSoftwareApplier::apply):

  • platform/graphics/filters/software/FEMergeSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEMerge.h.
  • platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEMorphology.cpp.

(WebCore::FEMorphologySoftwareApplier::minOrMax):
(WebCore::FEMorphologySoftwareApplier::columnExtremum):
(WebCore::FEMorphologySoftwareApplier::kernelExtremum):
(WebCore::FEMorphologySoftwareApplier::applyPlatformGeneric):
(WebCore::FEMorphologySoftwareApplier::applyPlatformWorker):
(WebCore::FEMorphologySoftwareApplier::applyPlatform):
(WebCore::FEMorphologySoftwareApplier::apply):

  • platform/graphics/filters/software/FEMorphologySoftwareApplier.h: Added.

(WebCore::FEMorphologySoftwareApplier::pixelArrayIndex):
(WebCore::FEMorphologySoftwareApplier::makePixelValueFromColorComponents):
(WebCore::FEMorphologySoftwareApplier::makeColorComponentsfromPixelValue):

  • platform/graphics/filters/software/FEOffsetSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FEOffset.cpp.

(WebCore::FEOffsetSoftwareApplier::apply):

  • platform/graphics/filters/software/FEOffsetSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEMerge.h.
  • platform/graphics/filters/software/FETileSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FETile.cpp.

(WebCore::FETileSoftwareApplier::apply):

  • platform/graphics/filters/software/FETileSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/FEMerge.h.
  • platform/graphics/filters/software/FETurbulenceSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/FETurbulence.cpp.

(WebCore::FETurbulenceSoftwareApplier::initPaintingData):
(WebCore::FETurbulenceSoftwareApplier::computeStitching):
(WebCore::FETurbulenceSoftwareApplier::noise2D):
(WebCore::FETurbulenceSoftwareApplier::toIntBasedColorComponents):
(WebCore::FETurbulenceSoftwareApplier::calculateTurbulenceValueForPoint):
(WebCore::FETurbulenceSoftwareApplier::applyPlatformGeneric):
(WebCore::FETurbulenceSoftwareApplier::applyPlatformWorker):
(WebCore::FETurbulenceSoftwareApplier::applyPlatform):
(WebCore::FETurbulenceSoftwareApplier::apply):

  • platform/graphics/filters/software/FETurbulenceSoftwareApplier.h: Added.

(WebCore::FETurbulenceSoftwareApplier::PaintingData::random):
(WebCore::FETurbulenceSoftwareApplier::smoothCurve):
(WebCore::FETurbulenceSoftwareApplier::linearInterpolation):

  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/SourceAlpha.cpp.

(WebCore::SourceAlphaSoftwareApplier::apply):

  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/SourceAlpha.h.
  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.cpp: Copied from Source/WebCore/platform/graphics/filters/SourceAlpha.h.

(WebCore::SourceGraphicSoftwareApplier::apply):

  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/filters/SourceGraphic.h.
  • rendering/CSSFilter.cpp:

(WebCore::createBlurEffect):

  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::parseAttribute):

  • svg/SVGFEConvolveMatrixElement.h:

(WebCore::SVGPropertyTraits<EdgeModeType>::highestEnumValue):
(WebCore::SVGPropertyTraits<EdgeModeType>::initialValue):
(WebCore::SVGPropertyTraits<EdgeModeType>::toString):
(WebCore::SVGPropertyTraits<EdgeModeType>::fromString):

  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::parseAttribute):

  • svg/SVGFEGaussianBlurElement.h:
  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::parseAttribute):

  • svg/SVGFEMorphologyElement.h:

(WebCore::SVGPropertyTraits<MorphologyOperatorType>::highestEnumValue):
(WebCore::SVGPropertyTraits<MorphologyOperatorType>::toString):
(WebCore::SVGPropertyTraits<MorphologyOperatorType>::fromString):

10:29 AM Changeset in webkit [286151] by dino@apple.com
  • 13 edits in trunk/Source/WebCore

Make DocumentClass an OptionSet
https://bugs.webkit.org/show_bug.cgi?id=233274

Reviewed by Sam Weinig.

DocumentClassFlags was playing the part of an OptionSet, so
it might as well be one.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::testIsHTMLClassOnDocument): Use
branchTest16 here, as DocumentClass is a 16-bit value.

  • dom/Document.cpp: Use new type.

(WebCore::Document::Document):

  • dom/Document.h: Make a new type alias DocumentClasses

that is OptionSet<DocumentClass>, use that for m_documentClasses,
and change all the is*Document methods to test the OptionSet.
(WebCore::Document::isHTMLDocument const):
(WebCore::Document::isXHTMLDocument const):
(WebCore::Document::isXMLDocument const):
(WebCore::Document::isImageDocument const):
(WebCore::Document::isSVGDocument const):
(WebCore::Document::isPluginDocument const):
(WebCore::Document::isMediaDocument const):
(WebCore::Document::isTextDocument const):
(WebCore::Document::isModelDocument const):
(WebCore::Document::documentClassesMemoryOffset):
(WebCore::Document::isHTMLDocumentClassFlag):
(WebCore::Document::Document):

  • dom/XMLDocument.h: Use new type.

(WebCore::XMLDocument::createXHTML):
(WebCore::XMLDocument::XMLDocument):

  • html/HTMLDocument.cpp: Ditto.

(WebCore::HTMLDocument::createSynthesizedDocument):
(WebCore::HTMLDocument::HTMLDocument):

  • html/HTMLDocument.h: Ditto.

(WebCore::HTMLDocument::HTMLDocument):
(WebCore::HTMLDocument::create):

  • html/ImageDocument.cpp: Ditto.

(WebCore::ImageDocument::ImageDocument):

  • html/MediaDocument.cpp: Ditto.

(WebCore::MediaDocument::MediaDocument):

  • html/ModelDocument.cpp: Ditto.

(WebCore::ModelDocument::ModelDocument):

  • html/PluginDocument.cpp: Ditto.

(WebCore::PluginDocument::PluginDocument):

  • html/TextDocument.cpp: Ditto.

(WebCore::TextDocument::TextDocument):

  • svg/SVGDocument.cpp: Ditto.

(WebCore::SVGDocument::SVGDocument):

8:20 AM Changeset in webkit [286150] by Patrick Griffis
  • 13 edits in trunk

CSP: Implement submitting samples in violation reports
https://bugs.webkit.org/show_bug.cgi?id=233398

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations with more passes.

  • web-platform-tests/content-security-policy/securitypolicyviolation/script-sample-expected.txt:
  • web-platform-tests/content-security-policy/securitypolicyviolation/script-sample-no-opt-in-expected.txt:
  • web-platform-tests/content-security-policy/securitypolicyviolation/style-sample-expected.txt:

Source/WebCore:

This implements handling 'report-sample' directive and submits a sample
for style-src and script-src. It doesn't currently extract the source
from eval() yet.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowInlineStyle const):
(WebCore::ContentSecurityPolicy::allowFrameAncestors const):
(WebCore::ContentSecurityPolicy::allowPluginType const):
(WebCore::ContentSecurityPolicy::allowObjectFromSource const):
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource const):
(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowConnectToSource const):
(WebCore::ContentSecurityPolicy::allowBaseURI const):
(WebCore::ContentSecurityPolicy::reportViolation const):

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyClient.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::shouldReportSample const):

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parseSource):

  • page/csp/ContentSecurityPolicySourceList.h:

(WebCore::ContentSecurityPolicySourceList::shouldReportSample const):

  • page/csp/ContentSecurityPolicySourceListDirective.h:

(WebCore::ContentSecurityPolicySourceListDirective::shouldReportSample const):

7:45 AM Changeset in webkit [286149] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

[JSC] Implement Date.prototype.toTemporalInstant()
https://bugs.webkit.org/show_bug.cgi?id=232075

Patch by Aditi Singh <asingh@igalia.com> on 2021-11-24
Reviewed by Yusuke Suzuki.

JSTests:

  • stress/date-to-temporal-instant.js: Added.

(shouldBe):
(shouldThrow):

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h:
  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

7:04 AM Changeset in webkit [286148] by Ziran Sun
  • 7 edits in trunk

[css-grid] Track sizing algorithm not repeated even if used flex fraction would change
https://bugs.webkit.org/show_bug.cgi?id=232617

Reviewed by Javier Fernandez.

Source/WebCore:

According to https://drafts.csswg.org/css-grid/#algo-flex-tracks, when row height is
indefinite, for each grid item that crosses a flexible track, we run the track sizing
algorithm under a max-content constraint to find the flex fraction. Then we work out
the grid container height as definite, which may cause the flex fraction change. At this
point, we need to repeat the track sizing algorithm for row and layout the grid for real.
The current implementation doesn't repeat the track sizing algorithm for row.

The complication with calling RenderGrid::repeatTracksSizingIfNeeded() for flex max-sizing
is that it might change a grid item's status of participating in Baseline Alignment for
a cyclic sizing dependncy case, which should be definitively excluded. See
https://github.com/w3c/csswg-drafts/issues/3046 for more details. This issue should be handled
in a seperate bug. This CL only handle test cases that don't have baseline alignment specified.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::initializeTrackSizes):
(WebCore::GridTrackSizingAlgorithm::setup):
(WebCore::GridTrackSizingAlgorithm::reset):

  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::repeatTracksSizingIfNeeded):
(WebCore::RenderGrid::layoutBlock):

  • rendering/RenderGrid.h:

LayoutTests:

Unskip two tests that are passing.

6:14 AM Changeset in webkit [286147] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] RenderQuote is not a RenderText
https://bugs.webkit.org/show_bug.cgi?id=233457

Reviewed by Antti Koivisto.

It's a RenderInline since r162972.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFontAndText):
(WebCore::LayoutIntegration::canUseForRenderInlineChild):

5:41 AM Changeset in webkit [286146] by Manuel Rego Casasnovas
  • 5 edits
    4 adds in trunk/LayoutTests

[selectors] Import 2 new :focus-visible tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=233446

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

We're slightly tweaking the tests due to bug webkit.org/b/233470.

  • web-platform-tests/css/selectors/focus-visible-017-2-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-017-2.html: Added.
  • web-platform-tests/css/selectors/focus-visible-018-2-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-018-2.html: Added.
  • web-platform-tests/css/selectors/w3c-import.log:

LayoutTests:

  • platform/ios/TestExpectations: Skip one test in iOS.
  • tests-options.json:
2:02 AM Changeset in webkit [286145] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.34.2

WebKitGTK 2.34.2

2:01 AM Changeset in webkit [286144] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.34

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.34.2 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.34.2.
1:46 AM WPTExportProcess edited by Manuel Rego Casasnovas
Add link to WebKitW3CTesting (diff)
1:46 AM WebKitW3CTesting edited by Manuel Rego Casasnovas
Add link to WPTExportProcess (diff)
1:40 AM WikiStart edited by Manuel Rego Casasnovas
Add link to WPTExportProcess (diff)
1:23 AM WebKitGTK/2.34.x edited by Carlos Garcia Campos
(diff)
1:22 AM Changeset in webkit [286143] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r286137 - [GTK] Effective appearance doesn't update on the old process after PSON
https://bugs.webkit.org/show_bug.cgi?id=233451

Reviewed by Michael Catanzaro.

When reinitializing a WebPage, we get effective appearance from the page creation
parameters. Actually apply them.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):

Note: See TracTimeline for information about the timeline view.