Timeline



Jan 11, 2022:

11:55 PM Changeset in webkit [287913] by Fujii Hironori
  • 15 edits in trunk

Remove Direct2D code (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235097

Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/OptionsAppleWin.cmake:

Source/WebCore:

  • platform/graphics/Color.h:
  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::createGDIFont):
(WebCore::FontCache::createFontPlatformData):

  • platform/graphics/win/FontPlatformDataWin.cpp:
  • platform/image-decoders/ScalableImageDecoder.cpp:

(WebCore::ScalableImageDecoder::setTargetContext): Deleted.

  • platform/image-decoders/ScalableImageDecoder.h:

Source/WebCore/PAL:

  • pal/PlatformAppleWin.cmake:

Source/WebKit:

  • UIProcess/BackingStore.h:

(): Deleted.

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:

(WebKit::DrawingAreaProxyCoordinatedGraphics::sizeDidChange):
(WebKit::DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange):

  • UIProcess/win/PageClientImpl.cpp:
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::paint):

11:52 PM Changeset in webkit [287912] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[RISCV64] riscv64 backend should lower offlineasm instructions
https://bugs.webkit.org/show_bug.cgi?id=234952

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

In the riscv64 offlineasm backend, instead of handling higher-level
offlineasm instructions with different operand combinations and manually
juggling temp registers, use the approach of aggressively lowering these
opcodes into sequences of RISC-V instructions.

Addresses and immediate values are lowered into usable forms where
necessary. Different lowering phases handle any offlineasm instruction
so that the resulting opcodes can be, with accompanying operands, used
trivially to construct the RISC-V assembly.

Lowered RISC-V opcodes use the 'rv_' prefix so that they can be easily
diassociated from any offlineasm opcode that might share the same name.
The prefix is removed when the assembly is finally generated.

  • offlineasm/risc.rb: Also handle branch-on-arithmetic opcodes in the

riscvLowerMisplacedAddress lowering phase.

  • offlineasm/riscv64.rb:
11:49 PM Changeset in webkit [287911] by Said Abou-Hallawa
  • 12 edits in trunk

[GPU Process] Make SVG resources create remote ImageBuffers for their drawing
https://bugs.webkit.org/show_bug.cgi?id=235073
rdar://87402419

Reviewed by Darin Adler.

Source/WebCore:

Pass a hostWindow when calling SVGRenderingContext::createImageBuffer().

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
(WebCore::RenderSVGResourceGradient::applyResource):
(WebCore::RenderSVGResourceGradient::postApplyResource):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage const):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::createImageBuffer):

  • rendering/svg/SVGRenderingContext.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::imageBufferForEffect const):

Source/WebKit:

  • GPUProcess/graphics/QualifiedResourceHeap.h:

(WebKit::QualifiedResourceHeap::get const):
Do not assert here if the entry of the HashMap does not hold a variant
of the required type. We already return nullptr without assertion if there
is no entry for the required renderingResourceIdentifier. We should let
the caller decides what to do in the case of error.

LayoutTests:

  • gpu-process/TestExpectations:
11:17 PM Changeset in webkit [287910] by Diego Pino Garcia
  • 2 edits
    1 add in trunk/LayoutTests

[GLIB] Unreviewed test gardening, emit baseline for WPT test websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html
https://bugs.webkit.org/show_bug.cgi?id=235098

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting-expected.txt: Added.
8:08 PM Changeset in webkit [287909] by Simon Fraser
  • 85 edits in trunk

Serialize CSS <number> values with rounding, limited decimal precision, and no exponents per-spec
LayoutTests/imported/w3c:

https://bugs.webkit.org/show_bug.cgi?id=218880

Reviewed by Darin Adler.

  • web-platform-tests/css/css-cascade/revert-val-006-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-007-expected.txt:
  • web-platform-tests/css/css-easing/cubic-bezier-timing-functions-output-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt:
  • web-platform-tests/css/css-fonts/variations/at-font-face-descriptors-expected.txt:
  • web-platform-tests/css/css-masking/clip-path/interpolation-expected.txt:
  • web-platform-tests/css/css-shapes/basic-shape-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/2d-rotate-js-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-matrix-composition-expected.txt:
  • web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize-expected.txt:
  • web-platform-tests/css/css-values/calc-numbers-expected.txt:
  • web-platform-tests/css/css-values/hypot-pow-sqrt-invalid-expected.txt:
  • web-platform-tests/css/css-values/minmax-angle-serialize-expected.txt:
  • web-platform-tests/css/css-values/minmax-number-computed-expected.txt:
  • web-platform-tests/css/css-values/minmax-number-serialize-expected.txt:
  • web-platform-tests/css/css-variables/variable-presentation-attribute-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-line-height-expected.txt:
  • web-platform-tests/css/motion/animation/offset-rotate-interpolation-expected.txt:
  • web-platform-tests/html/rendering/dimension-attributes-expected.txt:
  • web-platform-tests/html/rendering/pixel-length-attributes-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=218880

Reviewed by Darin Adler.

Serializes CSS numbers with up to a maximum of 6 decimal places, as required by CSSOM-1
https://www.w3.org/TR/cssom-1/#serialize-a-css-component-value

Introduces CSSUnitType::CSS_INTEGER to differentiate types that are explicitly integers, and uses the
new <number> serialization for CSS_NUMBER.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridPosition):
(WebCore::counterToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValue.cpp:

(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::doubleValueInternal const):
(WebCore::CSSPrimitiveValue::formatNumberValue const):
(WebCore::CSSPrimitiveValue::formatIntegerValue const):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):

  • css/CSSPrimitiveValue.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator short const):
(WebCore::CSSPrimitiveValue::operator unsigned short const):
(WebCore::CSSPrimitiveValue::operator int const):
(WebCore::CSSPrimitiveValue::operator unsigned const):
(WebCore::CSSPrimitiveValue::operator float const):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator LineClampValue const):
(WebCore::CSSPrimitiveValue::operator ColumnSpan const):

  • css/CSSUnits.cpp:

(WebCore::unitCategory):
(WebCore::operator<<):

  • css/CSSUnits.h:
  • css/DeprecatedCSSOMPrimitiveValue.cpp:

(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):

  • css/MediaQueryEvaluator.cpp:

(WebCore::doubleValue):
(WebCore::evaluateResolution):
(WebCore::devicePixelRatioEvaluate):
(WebCore::computeLength):

  • css/MediaQueryExpression.cpp:

(WebCore::featureWithValidPositiveLength):
(WebCore::featureWithPositiveInteger):
(WebCore::featureWithPositiveNumber):
(WebCore::featureWithZeroOrOne):
(WebCore::MediaQueryExpression::MediaQueryExpression):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

  • css/calc/CSSCalcCategoryMapping.cpp:

(WebCore::calcUnitCategory):
(WebCore::calculationCategoryForCombination):
(WebCore::hasDoubleValue):

  • css/calc/CSSCalcPrimitiveValueNode.cpp:

(WebCore::CSSCalcPrimitiveValueNode::isNumericValue const):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeFontPaletteValuesRule):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeCounter):
(WebCore::consumeCounterStyleRange):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction):
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::createGridPosition):

Source/WTF:

https://bugs.webkit.org/show_bug.cgi?id=218880

Reviewed by Darin Adler.

Add new numberToCSSString and FormattedCSSNumber that handle converting a double into the format required by
CSS (unlimited number of digits before the decimal place, up to 6 decimal places, no trailing zeros.

  • wtf/dtoa.cpp:

(WTF::truncateTrailingZeros):
(WTF::numberToFixedPrecisionString):
(WTF::numberToCSSString):

  • wtf/dtoa.h:
  • wtf/dtoa/double-conversion.cc:
  • wtf/dtoa/double-conversion.h:
  • wtf/text/StringConcatenateNumbers.h:

(WTF::FormattedCSSNumber::create):
(WTF::FormattedCSSNumber::length const):
(WTF::FormattedCSSNumber::buffer const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::StringTypeAdapter):
(WTF::StringTypeAdapter<FormattedCSSNumber>::length const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::is8Bit const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::writeTo const):

LayoutTests:

https://bugs.webkit.org/show_bug.cgi?id=218880

Reviewed by Darin Adler.

  • css3/calc/font-size-fractional-expected.txt:
  • css3/calc/simplification-expected.txt:
  • css3/color-filters/color-filter-parsing.html:
  • css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-computed-style.html:
  • css3/filters/filter-property-computed-style-expected.txt:
  • css3/filters/filter-property-computed-style.html:
  • css3/filters/unprefixed-expected.txt:
  • css3/filters/unprefixed.html:
  • css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
  • css3/scroll-snap/scroll-snap-property-computed-style.js:
  • fast/css/calc-parsing-expected.txt:
  • fast/css/calc-parsing-limits-expected.txt:
  • fast/css/calc-parsing-limits.html:
  • fast/css/calc-parsing.html:
  • fast/css/calc-with-angle-time-frequency-expected.txt:
  • fast/css/calc-with-angle-time-frequency.html:
  • fast/css/large-value-csstext-expected.txt:
  • fast/css/line-height-get-computed-style-expected.txt:
  • fast/css/line-height-get-computed-style.html:
  • fast/css/parsing-stroke-width-expected.txt:
  • fast/css/round-trip-values-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/pixel-length-attributes-expected.txt:
  • platform/ios/fast/forms/search/search-zoom-computed-style-height-expected.txt:
  • svg/css/parse-height-expected.txt:
  • svg/css/parse-height.html:
  • svg/css/parse-length-expected.txt:
  • svg/css/parse-length.html:
  • transitions/frames-timing-function-expected.txt:
8:03 PM Changeset in webkit [287908] by mark.lam@apple.com
  • 5 edits in trunk/Source

Update hashThreadState() to exclude opaque_flags.
https://bugs.webkit.org/show_bug.cgi?id=235081
rdar://86282584

Reviewed by Keith Miller.

Source/JavaScriptCore:

Removed some unused code.

  • runtime/MachineContext.h:

(JSC::MachineContext::stackPointer):
(JSC::MachineContext::framePointer):
(JSC::MachineContext::instructionPointer):
(JSC::MachineContext::linkRegister):
(JSC::MachineContext::setStackPointer): Deleted.
(JSC::MachineContext::setFramePointer): Deleted.
(JSC::MachineContext::setLinkRegister): Deleted.

Source/WTF:

The opaque_flags may be used by the OS, and may be altered without our knowledge.
Hence, our hash should not include the
opaque_flags field.

Also remove some unused code.

  • wtf/PlatformRegisters.h:
  • wtf/threads/Signals.cpp:

(WTF::hashThreadState):

8:01 PM Changeset in webkit [287907] by ggaren@apple.com
  • 4 edits in trunk

WebPageProxy destruction should not launch a network process
https://bugs.webkit.org/show_bug.cgi?id=235086

Reviewed by Alex Christensen.

Source/WebKit:

Inspired by a backtrace in rdar://86706412.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::~WebPageProxy): No need to message the network
process requesting our removal if it doesn't exist.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST): Include WebView destruction in the test. Also do a little
run loop spinning, to give the test a better chance of failing when
async behavior does launch the Network process.

6:14 PM Changeset in webkit [287906] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Remove references to moved/deleted files in WebKit.xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=235090

Reviewed by Yusuke Suzuki.

  • WebKit.xcodeproj/project.pbxproj:
5:13 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
4:47 PM Changeset in webkit [287905] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.6

Tag Safari-613.1.12.1.6.

4:46 PM Changeset in webkit [287904] by Russell Epstein
  • 1 delete in tags/Safari-613.1.12.1.6

Delete tag.

3:48 PM Changeset in webkit [287903] by commit-queue@webkit.org
  • 13 edits in trunk

[Wasm] Unify memory import handling in module loader and JS cases
https://bugs.webkit.org/show_bug.cgi?id=234116

Patch by Asumu Takikawa <asumu@igalia.com> on 2022-01-11
Reviewed by Yusuke Suzuki.

JSTests:

Add an instantiation test case that tests that instantiating the same
binary module twice will not crash.

  • wasm/js-api/web-assembly-instantiate.js:

(assert.asyncTest.async test):
(assert.asyncTest):

LayoutTests/imported/w3c:

Adjust Wasm WPT test expectations now that getter ordering tests
should pass.

  • web-platform-tests/wasm/jsapi/constructor/instantiate.any-expected.txt:
  • web-platform-tests/wasm/jsapi/constructor/instantiate.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/instance/constructor.any-expected.txt:
  • web-platform-tests/wasm/jsapi/instance/constructor.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/instantiateStreaming.any-expected.txt:
  • web-platform-tests/wasm/webapi/instantiateStreaming.any.worker-expected.txt:

Source/JavaScriptCore:

Moves the memory import handling code to the Wasm module record and
use the strategy used by the module loader to handle memory in all
cases.

  • wasm/WasmModule.cpp:

(JSC::Wasm::Module::copyInitialCalleeGroupToAllMemoryModes):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::tryCreate):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::initializeImportsAndExports):

3:45 PM Changeset in webkit [287902] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE

Cherry-pick r287894. rdar://problem/87417913

ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076

Reviewed by Dean Jackson.

<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS

This patch fixes an internal build.

  • scripts/code_generation_hashes/Metal_format_table.json:
  • src/libANGLE/renderer/metal/gen_mtl_format_table.py: (gen_image_map_switch_astc_case_tv_watchos): (gen_image_map_switch_string): (gen_image_mtl_to_angle_switch_string): (gen_image_map_switch_astc_case_watchos): Deleted. (gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.
  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::MetalToAngleFormatID): (rx::mtl::Format::init):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287894 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:41 PM Changeset in webkit [287901] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix kind of error thrown by wasm module creation
https://bugs.webkit.org/show_bug.cgi?id=235082

Reviewed by Michael Saboff.

It should throw WebAssembly.CompileError instead of WebAssembly.LinkError.
This fixes occasional failure in wasm imports-oom.js test.

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::createStub):

3:38 PM Changeset in webkit [287900] by Russell Epstein
  • 3 edits in branches/safari-613.1.12.1-branch/Source/ThirdParty/ANGLE

Cherry-pick r287894. rdar://problem/87417913

ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076

Reviewed by Dean Jackson.

<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS

This patch fixes an internal build.

  • scripts/code_generation_hashes/Metal_format_table.json:
  • src/libANGLE/renderer/metal/gen_mtl_format_table.py: (gen_image_map_switch_astc_case_tv_watchos): (gen_image_map_switch_string): (gen_image_mtl_to_angle_switch_string): (gen_image_map_switch_astc_case_watchos): Deleted. (gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.
  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::MetalToAngleFormatID): (rx::mtl::Format::init):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287894 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:25 PM Changeset in webkit [287899] by Peng Liu
  • 2 edits in trunk/Source/WebCore

DataURLResourceMediaLoader decodes the URL repeatedly during a video playback
https://bugs.webkit.org/show_bug.cgi?id=234940

Reviewed by Darin Adler.

In r264864, we adopted a new SPI to tell AVFoundation that the entire file is available for custom URLs.
As a result, during a video playback, AVFoundation will request small data ranges instead of "caching"
the whole file again.

However, that leads to efficiency issue for DataURLResourceMediaLoader. Because it needs to decode the whole
URL when AVFoundation requests a data range, which is inefficient when the URL is very long.

This patch reverts the change in r264864 for the DataURLResourceMediaLoader case to fix the performance issue.
If DataURLDecoder::decode() supports decoding a data range in the future, we can change it back for better
memory efficiency.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::responseReceived):

3:17 PM Changeset in webkit [287898] by Megan Gardner
  • 14 edits in trunk/LayoutTests

Rewrite touch and drag tests to be more robust.
https://bugs.webkit.org/show_bug.cgi?id=235057
rdar://86035420

Reviewed by Wenson Hsieh.

Rewrite the touch-and-drag tests to check for selection changes, not specific text selections.
Specific selections and subject to small changes in font and layout, and all that is actually important is that
there have been selection changes based off of dragged touches.
The touch-event-radius test has been updated to use the screen size directly, since the radius is scaled by the screen size
internally. The output has been changed to not need to be updated when the test phone changes.

  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-then-drag-to-select-text-expected.txt:
  • fast/events/touch/ios/long-press-then-drag-to-select-text.html:
  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html:
  • fast/events/touch/ios/touch-event-radius-expected.txt:
  • fast/events/touch/ios/touch-event-radius.html:
2:52 PM Changeset in webkit [287897] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.6

Tag Safari-613.1.12.1.6.

2:44 PM Changeset in webkit [287896] by graouts@webkit.org
  • 7 edits in trunk

css/css-transitions/KeyframeEffect-setKeyframes.tentative.html is a failure (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235077

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progression, this test now passes entirely.

  • web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:

Source/WebCore:

There were a few issues that prevented the final subtest in this WPT from passing
after the fix made in bug 235062.

First, while we must flush pending style changes for some of the Web Animations APIs
when called on a style-originated animation (CSS Transition or CSS Animation), this
should not apply to setters, only getters. In the context of this test, it was critical
that either setting keyframes or setting the current time not force pending style changes
to be flushed or a reversing CSS Transition may be started too soon and the test would
fail.

Second, when the spec says to use the "the current value of the property in the running
transition", it is equivalent to using the before-change style since we updated the
current value of all animations targeting this element, not getting the value from the
last time this transition was resolved since this would not account for any API calls
or style changes since then, which is precisely what this test is checking.

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::setBindingsStartTime): Deleted.
(WebCore::DeclarativeAnimation::setBindingsCurrentTime): Deleted.

  • animation/DeclarativeAnimation.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setBindingsKeyframes):

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

1:57 PM Changeset in webkit [287895] by BJ Burg
  • 2 edits in trunk/Source/WebKit

[Cocoa] Inspector Extensions: tabIconURLs with custom scheme URLs are incorrectly loaded
https://bugs.webkit.org/show_bug.cgi?id=235045
<rdar://problem/87357027>

Reviewed by Darin Adler.

  • UIProcess/API/Cocoa/_WKInspectorExtension.mm:

(-[_WKInspectorExtension createTabWithName:tabIconURL:sourceURL:completionHandler:]):
Construct a WTF::URL from the .baseURL and the .relativePath of the NSURL.

1:49 PM Changeset in webkit [287894] by Kyle Piddington
  • 4 edits in trunk/Source/ThirdParty/ANGLE

ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076

Reviewed by Dean Jackson.

<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS

This patch fixes an internal build.

  • scripts/code_generation_hashes/Metal_format_table.json:
  • src/libANGLE/renderer/metal/gen_mtl_format_table.py:

(gen_image_map_switch_astc_case_tv_watchos):
(gen_image_map_switch_string):
(gen_image_mtl_to_angle_switch_string):
(gen_image_map_switch_astc_case_watchos): Deleted.
(gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.

  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:

(rx::mtl::Format::MetalToAngleFormatID):
(rx::mtl::Format::init):

1:36 PM Changeset in webkit [287893] by achristensen@apple.com
  • 1 edit
    1 delete in trunk/LayoutTests

Remove ios-wk1 test expectations
https://bugs.webkit.org/show_bug.cgi?id=232582

Reviewed by Darin Adler.

  • platform/ios-wk1: Removed.
12:30 PM Changeset in webkit [287892] by Said Abou-Hallawa
  • 54 edits in trunk/Source/WebCore

[GPU Process] Remove the dependency from FilterEffect to its inputs
https://bugs.webkit.org/show_bug.cgi?id=232841
rdar://85425930

Reviewed by Darin Adler.

This is the last clean-up in the FilterEffect code. It will make the
FilterEffect objects in the GPUProcess resemble exactly their counterpart
ones in the WebProcess from now on.

For CSSFilter, we do not need to set the input effects because every
FilterFunction is the input of its successor. Passing the previous result
FilterImage to the apply() method of the current FilterFunction is enough
to get the filter applied correctly.

For SVGFilter, we need the filter effect inputs only when building the
SVGFilterExpression. So we can build a HashMap in SVGFilterBuilder which
maps a FilterEffect to its input FilterEffectVector. To make the change
clearer, the SVGFExxxElement classes will implement two methods:

  1. filterEffectInputsNames() which returns the names of the input FilterEffects.
  2. filterEffect() which returns the FilterEffect representing this element.

SVGFilterBuilder::buildFilterEffects() converts the names to FilterEffects.

No need to initialize the SourceGraphic of the referenced SVGFilter with
the FilterEffect of its previous FilterFunction. The referenced SVGFilter
will create its own native SourceGraphic. This SourceGraphic will copy
the input FilterImage to the result FilterImage.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::inputEffect const): Deleted.

  • platform/graphics/filters/FilterEffect.h:

(WebCore::FilterEffect::inputEffects): Deleted.

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::create):
(WebCore::SourceAlpha::SourceAlpha):

  • platform/graphics/filters/SourceAlpha.h:
  • rendering/CSSFilter.cpp:

(WebCore::createSVGFilter):
(WebCore::CSSFilter::buildFilterFunctions):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):

  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::filterEffect const):
(WebCore::SVGFEBlendElement::build const): Deleted.

  • svg/SVGFEBlendElement.h:
  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::filterEffect const):
(WebCore::SVGFEColorMatrixElement::build const): Deleted.

  • svg/SVGFEColorMatrixElement.h:
  • svg/SVGFEComponentTransferElement.cpp:

(WebCore::SVGFEComponentTransferElement::filterEffect const):
(WebCore::SVGFEComponentTransferElement::build const): Deleted.

  • svg/SVGFEComponentTransferElement.h:
  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::filterEffect const):
(WebCore::SVGFECompositeElement::build const): Deleted.

  • svg/SVGFECompositeElement.h:
  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::filterEffect const):
(WebCore::SVGFEConvolveMatrixElement::build const): Deleted.

  • svg/SVGFEConvolveMatrixElement.h:
  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::filterEffect const):
(WebCore::SVGFEDiffuseLightingElement::build const): Deleted.

  • svg/SVGFEDiffuseLightingElement.h:
  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::filterEffect const):
(WebCore::SVGFEDisplacementMapElement::build const): Deleted.

  • svg/SVGFEDisplacementMapElement.h:
  • svg/SVGFEDistantLightElement.cpp:

(WebCore::SVGFEDistantLightElement::lightSource const):

  • svg/SVGFEDistantLightElement.h:
  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::filterEffect const):
(WebCore::SVGFEDropShadowElement::build const): Deleted.

  • svg/SVGFEDropShadowElement.h:
  • svg/SVGFEFloodElement.cpp:

(WebCore::SVGFEFloodElement::filterEffect const):
(WebCore::SVGFEFloodElement::build const): Deleted.

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

(WebCore::SVGFEGaussianBlurElement::filterEffect const):
(WebCore::SVGFEGaussianBlurElement::build const): Deleted.

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

(WebCore::SVGFEImageElement::filterEffect const):
(WebCore::SVGFEImageElement::build const): Deleted.

  • svg/SVGFEImageElement.h:
  • svg/SVGFELightElement.h:
  • svg/SVGFEMergeElement.cpp:

(WebCore::SVGFEMergeElement::filterEffectInputsNames const):
(WebCore::SVGFEMergeElement::filterEffect const):
(WebCore::SVGFEMergeElement::build const): Deleted.

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

(WebCore::SVGFEMorphologyElement::filterEffect const):
(WebCore::SVGFEMorphologyElement::build const): Deleted.

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

(WebCore::SVGFEOffsetElement::filterEffect const):
(WebCore::SVGFEOffsetElement::build const): Deleted.

  • svg/SVGFEOffsetElement.h:
  • svg/SVGFEPointLightElement.cpp:

(WebCore::SVGFEPointLightElement::lightSource const):

  • svg/SVGFEPointLightElement.h:
  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::filterEffect const):
(WebCore::SVGFESpecularLightingElement::build const): Deleted.

  • svg/SVGFESpecularLightingElement.h:
  • svg/SVGFESpotLightElement.cpp:

(WebCore::SVGFESpotLightElement::lightSource const):

  • svg/SVGFESpotLightElement.h:
  • svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::filterEffect const):
(WebCore::SVGFETileElement::build const): Deleted.

  • svg/SVGFETileElement.h:
  • svg/SVGFETurbulenceElement.cpp:

(WebCore::SVGFETurbulenceElement::filterEffect const):
(WebCore::SVGFETurbulenceElement::build const): Deleted.

  • svg/SVGFETurbulenceElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.h:

(WebCore::SVGFilterPrimitiveStandardAttributes::filterEffectInputsNames const):

  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):

  • svg/graphics/filters/SVGFilter.h:
  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::setupBuiltinEffects):
(WebCore::SVGFilterBuilder::buildFilterEffects):
(WebCore::SVGFilterBuilder::sourceGraphic const):
(WebCore::SVGFilterBuilder::sourceAlpha const):
(WebCore::SVGFilterBuilder::addNamedEffect):
(WebCore::SVGFilterBuilder::namedEffect const):
(WebCore::SVGFilterBuilder::namedEffects const):
(WebCore::SVGFilterBuilder::setEffectInputs):
(WebCore::SVGFilterBuilder::buildEffectExpression const):
(WebCore::SVGFilterBuilder::add): Deleted.
(WebCore::SVGFilterBuilder::getEffectById const): Deleted.

  • svg/graphics/filters/SVGFilterBuilder.h:
10:53 AM Changeset in webkit [287891] by Nikita Vasilyev
  • 7 edits in trunk

REGRESSION (r283723): Web Inspector: CSS declarations unexpectedly removed when editing property value
https://bugs.webkit.org/show_bug.cgi?id=233195

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Re-attach CSS property if it was detached while editing.

CSSProperty is detached when focusing on property name and deleting it. Consequent edits of the detached
CSSProperty were not saved. This patch re-attaches detached property at the previous position.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype.set name):

  • UserInterface/Models/CSSStyleDeclaration.js:

(WI.CSSStyleDeclaration.prototype.newBlankProperty):
(WI.CSSStyleDeclaration.prototype.insertProperty):
Introduce this method since the logic is used in two different places now.

LayoutTests:

Test removing CSS property name.

  • inspector/css/modify-css-property-expected.txt:
  • inspector/css/modify-css-property.html:
  • inspector/css/resources/modify-css-property.css:

(.rule-e):

10:46 AM Changeset in webkit [287890] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.4

Tag Safari-613.1.12.4.

10:43 AM Changeset in webkit [287889] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Use the new template ColorSpaceCG helpers to cleanup some code
https://bugs.webkit.org/show_bug.cgi?id=235034

Reviewed by Cameron McCormack.

Utilize the new template helpers in ColorSpaceCG.h to remove some #ifdefs.

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColorTransform):
Add a singleton for this transform since it is always the same.

(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):
(WebCore::convertToCGCompatibleComponents):
(WebCore::createCGColor):
(WebCore::platformConvertColorComponents):
Replace #ifdefs with constexpr checking of HasCGColorSpaceMapping<>. Also switch
some c-style arrays to std::array for consistency with the rest of the codebase.

  • platform/graphics/cg/GradientRendererCG.cpp:

(WebCore::classifyAlphaType):
Make constexpr (feedback from a previous change).

(WebCore::GradientRendererCG::makeGradient const):
(WebCore::GradientRendererCG::Shading::shadingFunction):
(WebCore::GradientRendererCG::makeShading const):
Replace #ifdefs with constexpr checking of HasCGColorSpaceMapping<>.

10:31 AM Changeset in webkit [287888] by Russell Epstein
  • 6 edits
    1 add in branches/safari-613.1.12-branch/Source

Cherry-pick r287884. rdar://problem/87206692

Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059

Reviewed by Filip Pizlo.

Source/WebCore:

Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.

Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy:

On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/create-symlink-to-altroot.sh: Added.

Source/WebKitLegacy/mac:

Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.

Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.

Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.

  • Configurations/WebKitLegacy.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287884 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:30 AM Changeset in webkit [287887] by Russell Epstein
  • 9 edits in branches/safari-613.1.12-branch/Source

Versioning.

WebKit-7613.1.12.4

10:16 AM Changeset in webkit [287886] by Alan Coon
  • 6 edits
    1 add in branches/safari-613-branch/Source

Cherry-pick r287884. rdar://problem/87206692

Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059

Reviewed by Filip Pizlo.

Source/WebCore:

Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.

Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy:

On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/create-symlink-to-altroot.sh: Added.

Source/WebKitLegacy/mac:

Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.

Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.

Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.

  • Configurations/WebKitLegacy.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287884 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:58 AM Changeset in webkit [287885] by Russell Epstein
  • 4 edits in branches/safari-613.1.12.1-branch

Cherry-pick r287360. rdar://problem/86743595

[WebAuthn] Set Web Authentication experimental feature flag as default true
https://bugs.webkit.org/show_bug.cgi?id=234533
<rdar://problem/86743595>

Reviewed by Brent Fulgham.

Source/WTF:

The Web Authentication feature has been shipping for a while. Default value
for experimental feature flag should be true.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

The Web Authentication feature has been shipping for a while. Default value for
experimental feature flag should be true.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST): (TestWebKitAPI::WebCore::webAuthenticationExperimentalFeature): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287360 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:55 AM Changeset in webkit [287884] by msaboff@apple.com
  • 6 edits
    1 add in trunk/Source

Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059

Reviewed by Filip Pizlo.

Source/WebCore:

Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.

Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy:

On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/create-symlink-to-altroot.sh: Added.

Source/WebKitLegacy/mac:

Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.

Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.

Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.

  • Configurations/WebKitLegacy.xcconfig:
9:50 AM Changeset in webkit [287883] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.6

9:43 AM Changeset in webkit [287882] by commit-queue@webkit.org
  • 18 edits
    8 copies
    66 adds
    2 deletes in trunk/LayoutTests

[CSS contain] Update css-contain tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=235060

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-11
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Update css/css-contain/ tests to commit 5d1525416b.

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-fieldset-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-fieldset.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-flex-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-flex.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-flexitem-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-flexitem.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-grid-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-grid.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-legend-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-legend.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-multicol-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-multicol.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-regular-container-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-regular-container.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-table-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-table.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-vertical-rl--expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-vertical-rl-.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026-expected.txt:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-056.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-059-expected.html: Removed.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-059.html: Removed.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-082-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-082.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-083-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-083.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-084-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-084.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-hit-test-contents-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-img-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-img.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-in-svg-000-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-input-image-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-input-image.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-svg-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-svg.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-000.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-000.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-001.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-001.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-002.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-002.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-003.tentative-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-003.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-004.tentative-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-004.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/contentvisibility-nestedslot-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/document-element-computed-style-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/document-element-computed-style.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/hidden-execcommand-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/hidden-pseudo-element-removed-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/meter-selection-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/slot-content-visibility.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/w3c-import.log:
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-1-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-10-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-11-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-12-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-13-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-14-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-15-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-16-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-17-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-18-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-19-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-2-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-20-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-21-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-3-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-4-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-5-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-6-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-7-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-8-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-9-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/w3c-import.log:
  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-computed.html:
  • web-platform-tests/css/css-contain/parsing/contain-invalid-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-invalid.html:
  • web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-valid.html:
  • web-platform-tests/css/css-contain/w3c-import.log:

LayoutTests:

8:20 AM Changeset in webkit [287881] by graouts@webkit.org
  • 5 edits in trunk

css/css-transitions/KeyframeEffect-setKeyframes.tentative.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=235062

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:

Source/WebCore:

The WPT at css/css-transitions/KeyframeEffect-setKeyframes.tentative.html, which checks
the behavior of programmatically changing keyframes for a CSS Transition, highlighted
three failures:

  1. we did not flush pending style changes as setKeyframes() was called for an animation created fromm CSS (CSS Transition or CSS Animation),
  2. we did not use the style from the last style update to computed the before-change style if available, but rather the computed style generated _after_ the last style update,
  3. we did not apply _all_ animations as we compute the before-change style to consider new transitions to run, but only animations matching the current property.

We've corrected all of those errors and this test now passes save for one failure, which
seems to be a different type of problem and will be looked at in a future patch.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setBindingsKeyframes):

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

7:44 AM Changeset in webkit [287880] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Make [WebAccessibilityObjectWrapperBase axBackingObject] return the appropriate underlying object for the calling thread.
https://bugs.webkit.org/show_bug.cgi?id=235046
<rdar://problem/87358177>

Reviewed by Chris Fleizach.

In isolated tree mode, WebAccessibilityObjectWrapperBase axBackingObject
can be called on and off the main thread. This change ensures that the
AXIsolatedObject is always returned off the main thread, while the
AXObejct is always returned on the main thread, which is the required
behavior.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase axBackingObject]):

7:41 AM Changeset in webkit [287879] by weinig@apple.com
  • 6 edits in trunk/Source

Remove AppleTV specific disabling of conic gradients, its not necessary
https://bugs.webkit.org/show_bug.cgi?id=235041

Reviewed by Darin Adler.

Source/WebCore:

There doesn't seem to be any reason to disable conic gradients on AppleTV. We do still
need to disable it on windows, but rather than hard coding this in WebCore, use a new
HAVE macro to conditionalize the code.

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::paint):

  • platform/graphics/cg/GradientRendererCG.cpp:

(WebCore::GradientRendererCG::drawConicGradient):

Source/WTF:

Add HAVE_CORE_GRAPHICS_CONIC_GRADIENTS macro and use it to control ENABLE_CSS_CONIC_GRADIENTS.

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:
7:18 AM Changeset in webkit [287878] by ntim@apple.com
  • 5 edits
    1 copy in trunk

::backdrop pseudo element should react to associated element event listeners
https://bugs.webkit.org/show_bug.cgi?id=233072

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events.html

We now append the ::backdrop renderer as a child of the top layer element, rather than a sibling of the
top layer element. This gets hit testing working properly for free.

We used to append the ::backdrop renderer as a sibling to get the proper layout, but this is no longer
necessary after r287683 and r287845.

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):

LayoutTests:

iOS failure is due to WPT test_driver actions being unsupported.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt: Added.
6:43 AM Changeset in webkit [287877] by Adrian Perez de Castro
  • 19 edits in trunk/Source

Non-unified build fixes, early January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235013

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • wasm/js/JSWebAssemblyModule.cpp: Add missing JSWebAssemblyLinkError.h header.
  • wasm/js/JSWebAssemblyModule.h: Add missing forward declaration for the

JSC::OptimizingCallLinkInfo type.

Source/WebCore:

No new tests needed.

  • Modules/fetch/FetchBodyConsumer.cpp: Add missing FormData.h header.
  • Modules/fetch/FormDataConsumer.h: Add missing ExceptionOr.h header, and forward

declaration for the WebCore::ScriptExecutionContext type.

  • animation/CSSAnimation.cpp: Add missing KeyframeEffect.h header.
  • animation/KeyframeEffect.cpp: Add missing StyledElement.h header.
  • html/HTMLFormElement.cpp: Add missing PseudoClassChangeInvalidation.h header.
  • platform/network/SynchronousLoaderClient.cpp: Add missing SharedBuffer.h header.
  • rendering/svg/RenderSVGBlock.cpp: Add missing SVGRenderSupport.h header.
  • rendering/svg/RenderSVGForeignObject.cpp: Ditto.
  • rendering/svg/RenderSVGInline.cpp: Ditto.
  • rendering/svg/RenderSVGModelObject.cpp: Add missing SVGElementInlines.h header.
  • rendering/svg/SVGInlineTextBox.cpp: Add missing FloatConversion.h header.
  • svg/SVGViewElement.cpp: Add missing RenderElement.h header.
  • workers/service/context/ServiceWorkerFetch.h: Add missing forward declaration for the

WebCore::SharedBuffer type, remove unused one for WebCore::FragmentedSharedBuffer.

Source/WebKit:

  • Platform/IPC/SharedBufferCopy.cpp: Add missing WebCoreArgumentCoders.h header, remove now

unneeded ArgumentCoders.h header.

6:07 AM Changeset in webkit [287876] by Carlos Garcia Campos
  • 24 edits in trunk

[GTK][a11y] Web process crashes in some sites having SVG images
https://bugs.webkit.org/show_bug.cgi?id=234737

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Unfortunately the changes in r287388 are not enough, it can still happen that root hasn't been set to the
SVGImage page when the wrappers are created. So, we can't actually create the wrappers with a reference to the
root object as we did in r286767. In most of the cases wrappers use the root just to get AccessibilityAtspi,
which is not a singleton, but it's created and owned by the web process singleton at startup, so it can be
accessed globaly. This patch makes AccessibilityAtspi a singleton to get the global instance without having to
keep a reference in the root object.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::remoteSVGRootElement const): Move the code to set the root in SVGImage page
before the remote svg wrapper is created.

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::attachWrapper): Just pass the page root object to the wrapper constructor, that now
receives a pointer that might be nullptr.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::AccessibilityAtspi): Just create the WorkQueue.
(WebCore::AccessibilityAtspi::singleton): Return a reference to the global instance.
(WebCore::AccessibilityAtspi::connect): Connect to the given dbus address.
(WebCore::AccessibilityAtspi::applicationReference const): This allows wrappers to get the application reference
without having to check if m_root is nullptr or not.
(WebCore::AccessibilityAtspi::parentChanged): Use AccessibilityObjectAtspi::isTreeRegistered()
(WebCore::AccessibilityAtspi::childrenChanged): Ditto.

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

(WebCore::AccessibilityObjectAtspi::create): Receive a AccessibilityRootAtspi pointer instead of reference.
(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi): Ditto.
(WebCore::AccessibilityObjectAtspi::cacheDestroyed): Only call AccessibilityRootAtspi::childRemoved if parent is
the root object.
(WebCore::AccessibilityObjectAtspi::elementDestroyed): Null check m_root and use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::root): Get the root if already set or try to get it from the page.
(WebCore::AccessibilityObjectAtspi::isTreeRegistered const): Return try if root has been set and its tree has
been registered.
(WebCore::AccessibilityObjectAtspi::registerObject): Use AccessibilityObjectAtspi::root().
(WebCore::AccessibilityObjectAtspi::reference): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::hyperlinkReference): Ditto.
(WebCore::AccessibilityObjectAtspi::setParent): Return early also if root hasn't been set yet.
(WebCore::AccessibilityObjectAtspi::parentReference const): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::serialize const): Ditto.
(WebCore::AccessibilityObjectAtspi::childAdded): Ditto.
(WebCore::AccessibilityObjectAtspi::childRemoved): Ditto.
(WebCore::AccessibilityObjectAtspi::stateChanged): Ditto.
(WebCore::AccessibilityObjectAtspi::loadEvent): Ditto.

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::selectionChanged): Ditto.

  • accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textInserted): Ditto.
(WebCore::AccessibilityObjectAtspi::textDeleted): Ditto.
(WebCore::AccessibilityObjectAtspi::selectionChanged): Ditto.
(WebCore::AccessibilityObjectAtspi::textAttributesChanged): Ditto.

  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::valueChanged): Ditto.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::create): Remove AccessibilityAtspi parameter.
(WebCore::AccessibilityRootAtspi::AccessibilityRootAtspi): Ditto.
(WebCore::AccessibilityRootAtspi::registerObject): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityRootAtspi::unregisterObject): Ditto
(WebCore::AccessibilityRootAtspi::embedded): Ditto.
(WebCore::AccessibilityRootAtspi::applicationReference const): Ditto.
(WebCore::AccessibilityRootAtspi::reference const): Ditto.
(WebCore::AccessibilityRootAtspi::childAdded): Ditto.
(WebCore::AccessibilityRootAtspi::childRemoved): Ditto.
(WebCore::AccessibilityRootAtspi::serialize const): Ditto.

  • accessibility/atspi/AccessibilityRootAtspi.h:

Source/WebKit:

Use AccessibilityAtspi::singleton().

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::accessibilityAtspi const): Deleted.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Use AccessibilityAtspi::singleton().

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::AccessibilityController::axRunLoop):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.cpp:

(WTR::AccessibilityNotificationHandler::AccessibilityNotificationHandler):
(WTR::AccessibilityNotificationHandler::~AccessibilityNotificationHandler):

5:45 AM Changeset in webkit [287875] by Martin Robinson
  • 4 edits in trunk

Some css-transforms tests assert in debug
https://bugs.webkit.org/show_bug.cgi?id=230079
<rdar://problem/83179970>

Reviewed by Simon Fraser.

Source/WebCore:

No new tests. This is covered by existing WPT tests. This change fixes
five assertions and one test completely. In addition, it leads to progressions,
but not complete fixes, in the four remaining tests.

Table elements, which can be transformed, were not properly forming containing blocks
for fixed and absolutely positioned elements.

  • rendering/RenderElement.h:

(WebCore::RenderElement::canContainFixedPositionObjects const): Return true even when
we have a transformed element that is not a block.
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const): Ditto.
(WebCore::RenderElement::isTransformable const): Added this helper which returns whether
not SVG elements are transformable. Eventually this should be extended to handle SVG
elements as well.

LayoutTests:

5:22 AM Changeset in webkit [287874] by Diego Pino Garcia
  • 5 edits in trunk/LayoutTests

REGRESSION (Lazy tree creation): css3/calc/transitions-dependent.html is frequently failing
https://bugs.webkit.org/show_bug.cgi?id=126142
<rdar://problem/15725243>

Reviewed by Alexey Proskuryakov.

This test is no longer flaky, it has been consistently failing with fixed values. Update
'innerTransition' expected values to match actual values.

The test code was modernized to make it pass in other browsers since getPropertyCSSValue()
is deprecated and no longer supported by Chrome or Firefox).

  • TestExpectations:
  • css3/calc/transitions-dependent-expected.txt:
  • css3/calc/transitions-dependent.html:
  • platform/gtk/TestExpectations:
4:57 AM Changeset in webkit [287873] by Nikolas Zimmermann
  • 9 edits
    2 adds in trunk/Source/WebCore

[LBSE] Introduce SVGBoundingBoxComputation
https://bugs.webkit.org/show_bug.cgi?id=234632
<rdar://problem/87001334>

Reviewed by Rob Buis.

Upstream SVGBoundingBoxComputation, a utility class
implementing the SVG2 "bounding box computation" algorithm,
as spec'ed in https://svgwg.org/svg2-draft/coords.html#BoundingBoxes.

SVG2 also specifies a new optional argument for getBBox() & friends:
DOMRect getBBox(optional SVGBoundingBoxOptions options = {});

SVGBoundingBoxOptions can be implemented using SVGBoundingBoxComputation:
exposing this to the Web is left for the future, once more of LBSE is ready.

LBSE utilizes SVGBoundingBoxComputation whenever any kind of bounding box
needs to be computed (object / stroke / decorated (e.g. including markers).

Covered by existing tests, no change in behaviour.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/svg/LegacyRenderSVGModelObject.h:

(WebCore::LegacyRenderSVGModelObject::visualOverflowRectEquivalent const): Deleted.

  • rendering/svg/RenderSVGModelObject.h:

(WebCore::RenderSVGModelObject::visualOverflowRectEquivalent const):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/SVGBoundingBoxComputation.cpp: Added.

(WebCore::SVGBoundingBoxComputation::SVGBoundingBoxComputation):
(WebCore::SVGBoundingBoxComputation::~SVGBoundingBoxComputation):
(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox const):
(WebCore::SVGBoundingBoxComputation::handleShapeOrTextOrInline const):
(WebCore::SVGBoundingBoxComputation::handleRootOrContainer const):
(WebCore::SVGBoundingBoxComputation::handleForeignObjectOrImage const):
(WebCore::SVGBoundingBoxComputation::adjustBoxForClippingAndEffects const):

  • rendering/svg/SVGBoundingBoxComputation.h: Added.

(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox):
(WebCore::SVGBoundingBoxComputation::computeRepaintBoundingBox):
(WebCore::SVGBoundingBoxComputation::computeVisualOverflowRect):

12:53 AM Changeset in webkit [287872] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][a11y] WTR: do not immediately process main thread events while waiting for ax thread task
https://bugs.webkit.org/show_bug.cgi?id=234950

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Run a layout before creating the isolated tree to ensure we get an updated tree after ignored is computed.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::create):

Tools:

We want to process the main thread events while waiting for ax thread to avoid blocking in case the ax thread
needs to get any value from the main thread. This might have side effects causing things to happen earlier than
expected. This patch only process main thread events after 125 milliseconds waiting for the ax thread, because
that probably means the ax thread is waiting for the main thread. This made most of the test to pass in isolated
tree mode with ATSPI.

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::AccessibilityController::executeOnAXThreadAndWait):

12:52 AM Changeset in webkit [287871] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK][a11y] Set active state when element is the selected option active or aria-current isn't false with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235029

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::state const):

Tools:

Add a unit test to check acive state and implement AccessibilityUIElement::currentStateValue().

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testAccessibleState):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::currentStateValue const): Deleted.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

Jan 10, 2022:

11:27 PM Changeset in webkit [287870] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Increase padding around icons in Alignment editor
https://bugs.webkit.org/show_bug.cgi?id=234036
<rdar://problem/86543279>

Reviewed by Devin Rousso.

Increase margin and padding around the icons, making the icons more visually appealing
and easier to distinguish and from each other.

  • UserInterface/Images/AlignContentStretch.svg:

The gap between rectangles was only 0.5px. Increase it to 2px.

  • UserInterface/Views/AlignmentEditor.css:

(.alignment-editor .glyph):
(.alignment-editor .glyph:not(:first-child)):
(.alignment-editor .glyph.selected):
(.alignment-editor .glyph.selected:active):
(.alignment-editor .glyph:not(:last-child)): Deleted.
(.alignment-editor .glyph.selected + .glyph): Deleted.

10:34 PM Changeset in webkit [287869] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, add a bit more Intl.Locale hourCycle tests to investigate flakiness

  • stress/intl-locale-info.js:

(let.l.new.Intl.Locale.shouldBe):
(shouldBe):

9:04 PM Changeset in webkit [287868] by ysuzuki@apple.com
  • 5 edits
    1 copy in trunk/Source/WebCore

Fix Windows build after r287829
https://bugs.webkit.org/show_bug.cgi?id=235054

Reviewed by Sam Weinig.

FTW removal accidentally removed RECT handling in FloatRect while it is not a part of Direct2D.
This patch recovers it. And we also use IntRect in some places since it is proper one.

  • PlatformWin.cmake:
  • platform/graphics/FloatRect.h:
  • platform/graphics/win/FloatRectWin.cpp: Copied from Source/WebCore/platform/graphics/win/IntRectWin.cpp.

(WebCore::FloatRect::FloatRect):

  • platform/graphics/win/IntRectWin.cpp:

(WebCore::IntRect::IntRect):
(WebCore::IntRect::operator RECT const):

  • platform/win/PopupMenuWin.cpp:

(WebCore::monitorFromHwnd):
(WebCore::PopupMenuWin::calculatePositionAndSize):

7:21 PM Changeset in webkit [287867] by Alan Bujtas
  • 3 edits
    2 adds in trunk

null ptr deref in WebCore::LayoutIntegration::LineLayout::collectOverflow()
https://bugs.webkit.org/show_bug.cgi?id=234654
<rdar://problem/86571571>

Reviewed by Antti Koivisto.

Source/WebCore:

needsLayout() check in invalidateLineLayoutPath is insufficient for modern line layout.

m_lineLayout = std::monostate() does not only destroy the line layout object but it also nukes all the IFC geometries.
It is equivalent to having all the child boxes dirty, since in order to re-generate the geometry information,
we have to layout _all_ the boxes (note that nuking the legacy line layout object does not destroy the inline tree).
The bug here is that needsLayout() returns true for cases (e.g. posChildNeedsLayout) when
while the geometry is all gone, we are going to take a special layout codepath which expects pre-computed geometries.

Test: fast/block/line-layout/line-layout-collect-overflow-crash.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::invalidateLineLayoutPath):

LayoutTests:

  • fast/block/line-layout/line-layout-collect-overflow-crash-expected.txt: Added.
  • fast/block/line-layout/line-layout-collect-overflow-crash.html: Added.
6:17 PM Changeset in webkit [287866] by Wenson Hsieh
  • 10 edits in trunk

Followup to r287863 - adjust line wrapping behavior in image overlays
https://bugs.webkit.org/show_bug.cgi?id=235035
rdar://85139146

Reviewed by Tim Horton.

Source/WebCore:

The previous change I landed in r287863 was written under the assumption that -shouldWrap describes whether or
not a recognized line of text should wrap to the next line. However, after trying it out, it seems to indicate
whether or not the previous line of text should wrap to the current line. As a result, the current adoption of
this property is wrong, since the line wrapping is off-by-one.

Fix this by renaming the shouldWrap boolean flag in TextRecognitionLineData to the much less ambiguous name
hasTrailingNewline, and set hasTrailingNewline based on the shouldWrap property of the *next*
VKWKLineInfo.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):

Avoid a potentially even-more-confusing != !! here by using static_cast<> to check the nullity of the
RefPtr.

  • platform/TextRecognitionResult.h:

(WebCore::TextRecognitionLineData::TextRecognitionLineData):
(WebCore::TextRecognitionLineData::encode const):
(WebCore::TextRecognitionLineData::decode):

Make sure we also flip the default from false to true, since hasTrailingNewline is intended to have the
opposite effect as the extant shouldWrap.

  • testing/Internals.cpp:

(WebCore::makeDataForLine):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Use the -shouldWrap property to compute hasTrailingNewline. See WebCore/ChangeLog for more details.

  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::makeTextRecognitionResult):

LayoutTests:

Make a slight adjustment to an existing layout test (i.e. rename shouldWrap to hasTrailingNewline). See
WebCore/ChangeLog for more details.

  • fast/images/text-recognition/image-overlay-line-wrapping.html:
6:01 PM Changeset in webkit [287865] by Dewei Zhu
  • 2 edits in trunk/Tools

Revert r287861.
https://bugs.webkit.org/show_bug.cgi?id=235048
<rdar://problem/87360213>

Unreviewed revert.

Temporarily revert r287861(245905@main) which breaks git-webkit script when
invoked outside of a checkout directory.

  • Scripts/git-webkit:
5:36 PM Changeset in webkit [287864] by sbarati@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Allow loop tier up to the Air tier
https://bugs.webkit.org/show_bug.cgi?id=234587
<rdar://problem/86968638>

Reviewed by Yusuke Suzuki.

This patch adds loop tier up from LLInt -> Air. To implement this, we use
EntrySwitch to point at each loop header, making each loop an entrypoint.
This is unlike BBQ->OMG tier up, where we compile a special OSR entry OMG
callee. This seems like a good architecture for the Air tier, since we might end
up with slightly worse throughput, but we won't need a different compilation
for loops vs call entrypoints.

This patch also fixes a bug in Air's O0 register allocation where it
didn't properly account for all named registers in an instruction. There
was a silly bug where we asked each arg if it were a temp, instead of
asking the Inst for each of its temps, since an Arg can be an address
but still use temps.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitLoad):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::finalizeEntrypoints):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addLoop):
(JSC::Wasm::parseAndCompileAir):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::parseAndCompileB3):
(JSC::Wasm::parseAndCompile): Deleted.

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::prepareImpl):
(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):
(JSC::Wasm::BBQPlan::didCompleteCompilation):
(JSC::Wasm::BBQPlan::initializeCallees):

  • wasm/WasmBBQPlan.h:
  • wasm/WasmCallee.h:
  • wasm/WasmCalleeGroup.h:
  • wasm/WasmFormat.h:
  • wasm/WasmIRGeneratorHelpers.h:

(JSC::Wasm::computeExceptionHandlerAndLoopEntrypointLocations):
(JSC::Wasm::computeExceptionHandlerLocations):

  • wasm/WasmLLIntPlan.cpp:

(JSC::Wasm::LLIntPlan::didCompleteCompilation):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmOSREntryPlan.cpp:

(JSC::Wasm::OSREntryPlan::work):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::WASM_SLOW_PATH_DECL):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

3:48 PM Changeset in webkit [287863] by Wenson Hsieh
  • 11 edits
    2 adds in trunk

Add support for a -shouldWrap property when injecting Live Text
https://bugs.webkit.org/show_bug.cgi?id=235035
rdar://85139146

Reviewed by Tim Horton.

Source/WebCore:

Add support for a new property on VKWKLineInfo to indicate whether or not the line should wrap. If set to true,
we will avoid adding a br element at the end of the div.image-overlay-line that corresponds to the line of
recognized text in the image overlay; currently, we always add this trailing br.

Test: fast/images/text-recognition/image-overlay-line-wrapping.html

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):

Consult the flag when converting each TextRecognitionLineData into shadow DOM elements.

  • platform/TextRecognitionResult.h:

Add the new boolean flag to TextRecognitionLineData, and add encoding/decoding support.

(WebCore::TextRecognitionLineData::TextRecognitionLineData):
(WebCore::TextRecognitionLineData::encode const):
(WebCore::TextRecognitionLineData::decode):

  • testing/Internals.cpp:

(WebCore::makeDataForLine):

Add a way to specify a value for shouldWrap, when using internals to inject image overlay content in layout
and API tests.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebCore/PAL:

Add a forward staging declaration for the new SPI property.

  • pal/spi/cocoa/VisionKitCoreSPI.h:

Source/WebKit:

Consult the new SPI property (behind a runtime selector check), and pass the boolean flag through the
TextRecognitionResult.

  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::makeTextRecognitionResult):

LayoutTests:

Add a layout test to exercise the changes. See WebCore/ChangeLog for more details.

  • fast/images/text-recognition/image-overlay-line-wrapping-expected.txt: Added.
  • fast/images/text-recognition/image-overlay-line-wrapping.html: Added.
3:42 PM Changeset in webkit [287862] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

hasBrokenEncryptedMediaAPISupportQuirk and needsPreloadAutoQuirk have overly permissive domain allow lists
https://bugs.webkit.org/show_bug.cgi?id=222130
<rdar://problem/74758560>

Unreviewed, fix typo introduced in r287855.

  • page/Quirks.cpp:

(WebCore::Quirks::needsPreloadAutoQuirk const): "vimeo" should be "vimeo.com".

3:17 PM Changeset in webkit [287861] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Use cwd as default path
https://bugs.webkit.org/show_bug.cgi?id=235048
<rdar://problem/87360213>

Reviewed by Aakash Jain.

  • Tools/Scripts/git-webkit: Use default path behavior.

Canonical link: https://commits.webkit.org/245905@main

2:58 PM Changeset in webkit [287860] by Wenson Hsieh
  • 5 edits in trunk

Modal container observer should classify elements that are styled like clickable controls
https://bugs.webkit.org/show_bug.cgi?id=235022

Reviewed by Tim Horton.

Source/WebCore:

Broaden the criteria when considering whether or not an element inside of a detected modal container is a
"clickable control". In the case where there are event listeners on the modal container, an element inside of
the modal container that has cursor: pointer; may trigger an action on the modal container when clicked, even
if it does not have event listeners itself. Handle this scenario by considering the element to be a "clickable
control", and extract text from the element for the purposes of control classification.

Test: ModalContainerObservation.DetectControlsWithEventListenersOnModalContainer

  • page/ModalContainerObserver.cpp:

(WebCore::listensToUserActivation):

Factor out this logic into a separate helper function.

(WebCore::isClickableControl):
(WebCore::ModalContainerObserver::collectClickableElements):

Tools:

Add a new API test to exercise the change, and adjust the test harness to allow tests using the harness to
additionally add an event listener on the modal container.

  • TestWebKitAPI/Tests/WebKit/modal-container-custom.html:
  • TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:

(TestWebKitAPI::TEST):

2:36 PM Changeset in webkit [287859] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Retain old commits in pull-request (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=234453
<rdar://problem/86654956>

Unreviewed follow-up fix.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:

(Land.main):

2:34 PM Changeset in webkit [287858] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.1.3

Tag Safari-612.4.9.1.3.

2:18 PM Changeset in webkit [287857] by Jonathan Bedard
  • 5 edits in trunk/Tools

[EWS] Always invoke CleanGitRepo before CheckOutSource
https://bugs.webkit.org/show_bug.cgi?id=234882
<rdar://problem/87145396>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/factories.py:

(Factory.init): Add CleanGitRepo step.
(StyleFactory.init): Ditto.
(WatchListFactory.init): Ditto.
(CommitQueueFactory.init): Specify default branch as 'master.'

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps):

  • Tools/CISupport/ews-build/steps.py:

(CleanGitRepo.init): Accept default_branch and remote.
(CleanGitRepo.run): Construct commands with awareness of branch and remote,
check to see if a basename is specified.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/245902@main

1:57 PM Changeset in webkit [287856] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.0.2

Tag Safari-612.4.9.0.2.

1:54 PM Changeset in webkit [287855] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

hasBrokenEncryptedMediaAPISupportQuirk and needsPreloadAutoQuirk have overly
permissive domain allow lists
https://bugs.webkit.org/show_bug.cgi?id=222130
<rdar://problem/74758560>

Reviewed by Jer Noble.

Fix quirk tests for subdomains of vimeo and hulu by using RegistrableDomain instead
of testing the url directly.

  • page/Quirks.cpp:

(WebCore::Quirks::hasBrokenEncryptedMediaAPISupportQuirk const):
(WebCore::Quirks::needsPreloadAutoQuirk const):

1:45 PM Changeset in webkit [287854] by Chris Dumez
  • 3 edits
    2 adds in trunk

https://brianpeiris.github.io/spatial-audio-test/?ramped stops playing after a few seconds
https://bugs.webkit.org/show_bug.cgi?id=234979

Reviewed by Eric Carlson.

Source/WebCore:

In ConeEffect::gain(), due to precision issues and with certain panner node parameters, it was possible for
sourceToListener.dot(sourceOrientation) to return a value that is very slightly outside the [-1.0, 1.0]
range. We would then call acos() on the dot product and it would thus return NaN.

To addresss this, we now make sure the clamp the dot product to the expected range before calling acos().

I also made the following stylistic changes:

  • Drop unnecessary normalizedSourceOrientation local variable since the sourceOrientation paramter is not const
  • Add missing curly brackets in if conditions with more than one lines (due to comments)
  • Call rad2deg() for readability instead of duplicating its logic here

Test: webaudio/Panner/panner-cone-gain-nan.html

  • platform/audio/Cone.cpp:

(WebCore::ConeEffect::gain const):

LayoutTests:

Add layout test coverage.

  • webaudio/Panner/panner-cone-gain-nan-expected.txt: Added.
  • webaudio/Panner/panner-cone-gain-nan.html: Added.
1:09 PM Changeset in webkit [287853] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Retain old commits in pull-request
https://bugs.webkit.org/show_bug.cgi?id=234453
<rdar://problem/86654956>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:

(Land.main): Find all numbered branches for landing pull-request.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.parser): Add history option.
(PullRequest.main): Add a numbered branch which persists through the life of the pull-request.

Canonical link: https://commits.webkit.org/245899@main

12:18 PM Changeset in webkit [287852] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.5

Tag Safari-613.1.12.1.5.

12:12 PM Changeset in webkit [287851] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.5

12:09 PM Changeset in webkit [287850] by Alan Coon
  • 4 edits
    1 add in branches/safari-612.4.9.1-branch

Cherry-pick r287814. rdar://problem/86845512

Null pointer crash when calling into -[WebView close] in -webView:didCommitLoadForFrame:
https://bugs.webkit.org/show_bug.cgi?id=234994
rdar://86845512

Reviewed by Chris Dumez and Geoff Garen.

Source/WebCore:

Add a null check in FrameLoader::dispatchDidCommitLoad() before calling into any methods on the frame's Page.
Since we called into the client layer to dispatchDidCommitLoad() immediately prior to this, a legacy WebKit
client may have already caused the page to be destroyed (e.g. by closing the web view). Since Frame's pointer
to Page is a WeakPtr, this triggers null derefs when attempting to call either didCommitLoad() or
remoteInspectorInformationDidChange().

Test: WebKitLegacy.CloseWhileCommittingLoad

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::dispatchDidCommitLoad):

Tools:

Add a new API test to exercise the fix.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/CloseWhileCommittingLoad.mm: Added. (-[CloseWhileCommittingLoadDelegate webView:didCommitLoadForFrame:]): (TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287814 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:19 AM Changeset in webkit [287849] by Wenson Hsieh
  • 4 edits in trunk

Modal container observer fails detection when rendered text is inserted after the container
https://bugs.webkit.org/show_bug.cgi?id=234752
rdar://87200177

Reviewed by Tim Horton.

Source/WebCore:

Teach ModalContainerObserver to detect modal containers whose text content is set by script after the container
element itself has already been inserted into the document and laid out. See below for more details.

Test: ModalContainerObservation.DetectModalContainerAfterSettingText

  • page/ModalContainerObserver.cpp:

(WebCore::searchForMatch):

Change this to return two bools: one indicating whether a match was found (i.e. the original return value),
and another indicating whether any rendered text was discovered in the process of searching. In the case where
the viewport-constrained element did not contain any rendered text at all, we avoid adding the element to the
m_elementsToIgnoreWhenSearching set, thereby allowing us to search it again in the future.

(WebCore::ModalContainerObserver::updateModalContainerIfNeeded):
(WebCore::containsMatchingText): Deleted.

Tools:

Add a new API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:

(TestWebKitAPI::TEST):

11:16 AM Changeset in webkit [287848] by commit-queue@webkit.org
  • 69 edits in trunk

Start using C++20
https://bugs.webkit.org/show_bug.cgi?id=233963

Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-10
Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/OptionsCommon.cmake:
  • Source/cmake/WebKitCompilerFlags.cmake:

Source/bmalloc:

  • Configurations/Base.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • DerivedSources.make:
  • heap/Heap.cpp:

(JSC::Heap::addCoreConstraints):

  • runtime/CachedTypes.cpp:
  • runtime/LiteralParser.h:
  • shell/PlatformPlayStation.cmake:

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:
  • Source/webrtc/rtc_base/system/no_unique_address.h:

Source/WebCore:

  • Configurations/Base.xcconfig:
  • DerivedSources.make:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::ensurePlatformContext):

  • platform/ios/wak/WebCoreThread.mm:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:

Source/WebGPU:

  • Configurations/Base.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • PlatformMac.cmake:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):

Source/WebKitLegacy:

  • PlatformMac.cmake:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
  • MigrateHeaders.make:

Source/WTF:

  • Configurations/Base.xcconfig:
  • wtf/DisallowCType.h:
  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::toStdFileSystemPath):
(WTF::FileSystemImpl::fromStdFileSystemPath):

  • wtf/PlatformHave.h:
  • wtf/VectorTraits.h:
  • wtf/text/StringOperators.h:

Tools:

  • DumpRenderTree/DerivedSources.make:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MobileMiniBrowser/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Tests/WTF/Expected.cpp:

(TestWebKitAPI::NonCopyable::NonCopyable):

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/DerivedSources.make:
  • lldb/lldbWebKitTester/Configurations/Base.xcconfig:
11:06 AM Changeset in webkit [287847] by cathiechen
  • 4 edits in trunk

ASSERTION FAILED in RenderLayer::updateClipRects
https://bugs.webkit.org/show_bug.cgi?id=234315

Reviewed by Simon Fraser.

Source/WebCore:

In clippingRootForPainting(), the dialog element uses the top layer as its clipping root layer.
When it caculates the clip rects, it caculates all its ancestors' clip rects and caches them
including the clipping root layer. However, if the ancestor is a transformed layer, it should be
treated as a root layer. When the transformed layer updates its clip rects, the root layer won't
match the one in cache. This patch stops the dialog descendant propagating its clipping root layer
to the ancestors' in cache.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::clipCrossesPaintingBoundary const):

LayoutTests:

11:03 AM Changeset in webkit [287846] by Chris Dumez
  • 1936 edits
    16 copies
    14 moves
    670 adds
    76 deletes in trunk/LayoutTests

Resync web-platform-tests/html from upstream
https://bugs.webkit.org/show_bug.cgi?id=234938

Reviewed by Geoff Garen.

Resync web-platform-tests/html from upstream 03ced021594abbd9e91.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-expected.txt:
  • tests-options.json:
10:50 AM Changeset in webkit [287845] by ntim@apple.com
  • 4 edits in trunk

REGRESSION(r287683): <dialog> elements inside clipped/overflowed elements are no longer shown
https://bugs.webkit.org/show_bug.cgi?id=234984

Reviewed by Simon Fraser.

Source/WebCore:

Paint at the right place by fixing isContainerForPositioned, also fix clip rects.

  • rendering/RenderLayer.cpp:

(WebCore::isContainerForPositioned):
(WebCore::RenderLayer::enclosingAncestorForPosition const):
(WebCore::accumulateOffsetTowardsAncestor):
(WebCore::RenderLayer::calculateClipRects const):

LayoutTests:

Enable relevant tests. Set the asserting test as Crash instead of Skipping.

10:41 AM Changeset in webkit [287844] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[MacCatalyst] Add syscalls from iOS sandbox
https://bugs.webkit.org/show_bug.cgi?id=234970
<rdar://problem/87262730>

Reviewed by Darin Adler.

Add syscalls from iOS sandbox that are not in the MacCatalyst sandbox, since these are potentially
still needed on MacCatalyst.

  • WebProcess/com.apple.WebProcess.sb.in:
10:36 AM Changeset in webkit [287843] by Simon Fraser
  • 1 edit
    1 move
    3 adds in trunk/LayoutTests

REGRESSION (r287431): [Big Sur WK1] fast/scrolling/latching/iframe-latch-small-deltas.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=234996

Reviewed by Ryan Haddad.

Move results from Catalina.

  • platform/mac-bigsur-wk1/fast/scrolling/latching/iframe-latch-small-deltas-expected.txt: Renamed from LayoutTests/platform/mac-catalina-wk1/fast/scrolling/latching/iframe-latch-small-deltas-expected.txt.
10:22 AM Changeset in webkit [287842] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.1

10:17 AM Changeset in webkit [287841] by Russell Epstein
  • 1 copy in branches/safari-613-branch

New branch.

10:08 AM Changeset in webkit [287840] by Alan Coon
  • 8 edits in branches/safari-612.4.9.1-branch/Source

Versioning.

WebKit-7612.4.9.1.3

9:58 AM Changeset in webkit [287839] by Alan Coon
  • 8 edits in branches/safari-612.4.9.0-branch/Source

Versioning.

WebKit-7612.4.9.0.2

9:39 AM Changeset in webkit [287838] by weinig@apple.com
  • 25 edits in trunk

[CSS Color 4] CSS color() function should not clamp channels to the 0-1 range
https://bugs.webkit.org/show_bug.cgi?id=234697

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update tests to include out of gamut examples for RGB types as well as some outside
allowed values for lab/lch/oklab/oklch types (in the latter we clamp as the spec requires.).

  • web-platform-tests/css/css-color/color-function-parsing-expected.txt:
  • web-platform-tests/css/css-color/color-function-parsing.html:
  • web-platform-tests/css/css-color/parsing/color-computed-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-computed.html:
  • web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-mix-computed.html:
  • web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-mix-valid.html:
  • web-platform-tests/css/css-color/parsing/color-valid-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-valid.html:
  • web-platform-tests/css/css-color/parsing/relative-color-computed-expected.txt:
  • web-platform-tests/css/css-color/parsing/relative-color-computed.html:
  • web-platform-tests/css/css-color/parsing/relative-color-valid-expected.txt:
  • web-platform-tests/css/css-color/parsing/relative-color-valid.html:

Source/WebCore:

Allow components outside the the 0-1 range for RGB color function types (e.g. color(srgb -2 15 100)).

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
Remove clamping when parsing RGB color function types (we still clamp for legacy rgb()/rgba() as specified).

(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeColorFunctionParameters):
Switch mapping of RGB color function types to their extended counterparts which allow the extended range.

  • platform/graphics/ColorInterpolationMethod.h:

Switch the RGB interpolation color types to the extended counterparts as well to allow out of gamut mixing.

LayoutTests:

Update tests to include out of gamut examples for RGB types as well as some outside
allowed values for lab/lch/oklab/oklch types (in the latter we clamp as the spec requires.).

  • css3/color/color-function-computed-style-expected.txt:
  • css3/color/color-function-computed-style.html:
  • css3/color/color-function-parsing-expected.txt:
  • css3/color/color-function-parsing.html:
  • fast/css/parsing-color-function-expected.txt:
  • fast/css/parsing-color-function.html:
9:09 AM Changeset in webkit [287837] by commit-queue@webkit.org
  • 4 edits in trunk/Source

postprocess-headers.sh: Avoid redundant processing to speed up incremental Xcode builds
https://bugs.webkit.org/show_bug.cgi?id=234941

Patch by Elliott Williams <Elliott Williams> on 2022-01-10
Reviewed by Jonathan Bedard.

Source/JavaScriptCore:

On builds made with the legacy build system (currently any CLI build for Apple platforms),
postprocess-headers.sh always runs, even when no headers have been copied. PBXBuild doesn't
have the necessary granularity to let us avoid running it when there are no headers to copy,
however, this patch improves execution time by only running the postprocess rule when a
header has changed since the last time it ran.

This change reduces JavaScriptCore's null build time from ~18.3s to ~5.32s.

  • postprocess-headers.sh: Added timestamp check

Source/WebKitLegacy/mac:

  • postprocess-headers.sh:
7:13 AM Changeset in webkit [287836] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Update test expectations for new tests added in r287813
https://bugs.webkit.org/show_bug.cgi?id=235031

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-10

  • platform/glib/TestExpectations:
7:09 AM Changeset in webkit [287835] by graouts@webkit.org
  • 4 edits in trunk

[Web Animations] getKeyframes() for a CSS Animation should not use computed style for keyframes (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235028

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:

Source/WebCore:

In bug 235008, we already improved the situtation by reading from the StyleProperties
associated with the StyleRuleKeyframe for CSS Animations. We're now taking the next
step by reading from the matching rules for the provided element.

There is one remaining case where we use the computed style: when the CSSValue uses
a CSS variable. To fix the css/css-animations/KeyframeEffect-getKeyframes.tentative.html
WPT entirely, we'll need to be able to substitute those in the output.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):

5:10 AM Changeset in webkit [287834] by Nikolas Zimmermann
  • 6 edits
    2 adds in trunk/Source/WebCore

[LBSE] Begin layer-aware RenderSVGRect implementation
https://bugs.webkit.org/show_bug.cgi?id=234992

Reviewed by Rob Buis.

Create RenderSVGRect as copy of LegacyRenderSVGRect, inheriting from
RenderSVGShape (and thus RenderLayerModelObject) instead of
LegacyRenderSVGShape, as LegacyRenderSVGRect does.

This patch does not yet enable the creation of RenderSVGRect
renderers if LBSE is enabled, this is postponed until more
functionality is fully available in LBSE (such as layout!).

Covered by existing tests, no change in behaviour.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/svg/LegacyRenderSVGModelObject.cpp:

(WebCore::LegacyRenderSVGModelObject::clippedOverflowRect const):
(WebCore::LegacyRenderSVGModelObject::nodeAtPoint):

  • rendering/svg/RenderSVGRect.cpp: Added.

(WebCore::RenderSVGRect::RenderSVGRect):
(WebCore::RenderSVGRect::rectElement const):
(WebCore::RenderSVGRect::updateShapeFromElement):
(WebCore::RenderSVGRect::fillShape const):
(WebCore::RenderSVGRect::strokeShape const):
(WebCore::RenderSVGRect::shapeDependentStrokeContains):
(WebCore::RenderSVGRect::shapeDependentFillContains const):
(WebCore::RenderSVGRect::isRenderingDisabled const):

  • rendering/svg/RenderSVGRect.h: Added.
  • rendering/svg/SVGResources.cpp:
  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::createElementRenderer):

4:48 AM Changeset in webkit [287833] by Carlos Garcia Campos
  • 10 edits
    11 moves
    10 deletes in trunk

[GTK][a11y] WTR: do not show html-id and toolkit attributes in test results
https://bugs.webkit.org/show_bug.cgi?id=235024

Reviewed by Adrian Perez de Castro.

Tools:

The html-id attribute is an internal one used by WTR to get the accessible of an element by its id. The toolkit
attribute will make the results different for every platform. Also sort the attributes to ensure same results
even if the order is different among platforms.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::attributesOfElement):

LayoutTests:

Update results.

  • accessibility/gtk/aria-autocomplete-expected.txt:
  • accessibility/gtk/aria-current-expected.txt:
  • accessibility/gtk/aria-keyshortcuts-expected.txt:
  • accessibility/gtk/aria-readonly-propagated-expected.txt:
  • accessibility/gtk/object-attributes-expected.txt:
  • platform/glib/accessibility/content-editable-as-textarea-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/content-editable-as-textarea-expected.txt.
  • platform/glib/accessibility/image-link-expected.txt: Renamed from LayoutTests/platform/wpe/accessibility/image-link-expected.txt.
  • platform/glib/accessibility/image-map2-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/image-map2-expected.txt.
  • platform/glib/accessibility/lists-expected.txt: Renamed from LayoutTests/platform/wpe/accessibility/lists-expected.txt.
  • platform/glib/accessibility/table-attributes-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-attributes-expected.txt.
  • platform/glib/accessibility/table-cell-spans-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-cell-spans-expected.txt.
  • platform/glib/accessibility/table-cells-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-cells-expected.txt.
  • platform/glib/accessibility/table-one-cell-expected.txt: Renamed from LayoutTests/platform/wpe/accessibility/table-one-cell-expected.txt.
  • platform/glib/accessibility/table-sections-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-sections-expected.txt.
  • platform/glib/accessibility/table-with-rules-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-with-rules-expected.txt.
  • platform/glib/accessibility/transformed-element-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/transformed-element-expected.txt.
  • platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt:
  • platform/gtk/accessibility/image-link-expected.txt: Removed.
  • platform/gtk/accessibility/lists-expected.txt: Removed.
  • platform/gtk/accessibility/table-one-cell-expected.txt: Removed.
  • platform/wpe/accessibility/image-map2-expected.txt: Removed.
  • platform/wpe/accessibility/table-attributes-expected.txt: Removed.
  • platform/wpe/accessibility/table-cell-spans-expected.txt: Removed.
  • platform/wpe/accessibility/table-cells-expected.txt: Removed.
  • platform/wpe/accessibility/table-sections-expected.txt: Removed.
  • platform/wpe/accessibility/table-with-rules-expected.txt: Removed.
  • platform/wpe/accessibility/transformed-element-expected.txt: Removed.
1:47 AM Changeset in webkit [287832] by Nikolas Zimmermann
  • 21 edits
    3 adds in trunk/Source/WebCore

[LBSE] Begin layer-aware RenderSVGShape implementation
https://bugs.webkit.org/show_bug.cgi?id=234954

Reviewed by Rob Buis.

Begin implementing RenderSVGShape, based on the downstream version in the
LBSE branch. Many parts are 1:1 copies from LegacyRenderSVGShape, although
the core methods for layout / paint / hit-testing looks quite different in
RenderSVGShape -- the code is mostly adapted from layer-aware CSS renderers
such as RenderBox / RenderBlock taking SVG specifics into account.

This patch hooks in RenderSVGShape in all places that used to handle
LegacyRenderSVGShape, e.g. in AccessibilityRenderObject. However no
renderer inherits from RenderSVGShape yet -- a follow-up patch will
introduce RenderSVGRect.

Covered by existing tests, no change in behaviour.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::supportsPath const):
(WebCore::AccessibilityRenderObject::elementPath const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/svg/RenderSVGResource.cpp:

(WebCore::RenderSVGResource::fillAndStrokePathOrShape const):

  • rendering/svg/RenderSVGResource.h:

(WebCore::RenderSVGResource::postApplyResource):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::postApplyResource):

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

(WebCore::RenderSVGResourceGradient::postApplyResource):

  • rendering/svg/RenderSVGResourceGradient.h:
  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::postApplyResource):

  • rendering/svg/RenderSVGResourcePattern.h:
  • rendering/svg/RenderSVGResourceSolidColor.cpp:

(WebCore::RenderSVGResourceSolidColor::postApplyResource):

  • rendering/svg/RenderSVGResourceSolidColor.h:
  • rendering/svg/RenderSVGShape.cpp: Added.

(WebCore::RenderSVGShape::RenderSVGShape):
(WebCore::RenderSVGShape::updateShapeFromElement):
(WebCore::RenderSVGShape::isEmpty const):
(WebCore::RenderSVGShape::fillShape const):
(WebCore::RenderSVGShape::strokeShape const):
(WebCore::RenderSVGShape::shapeDependentStrokeContains):
(WebCore::RenderSVGShape::shapeDependentFillContains const):
(WebCore::RenderSVGShape::fillContains):
(WebCore::RenderSVGShape::strokeContains):
(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::nonScalingStrokePath const):
(WebCore::RenderSVGShape::setupNonScalingStrokeContext):
(WebCore::RenderSVGShape::nonScalingStrokeTransform const):
(WebCore::RenderSVGShape::shouldGenerateMarkerPositions const):
(WebCore::RenderSVGShape::fillShape):
(WebCore::RenderSVGShape::strokeShape):
(WebCore::RenderSVGShape::fillStrokeMarkers):
(WebCore::RenderSVGShape::paint):
(WebCore::RenderSVGShape::isPointInFill):
(WebCore::RenderSVGShape::isPointInStroke):
(WebCore::RenderSVGShape::getTotalLength const):
(WebCore::RenderSVGShape::getPointAtLength const):
(WebCore::RenderSVGShape::nodeAtPoint):
(WebCore::markerForType):
(WebCore::RenderSVGShape::computeMarkerBoundingBox const):
(WebCore::RenderSVGShape::calculateObjectBoundingBox const):
(WebCore::RenderSVGShape::calculateStrokeBoundingBox const):
(WebCore::RenderSVGShape::strokeWidth const):
(WebCore::RenderSVGShape::hasSmoothStroke const):
(WebCore::RenderSVGShape::drawMarkers):
(WebCore::RenderSVGShape::createPath const):
(WebCore::RenderSVGShape::processMarkerPositions):
(WebCore::RenderSVGShape::styleWillChange):

  • rendering/svg/RenderSVGShape.h: Added.

(WebCore::RenderSVGShape::setNeedsShapeUpdate):
(WebCore::RenderSVGShape::hasPath const):
(WebCore::RenderSVGShape::path const):
(WebCore::RenderSVGShape::clearPath):
(WebCore::RenderSVGShape::hasNonScalingStroke const):

  • rendering/svg/RenderSVGShapeInlines.h: Added.

(WebCore::RenderSVGShape::graphicsElement const):

  • rendering/svg/SVGRenderSupport.cpp:
  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGPaintingResource):
(WebCore::writeSVGFillPaintingResource):
(WebCore::writeSVGStrokePaintingResource):
(WebCore::writeStyle):
(WebCore::writeSVGGraphicsElement):
(WebCore::operator<<):
(WebCore::write):

  • rendering/svg/SVGRenderTreeAsText.h:
  • svg/SVGAnimateMotionElement.cpp:
  • svg/SVGGeometryElement.cpp:

(WebCore::SVGGeometryElement::getTotalLength const):
(WebCore::SVGGeometryElement::getPointAtLength const):
(WebCore::SVGGeometryElement::isPointInFill):
(WebCore::SVGGeometryElement::isPointInStroke):

  • svg/SVGLineElement.cpp:
12:45 AM Changeset in webkit [287831] by youenn@apple.com
  • 2 edits in trunk/Source/WTF

Compile out ENABLE_MEDIA_CAPTURE on WATCHOS and APPLETV
https://bugs.webkit.org/show_bug.cgi?id=234946
<rdar://87126228>

Reviewed by Sam Weinig.

  • wtf/PlatformEnableCocoa.h:

Jan 9, 2022:

11:55 PM Changeset in webkit [287830] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

Unreviewed WPT update after https://github.com/web-platform-tests/wpt/pull/32222.

  • web-platform-tests/css/css-transitions/transition-property-002-expected.txt:
  • web-platform-tests/css/css-transitions/transition-property-002.html:
7:39 PM Changeset in webkit [287829] by weinig@apple.com
  • 99 edits
    54 deletes in trunk

.:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

  • Source/cmake/OptionsFTW.cmake: Removed.

Source/JavaScriptCore:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

Direct2D and FTW have not been building for over a year. It is
time to remove them.

  • PlatformFTW.cmake: Removed.

Source/ThirdParty/ANGLE:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

Direct2D and FTW have not been building for over a year. It is
time to remove them.

  • PlatformFTW.cmake: Removed.

Source/WebCore:
Remove support for Direct2D / FTW
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

Direct2D and FTW have not been building for over a year. It is
time to remove them.

  • PlatformAppleWin.cmake:
  • PlatformFTW.cmake: Removed.
  • PlatformWin.cmake:
  • page/CaptionUserPreferencesMediaAF.cpp:
  • page/CaptionUserPreferencesMediaAF.h:
  • page/win/FrameWinDirect2D.cpp: Removed.
  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::createMIMETypeRegistryThreadGlobalData):

  • platform/graphics/BifurcatedGraphicsContext.cpp:
  • platform/graphics/BifurcatedGraphicsContext.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded):
(WebCore::BitmapImage::nativeImage):
(WebCore::BitmapImage::nativeImageForCurrentFrame):
(WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame):
(WebCore::BitmapImage::nativeImageOfSize):
(WebCore::BitmapImage::draw):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Font.h:
  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::dwFont const): Deleted.
(WebCore::FontPlatformData::dwFontFace const): Deleted.

  • platform/graphics/Gradient.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Image.h:

(WebCore::Image::nativeImage):
(WebCore::Image::nativeImageForCurrentFrame):
(WebCore::Image::preTransformedNativeImageForCurrentFrame):
(WebCore::Image::nativeImageOfSize):

  • platform/graphics/ImageDecoder.cpp:

(WebCore::ImageDecoder::create):
(WebCore::ImageDecoder::supportsMediaType):

  • platform/graphics/ImageDecoder.h:
  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::setTargetContext): Deleted.

  • platform/graphics/ImageSource.h:
  • platform/graphics/NullGraphicsContext.h:
  • platform/graphics/Path.cpp:

(WebCore::Path::length const):
(WebCore::Path::addRoundedRect):

  • platform/graphics/Path.h:
  • platform/graphics/Pattern.h:
  • platform/graphics/PlatformImage.h:
  • platform/graphics/PlatformImageBuffer.h:
  • platform/graphics/PlatformImageBufferBackend.h:
  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:

(WebCore::CDMSessionAVFoundationCF::generateKeyRequest):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::paint):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::drawPDFPage):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/opentype/OpenTypeMathData.cpp:

(WebCore::OpenTypeMathData::OpenTypeMathData):

  • platform/graphics/opentype/OpenTypeUtilities.cpp:

(WebCore::renameAndActivateFont):

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents):

  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::updateContents):

  • platform/graphics/win/BackingStoreBackendDirect2D.h: Removed.
  • platform/graphics/win/BackingStoreBackendDirect2DImpl.cpp: Removed.
  • platform/graphics/win/BackingStoreBackendDirect2DImpl.h: Removed.
  • platform/graphics/win/ColorDirect2D.cpp: Removed.
  • platform/graphics/win/ComplexTextControllerDirectWrite.cpp: Removed.
  • platform/graphics/win/ComplexTextControllerUniscribe.cpp:
  • platform/graphics/win/Direct2DOperations.cpp: Removed.
  • platform/graphics/win/Direct2DOperations.h: Removed.
  • platform/graphics/win/Direct2DUtilities.cpp: Removed.
  • platform/graphics/win/Direct2DUtilities.h: Removed.
  • platform/graphics/win/DirectWriteUtilities.cpp: Removed.
  • platform/graphics/win/DirectWriteUtilities.h: Removed.
  • platform/graphics/win/FloatPointDirect2D.cpp: Removed.
  • platform/graphics/win/FloatRectDirect2D.cpp: Removed.
  • platform/graphics/win/FloatSizeDirect2D.cpp: Removed.
  • platform/graphics/win/FontCascadeDirect2D.cpp: Removed.
  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData):

  • platform/graphics/win/FontPlatformDataDirect2D.cpp: Removed.
  • platform/graphics/win/GlyphPageTreeNodeDirect2D.cpp: Removed.
  • platform/graphics/win/GradientDirect2D.cpp: Removed.
  • platform/graphics/win/GraphicsContextDirect2D.cpp: Removed.
  • platform/graphics/win/GraphicsContextGLDirect2D.cpp: Removed.
  • platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h: Removed.
  • platform/graphics/win/GraphicsContextWin.cpp:
  • platform/graphics/win/GraphicsContextWin.h:
  • platform/graphics/win/GraphicsLayerDirect2D.cpp: Removed.
  • platform/graphics/win/GraphicsLayerDirect2D.h: Removed.
  • platform/graphics/win/ImageBufferDirect2DBackend.cpp: Removed.
  • platform/graphics/win/ImageBufferDirect2DBackend.h: Removed.
  • platform/graphics/win/ImageDecoderDirect2D.cpp: Removed.
  • platform/graphics/win/ImageDecoderDirect2D.h: Removed.
  • platform/graphics/win/ImageDirect2D.cpp: Removed.
  • platform/graphics/win/NativeImageDirect2D.cpp: Removed.
  • platform/graphics/win/PathDirect2D.cpp: Removed.
  • platform/graphics/win/PatternDirect2D.cpp: Removed.
  • platform/graphics/win/PlatformContextDirect2D.cpp: Removed.
  • platform/graphics/win/PlatformContextDirect2D.h: Removed.
  • platform/graphics/win/SimpleFontDataDirect2D.cpp: Removed.
  • platform/graphics/win/TextAnalyzerHelper.cpp: Removed.
  • platform/graphics/win/TextAnalyzerHelper.h: Removed.
  • platform/graphics/win/TransformationMatrixDirect2D.cpp: Removed.
  • platform/win/DragImageDirect2D.cpp: Removed.
  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::allocateBackingStoreIfNeeded):
(WebCore::RenderLayerFilters::beginFilterEffect):

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

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::createImageBuffer):

  • rendering/svg/SVGRenderingContext.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::nativeImageForCurrentFrame):

  • svg/graphics/SVGImageForContainer.h:

Source/WebCore/PAL:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

Direct2D and FTW have not been building for over a year. It is
time to remove them.

  • pal/PlatformFTW.cmake: Removed.

Source/WebKit:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

Direct2D and FTW have not been building for over a year. It is
time to remove them.

  • PlatformFTW.cmake: Removed.
  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::Configuration::encode const):
(WebKit::ShareableBitmap::Configuration::decode):
(WebKit::ShareableBitmap::ShareableBitmap):
(WebKit::ShareableBitmap::~ShareableBitmap):
(WebKit::ShareableBitmap::numBytesForSize):

  • Shared/ShareableBitmap.h:

(WebKit::ShareableBitmap::createPlatformImage):
(WebKit::ShareableBitmap::dxSurface): Deleted.

  • Shared/win/ShareableBitmapDirect2D.cpp: Removed.
  • UIProcess/BackingStore.cpp:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/win/BackingStoreDirect2D.cpp: Removed.
  • UIProcess/win/WebPageProxyWin.cpp:

(WebKit::WebPageProxy::device const): Deleted.
(WebKit::WebPageProxy::setDevice): Deleted.

  • UIProcess/win/WebPopupMenuProxyWin.cpp:

(WebKit::WebPopupMenuProxyWin::showPopupMenu):
(WebKit::WebPopupMenuProxyWin::paint):
(WebKit::WebPopupMenuProxyWin::setupSwapChain): Deleted.
(WebKit::WebPopupMenuProxyWin::configureBackingStore): Deleted.

  • UIProcess/win/WebPopupMenuProxyWin.h:
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::WebView):
(WebKit::WebView::onSizeEvent):
(WebKit::WebView::setupSwapChain): Deleted.
(WebKit::WebView::configureBackingStore): Deleted.

  • UIProcess/win/WebView.h:

(WebKit::WebView::d3dDevice const): Deleted.
(WebKit::WebView::d3dImmediateContext const): Deleted.

  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::show):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::display):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::getImageForFindMatch):

Source/WebKitLegacy:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

Direct2D and FTW have not been building for over a year. It is
time to remove them.

  • PlatformFTW.cmake: Removed.

Source/WebKitLegacy/win:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

Direct2D and FTW have not been building for over a year. It is
time to remove them.

  • WebView.cpp:

(WebView::deleteBackingStore):
(WebView::ensureBackingStore):
(WebView::scrollBackingStore):
(WebView::sizeChanged):
(WebView::updateBackingStore):
(WebView::paint):
(WebView::paintIntoBackingStore):
(WebView::WebViewWndProc):
(WebView::notifyPreferencesChanged):
(WebView::paintWithDirect2D): Deleted.

  • WebView.h:

Source/WTF:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

  • wtf/PlatformFTW.cmake: Removed.

Tools:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999

Reviewed by Darin Adler.

Direct2D and FTW have not been building for over a year. It is
time to remove them.

  • DumpRenderTree/PixelDumpSupport.cpp:
  • DumpRenderTree/PlatformWin.cmake:
  • DumpRenderTree/win/PixelDumpSupportDirect2D.cpp: Removed.
  • DumpRenderTree/win/PixelDumpSupportDirect2D.h: Removed.
  • DumpRenderTree/win/PixelDumpSupportWin.cpp:

(createBitmapContextFromWebView):

  • PlatformFTW.cmake: Removed.
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dumpDOMAsWebArchive):

  • WebKitTestRunner/PlatformFTW.cmake: Removed.
  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/win/PlatformWebViewWin.cpp:
  • WebKitTestRunner/win/TestInvocationDirect2D.cpp: Removed.
1:38 PM Changeset in webkit [287828] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

Style::Resolver::keyframeRulesForName() signature should be improved
https://bugs.webkit.org/show_bug.cgi?id=235021

Reviewed by Darin Adler.

Darin pointed out during the review for bug 235008 that the method itself
should be const, not its return value.

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::keyframeRulesForName const):
(WebCore::Style::Resolver::keyframeRulesForName): Deleted.

  • style/StyleResolver.h:
1:19 PM Changeset in webkit [287827] by graouts@webkit.org
  • 5 edits
    2 adds in trunk

Implicit keyframe for a CSS Animation should always use the underlying style
https://bugs.webkit.org/show_bug.cgi?id=235014

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add a new WPT which changes the underlying style for a property that is being
animated with an @keyframes rule that doesn't explicitly specify this value
on all keyframes.

  • web-platform-tests/css/css-animations/animation-change-underlying-value-changed-in-flight-expected.txt: Added.
  • web-platform-tests/css/css-animations/animation-change-underlying-value-changed-in-flight.html: Added.

Source/WebCore:

When resolving keyframes for a CSS Animation in Style::Resolver::keyframeStylesForAnimation(),
we would fill implicit keyframes based on the style at the time the animation was created.
However, the underlying style may change at any point while the CSS Animation is in flight,
so we should not be filling those values.

The code that actually resolves animated styles already knows how to handle this case, which
we already supported correctly for JS-originated animations. The only thing we need to do is
to ensure we fill implicit keyframes when calling getKeyframes().

This surfaced an issue with KeyframeList::copyKeyframes() where we only copied the styles
from one set of keyframes to another, but not the timing function, which would cause a
getKeyframes() test to regress. We should also make sure to copy the composite operation
for when we support the animation-composition property (see bug 232086).

Test: imported/w3c/web-platform-tests/css/css-animations/animation-change-underlying-value-changed-in-flight.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::copyKeyframes):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::keyframeStylesForAnimation):

11:51 AM Changeset in webkit [287826] by graouts@webkit.org
  • 4 edits in trunk

Interpolation for the "filter" property fails with a single keyframe
https://bugs.webkit.org/show_bug.cgi?id=235019

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/filter-effects/animation/filter-interpolation-001-expected.txt:

Source/WebCore:

In the case of an animation with a single keyframe, the 0% or 100% value (or both) may
be implicit and the blending keyframes can have fewer than to entries. This would make
KeyframeEffect::checkForMatchingFilterFunctionLists() always store "false" values for
whether "filter" values in keyframes match and prevent any blending from happening.

In the case where we have fewer than 2 values, as long as the property is animated,
we return true.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::checkForMatchingFilterFunctionLists const):

10:54 AM Changeset in webkit [287825] by weinig@apple.com
  • 7 edits in trunk/Source/WebCore

Refactor CSS property parsing helpers to be a bit more composable
https://bugs.webkit.org/show_bug.cgi?id=234869

Reviewed by Darin Adler.

Refactors primitive CSS property parsing to be built on a new composable set of
lower level primitives.

The lowest level primitive is now a "consumer" struct that only knows how to consume
a particular type for a particular token type. For example, NumberRawKnownTokenTypeNumberConsumer
only knows how to consume and return a NumberRaw if the token type is a NumberToken.

For these token specific consumers to be useful, they need to be combined together. To
do this, a higher level meta-consumer type that is not tied to a specific token is used.
These are defined as empty structs with 'using' statements to indicate which low level
consumers to use for which token token types. For example:

struct NumberRawConsumer {

using Result = std::optional<NumberRaw>;

using FunctionToken = NumberRawKnownTokenTypeFunctionConsumer;
using NumberToken = NumberRawKnownTokenTypeNumberConsumer;

};

This meta-consumer definition defines a consumer that utilizes two lower level token
specific consumers for function and number tokens.

To actuall do something with this meta-consumer definition, the consumeMetaConsumer<>(...)
function is used, which introspects which using statements are defined, and dispatches to
the corresponding token specific consumer (see MetaConsumerDispatcher for how introspection works).

In addition to primitive meta-consumer definitions, there are also definitions for meta-consumers
that can consumer more complex things without duplicate work. For example, AngleOrPercentConsumer
is a meta-consumer that consumes either an Angle or a Percent. To deal with the fact that both
of these want to operate on function tokens, the SameTokenMetaConsumer allows concatenating multiple
per-token consumers (in this case, two function token consumers) together.

Meta-consumer definitions can also define, or allow defining via a template parameter, a Transformer,
which, as the name implies, transform the output. For example, the AngleOrNumberRawToDegressTransformer
can be used to ensure that the result is a number in degrees, and doesn't have to be unwrapped by
the user.

The goal is avoid the combinatorial explosition of functions branching on token type for
more and more specialized parsing needs. For instance, an upcomping change will want to
extend consumeNumberOrPercentRawAllowingSymbolTableIdent and a few other related consumers
to also consume the identifier 'none'. Rather than duplicating all the logic, this allows
for just defining a few meta-consumer definitions utilizing almost entirely existing lower
level consumers.

  • css/MediaQueryExpression.cpp:

(WebCore::consumeFirstValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontVariationTag):
(WebCore::consumeCubicBezier):
(WebCore::consumeSpringFunction):
(WebCore::consumePerspective):
(WebCore::consumeCursor):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeCounterStylePad):
(WebCore::consumeCounterStyleAdditiveSymbols):
(WebCore::consumeBasePaletteDescriptor):
(WebCore::consumeOverrideColorsDescriptor):
(WebCore::CSSPropertyParser::consumeFlex):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::CalcParser):
(WebCore::CSSPropertyParserHelpers::consumeCalcRawWithKnownTokenTypeFunction):
(WebCore::CSSPropertyParserHelpers::computeMinimumValue):
(WebCore::CSSPropertyParserHelpers::IntegerTypeRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IntegerTypeRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IntegerTypeKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IntegerTypeKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::validatedNumberRaw):
(WebCore::CSSPropertyParserHelpers::NumberRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::validatedPercentRaw):
(WebCore::CSSPropertyParserHelpers::PercentRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentRawKnownTokenTypePercentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentCSSPrimitiveValueWithCalcWithKnownTokenTypePercentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthRawKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleRawKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::ResolutionCSSPrimitiveValueWithKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::TransformApplier::apply):
(WebCore::CSSPropertyParserHelpers::applyTransform):
(WebCore::CSSPropertyParserHelpers::IdentityTransformer::transform):
(WebCore::CSSPropertyParserHelpers::RawVariantTransformerBase::transform):
(WebCore::CSSPropertyParserHelpers::AngleOrNumberRawToDegressTransformer::transform):
(WebCore::CSSPropertyParserHelpers::NumberOrPercentDividedBy100Transformer::transform):
(WebCore::CSSPropertyParserHelpers::MetaConsumerDispatcher::consume):
(WebCore::CSSPropertyParserHelpers::consumeMetaConsumer):
(WebCore::CSSPropertyParserHelpers::SameTokenMetaConsumerApplier::consume):
(WebCore::CSSPropertyParserHelpers::SameTokenMetaConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthOrPercentRawTransformer::transform):
(WebCore::CSSPropertyParserHelpers::AngleOrNumberRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberOrPercentRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeRaw):
(WebCore::CSSPropertyParserHelpers::consumeIntegerType):
(WebCore::CSSPropertyParserHelpers::consumeIntegerRaw):
(WebCore::CSSPropertyParserHelpers::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeIntegerZeroAndGreaterRaw):
(WebCore::CSSPropertyParserHelpers::consumeIntegerZeroAndGreater):
(WebCore::CSSPropertyParserHelpers::consumePositiveIntegerRaw):
(WebCore::CSSPropertyParserHelpers::consumePositiveInteger):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumePercentRaw):
(WebCore::CSSPropertyParserHelpers::consumePercentAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumePercent):
(WebCore::CSSPropertyParserHelpers::consumePercentWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::consumeLength):
(WebCore::CSSPropertyParserHelpers::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngle):
(WebCore::CSSPropertyParserHelpers::consumeAngleWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeTime):
(WebCore::CSSPropertyParserHelpers::consumeResolution):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlphaAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentNumber):
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentPercentage):
(WebCore::CSSPropertyParserHelpers::RGBNormalizingTransformer::transform):
(WebCore::CSSPropertyParserHelpers::consumeRelativeRGBComponent):
(WebCore::CSSPropertyParserHelpers::clampRGBComponent):
(WebCore::CSSPropertyParserHelpers::consumeRGBOrHSLOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::parseColorContrastFunctionParameters):
(WebCore::CSSPropertyParserHelpers::consumeColorMixComponent):
(WebCore::CSSPropertyParserHelpers::consumePositionComponent):
(WebCore::CSSPropertyParserHelpers::consumePositionCoordinates):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop):
(WebCore::CSSPropertyParserHelpers::consumeCrossFade):
(WebCore::CSSPropertyParserHelpers::consumeLineHeightRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeInteger): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeIntegerTypeRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumberRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumePercentRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeAngleRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeLengthRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeRawWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawWithKnownTokenTypeIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentRawWithKnownTokenTypePercentage): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentRawWithKnownTokenTypeIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentCSSPrimitiveValueWithCalcWithKnownTokenTypePercentage): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthRawWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthRawWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthCSSPrimitiveValueWithCalcWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleCSSPrimitiveValueWithCalcWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeTimeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeTimeCSSPrimitiveValueWithCalcWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeTimeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawOrNumberRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawOrNumberRawAllowingSymbolTableIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentDividedBy100Raw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentRawAllowingSymbolTableIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentDividedBy100RawAllowingSymbolTableIdent): Deleted.

  • css/parser/CSSPropertyParserHelpers.h:
  • css/parser/CSSPropertyParserWorkerSafe.cpp:

(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFeatureTag):

  • style/StyleResolveForFontRaw.cpp:

(WebCore::Style::resolveForFontRaw):

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

[LFC][IFC] Introduce a dedicated structure for Line::Run's trailing whitespace information
https://bugs.webkit.org/show_bug.cgi?id=235010

Reviewed by Antti Koivisto.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::Run::trailingWhitespaceType):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::removeTrailingWhitespace):
(WebCore::Layout::m_bidiLevel): Deleted.
(WebCore::Layout::m_textContent): Deleted.

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::hasTrailingWhitespace const):
(WebCore::Layout::Line::Run::trailingWhitespaceWidth const):
(WebCore::Layout::Line::Run::hasCollapsibleTrailingWhitespace const):
(WebCore::Layout::Line::Run::hasCollapsedTrailingWhitespace const):
(WebCore::Layout::Line::Run::trailingWhitespaceType const): Deleted.

10:18 AM Changeset in webkit [287823] by Ziran Sun
  • 33 edits
    2 copies
    2 moves
    13 adds in trunk/LayoutTests

[css-grid] Resync web-platform-tests/css/css-grid tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=234879

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-002-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-002-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-002-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-003-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-004-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-003-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-004-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-003-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-004-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-002-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-002-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-002.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-002-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-003-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-004-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-003-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-004-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-003-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-004-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-container-auto-margins-scrollbars-001-expected.html:
  • web-platform-tests/css/css-grid/alignment/grid-content-alignment-with-abspos-001-expected.txt: Added.
  • web-platform-tests/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html: Added.
  • web-platform-tests/css/css-grid/alignment/self-baseline/w3c-import.log:
  • web-platform-tests/css/css-grid/alignment/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-definition/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-items/grid-intrinsic-maximums-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-intrinsic-maximums.html: Added.
  • web-platform-tests/css/css-grid/grid-items/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-model/grid-container-scrollbars-sizing-002-expected.html:
  • web-platform-tests/css/css-grid/grid-model/w3c-import.log:
  • web-platform-tests/css/css-grid/layout-algorithm/flex-tracks-with-fractional-size-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-expected.xht.
  • web-platform-tests/css/css-grid/layout-algorithm/flex-tracks-with-fractional-size.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/w3c-import.log:
  • web-platform-tests/css/css-grid/nested-grid-item-block-size-001-expected.html: Added.
  • web-platform-tests/css/css-grid/nested-grid-item-block-size-001.html: Added.
  • web-platform-tests/css/css-grid/parsing/grid-area-computed-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-area-computed.html:
  • web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-expected.xht.
  • web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows.html.
  • web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-expected.xht.
  • web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-002.html: Added.
  • web-platform-tests/css/css-grid/placement/w3c-import.log:
  • web-platform-tests/css/css-grid/subgrid/grid-subgridded-axis-auto-repeater-crash-001.html: Added.
  • web-platform-tests/css/css-grid/subgrid/grid-subgridded-axis-auto-repeater-crash-002.html: Added.
  • web-platform-tests/css/css-grid/subgrid/grid-template-invalid.html: Added.
  • web-platform-tests/css/css-grid/subgrid/grid-template-valid.html: Added.
  • web-platform-tests/css/css-grid/subgrid/w3c-import.log:
  • web-platform-tests/css/css-grid/support/colors-8x16.png: Added.
  • web-platform-tests/css/css-grid/support/w3c-import.log:

LayoutTests:

10:13 AM Changeset in webkit [287822] by graouts@webkit.org
  • 4 edits in trunk

translate() function in transform property should remove trailing 0 value when parsing
https://bugs.webkit.org/show_bug.cgi?id=235016

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progression.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:

Source/WebCore:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeTransformValue):

10:06 AM Changeset in webkit [287821] by weinig@apple.com
  • 5 edits in trunk/Source

Add helpers to access CoreGraphics color spaces more easily in generic contexts
https://bugs.webkit.org/show_bug.cgi?id=235004

Reviewed by Darin Adler.

Source/WebCore:

Add some structs and type trait helpers to allow accessing the CoreGraphics
CGColorSpaceRef associated with a ColorSpace enum value at compile time. This
will be useful for generalizing some of the gradient rendering code optimizations
I have planned.

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::colorSpaceForCGColorSpace):

  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::CGColorSpaceMapping<ColorSpace::SRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::A98RGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::DisplayP3>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedA98RGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedDisplayP3>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedRec2020>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedLinearSRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedProPhotoRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedSRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::Rec2020>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::LinearSRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ProPhotoRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::XYZ_D50>::colorSpace):
(WebCore::CGColorSpaceMappingGetter::colorSpace):
(WebCore::cachedNullableCGColorSpace):

Source/WTF:

  • wtf/PlatformHave.h:

Update have macro, HAVE_CORE_GRAPHICS_XYZ_COLOR_SPACE, to have a more specific name,
HAVE_CORE_GRAPHICS_XYZ_D50_COLOR_SPACE, which is really what it is.

7:35 AM Changeset in webkit [287820] by graouts@webkit.org
  • 6 edits in trunk

[Web Animations] getKeyframes() for a CSS Animation should not use computed style for keyframes
https://bugs.webkit.org/show_bug.cgi?id=235008

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progression.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:

Source/WebCore:

Until now, when calling getKeyframes() on a keyframe effect associated with a CSS Animation, we would
serialize for each keyframe the computed style for the animated properties. However, the Web Aniations
spec says (https://drafts.csswg.org/web-animations-1/#dom-keyframeeffect-getkeyframes) that the value
to use should "be the result of serializing the property value of declaration by passing declaration
to the algorithm to serialize a CSS value [CSSOM]."

One way we can get to the value as specified on the @keyframes rule rather than the computed style
is to access the StyleRuleKeyframe object directly as stored by the Style::Resolver. This keeps the
raw CSSValues as parsed.

To do this, we first refactor Style::Resolver::keyframeStylesForAnimation() such that all the code
that creates a Vector<Ref<StyleRuleKeyframe>> with deduplicated keyframe rules is in the new dedicated
method Style::Resolver::keyframeRulesForName().

Then, in KeyframeEffect::getKeyframes(), we can call into this function to obtain the set of keyframe
rules for the associated CSS Animation's name and read the style from there. Note that these values
may contain unsubstituted --var() values, so in that case for now we still use the computed style.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::keyframeRulesForName):
(WebCore::Style::Resolver::keyframeStylesForAnimation):

  • style/StyleResolver.h:
5:50 AM Changeset in webkit [287819] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Line::Run needs access to FontCascade
https://bugs.webkit.org/show_bug.cgi?id=235009

Reviewed by Antti Koivisto.

This is in preparation for computing trimmed trailing content width properly.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendLineBreak):
(WebCore::Layout::Line::appendWordBreakOpportunity):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::m_textContent):
(WebCore::Layout::m_style): Deleted. - We learnt in the past that expanding structures like this (stack backed, large in number) could
lead to measurable perf regression.

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::shouldTrailingWhitespaceHang const):
(WebCore::Layout::Line::Run::inlineDirection const):
(WebCore::Layout::Line::Run::letterSpacing const):
(WebCore::Layout::Line::Run::hasTextCombine const):

1:01 AM Changeset in webkit [287818] by Antti Koivisto
  • 12 edits in trunk/Source/WebCore

Use IsNegation bit for more efficient pseudo-class style invalidation
https://bugs.webkit.org/show_bug.cgi?id=235003

Reviewed by Simon Fraser.

We now know if a given invalidation ruleset is for negated context. We can use this to avoid
unnecessary traversal in pseudo-class invalidation, similar to what we already do with classes.

  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

  • dom/Element.cpp:

(WebCore::Element::setActive):
(WebCore::Element::setFocus):
(WebCore::Element::setHasFocusWithin):
(WebCore::Element::setHovered):
(WebCore::Element::setBeingDragged):

Provide the value for invalidation.

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::addInvalidDescendant):
(WebCore::HTMLFieldSetElement::removeInvalidDescendant):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::setAncestorDisabled):
(WebCore::HTMLFormControlElement::parseAttribute):
(WebCore::HTMLFormControlElement::updateValidity):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::registerInvalidAssociatedFormControl):
(WebCore::HTMLFormElement::removeInvalidAssociatedFormControlIfNeeded):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::parseAttribute):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::parseAttribute):
(WebCore::HTMLOptionElement::setSelectedState):

  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent):

  • style/PseudoClassChangeInvalidation.cpp:

(WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):
(WebCore::Style::PseudoClassChangeInvalidation::collectRuleSets):

Setting a pseudo-class can only make a regular selector (not inside :not()) start matching.
Setting a pseudo-class can only make a negated selector (inside :not()) stop matching.
We only need to invalidate for the first case after the mutation has happened and for the second
case before it happens.

The cases are reversed when pseudo-class is unset.

(WebCore::Style::PseudoClassChangeInvalidation::invalidateBeforeChange):
(WebCore::Style::PseudoClassChangeInvalidation::invalidateAfterChange):
(WebCore::Style::PseudoClassChangeInvalidation::invalidateStyleWithRuleSets): Deleted.

  • style/PseudoClassChangeInvalidation.h:

(WebCore::Style::emplace):

Add a helper since std::optional::emplace() is awkward to use with std::initializer_list.

(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):
(WebCore::Style::PseudoClassChangeInvalidation::~PseudoClassChangeInvalidation):

Jan 8, 2022:

11:43 PM Changeset in webkit [287817] by Simon Fraser
  • 12 edits
    2 adds in trunk

If the drop-shadow filter has no color, it should use the value of the color property
https://bugs.webkit.org/show_bug.cgi?id=235012

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/filter-effects/animation/filter-interpolation-004-expected.txt:
  • web-platform-tests/css/filter-effects/parsing/filter-computed-expected.txt:

Source/WebCore:

https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-drop-shadow states that if
drop-shadow() does not specify a color, the value of the color property should be used.

Test: css3/filters/drop-shadow-no-color.html

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::createFilterOperations):

LayoutTests:

Fix tests to serialize with rgb(0, 0, 0) instead of the transparent color.

  • css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-computed-style.html:
  • css3/filters/drop-shadow-no-color-expected.html: Added.
  • css3/filters/drop-shadow-no-color.html: Added.
  • css3/filters/filter-property-computed-style-expected.txt:
  • css3/filters/filter-property-computed-style.html:
  • css3/filters/unprefixed-expected.txt:
  • css3/filters/unprefixed.html:
8:16 PM Changeset in webkit [287816] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Update test expectations for known failures.
https://bugs.webkit.org/show_bug.cgi?id=234972

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-08

  • platform/glib/TestExpectations:
3:40 PM Changeset in webkit [287815] by Simon Fraser
  • 8 edits in trunk

Fix some CSS filter interpolation issues
https://bugs.webkit.org/show_bug.cgi?id=235007

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

More passing now.

  • web-platform-tests/css/filter-effects/animation/filter-interpolation-002-expected.txt:
  • web-platform-tests/css/filter-effects/animation/filter-interpolation-003-expected.txt:
  • web-platform-tests/css/filter-effects/animation/filter-interpolation-004-expected.txt:

Source/WebCore:

Ensure that filter values are clamped after animation according to
https://drafts.fxtf.org/filter-effects-1/.

Tested by WPT.

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicColorMatrixFilterOperation::blend):
(WebCore::BasicComponentTransferFilterOperation::blend):
(WebCore::BlurFilterOperation::blend):
(WebCore::DropShadowFilterOperation::blend):

LayoutTests:

imported/w3c/web-platform-tests/css/filter-effects/animation/filter-interpolation-004.html no longer asserts.

2:12 PM Changeset in webkit [287814] by Wenson Hsieh
  • 4 edits
    1 add in trunk

Null pointer crash when calling into -[WebView close] in -webView:didCommitLoadForFrame:
https://bugs.webkit.org/show_bug.cgi?id=234994
rdar://86845512

Reviewed by Chris Dumez and Geoff Garen.

Source/WebCore:

Add a null check in FrameLoader::dispatchDidCommitLoad() before calling into any methods on the frame's Page.
Since we called into the client layer to dispatchDidCommitLoad() immediately prior to this, a legacy WebKit
client may have already caused the page to be destroyed (e.g. by closing the web view). Since Frame's pointer
to Page is a WeakPtr, this triggers null derefs when attempting to call either didCommitLoad() or
remoteInspectorInformationDidChange().

Test: WebKitLegacy.CloseWhileCommittingLoad

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchDidCommitLoad):

Tools:

Add a new API test to exercise the fix.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/CloseWhileCommittingLoad.mm: Added.

(-[CloseWhileCommittingLoadDelegate webView:didCommitLoadForFrame:]):
(TestWebKitAPI::TEST):

10:26 AM Changeset in webkit [287813] by Simon Fraser
  • 6 edits
    608 adds in trunk/LayoutTests

Import css/filter-effects web platform tests
https://bugs.webkit.org/show_bug.cgi?id=235001

Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:

Imported from WPT ba3997e9f9a2f10a00688061f785d4c9b70cc5d5.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/filter-effects/META.yml: Added.
  • web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-001-expected.txt: Added.
  • web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-001.html: Added.
  • web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-002-expected.txt: Added.
  • web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-002.html: Added.
  • web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-003-expected.txt: Added.
  • web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-003.html: Added.
  • web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-004-expected.txt: Added.
  • web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-004.html: Added.
  • web-platform-tests/css/filter-effects/animation/filter-interpolation-001-expected.txt: Added.
  • web-platform-tests/css/filter-effects/animation/filter-interpolation-001.html: Added.
  • web-platform-tests/css/filter-effects/animation/filter-interpolation-002-expected.txt: Added.
  • web-platform-tests/css/filter-effects/animation/filter-interpolation-002.html: Added.
  • web-platform-tests/css/filter-effects/animation/filter-interpolation-003.html: Added.
  • web-platform-tests/css/filter-effects/animation/filter-interpolation-004.html: Added.
  • web-platform-tests/css/filter-effects/animation/w3c-import.log: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-background-color-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-background-color-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-background-color.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-2-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-2-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-2.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-basic.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clip-rect.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clip-rounded-clip-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clip-rounded-clip-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clip-rounded-clip.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clipped-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clipped-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-clipped.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-containing-block-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-containing-block-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-containing-block.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-edge-behavior-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-edge-behavior-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-edge-behavior.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-edge-pixels-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-edge-pixels-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-edge-pixels.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-fixed-clip-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-fixed-clip-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-fixed-clip.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-isolation-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-isolation-fixed-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-isolation-fixed.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-isolation-isolate-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-isolation-isolate.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-isolation-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-isolation.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-non-isolation-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-opacity-rounded-clip-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-opacity-rounded-clip-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-opacity-rounded-clip.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-paint-order-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-paint-order-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-paint-order.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-plus-filter-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-plus-filter-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-plus-filter.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-plus-opacity-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-plus-opacity-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-plus-opacity.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-reference-filter-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-reference-filter.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-root-element-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-root-element-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-root-element.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-svg-foreignObject-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-svg-foreignObject.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-update-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-update-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-update.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-zero-size-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-zero-size-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filter-zero-size.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-brightness-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-brightness-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-brightness.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-contrast-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-contrast-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-contrast.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-hue-rotate-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-hue-rotate-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-hue-rotate.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-invert-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-invert-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-invert.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-opacity-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-opacity-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-opacity.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-saturate-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-saturate-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-saturate.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-sepia-expected.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-sepia-ref.html: Added.
  • web-platform-tests/css/filter-effects/backdrop-filters-sepia.html: Added.
  • web-platform-tests/css/filter-effects/background-image-blur-repaint-expected.html: Added.
  • web-platform-tests/css/filter-effects/background-image-blur-repaint.html: Added.
  • web-platform-tests/css/filter-effects/blur-clip-stacking-context-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/blur-clip-stacking-context-001.html: Added.
  • web-platform-tests/css/filter-effects/blur-clip-stacking-context-002-expected-mismatch.html: Added.
  • web-platform-tests/css/filter-effects/blur-clip-stacking-context-002.html: Added.
  • web-platform-tests/css/filter-effects/blur-clip-stacking-context-ref.html: Added.
  • web-platform-tests/css/filter-effects/clip-under-filter-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/clip-under-filter-001.html: Added.
  • web-platform-tests/css/filter-effects/clip-under-filter-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/clip-under-filter-002.html: Added.
  • web-platform-tests/css/filter-effects/clip-under-filter-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/clip-under-filter-003.html: Added.
  • web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-001-expected.txt: Added.
  • web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-001.html: Added.
  • web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-002-expected.txt: Added.
  • web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-002.html: Added.
  • web-platform-tests/css/filter-effects/crashtests/w3c-import.log: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-blur-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-blur-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-blur.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-brightness-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-brightness-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-brightness.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-combined-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-combined-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-combined.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-contrast-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-contrast-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-contrast.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-drop-shadow-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-drop-shadow-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-drop-shadow.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-grayscale-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-grayscale-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-grayscale.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-hue-rotate-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-hue-rotate-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-hue-rotate.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-invert-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-invert-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-invert.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-opacity-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-opacity-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-opacity.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-saturate-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-saturate-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-saturate.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-sepia-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-sepia-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-backdrop-filters-animation-sepia.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-blur-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-blur-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-blur.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-brightness-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-brightness-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-brightness.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-combined-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-combined-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-combined-001.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-contrast-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-contrast-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-contrast.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-drop-shadow-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-drop-shadow-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-drop-shadow.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-grayscale-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-grayscale-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-grayscale.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-hue-rotate-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-hue-rotate-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-hue-rotate.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-invert-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-invert-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-invert.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-opacity-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-opacity-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-opacity.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-saturate-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-saturate-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-saturate.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-sepia-expected.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-sepia-ref.html: Added.
  • web-platform-tests/css/filter-effects/css-filters-animation-sepia.html: Added.
  • web-platform-tests/css/filter-effects/drop-shadow-clipped-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/drop-shadow-clipped-001.html: Added.
  • web-platform-tests/css/filter-effects/dynamic-filter-changes-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-add-hw-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-add-hw-001.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-after-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-after-001.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-delete-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-delete.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-displacement-negative-scale-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-displacement-negative-scale-001.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-feimage-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-feimage-001.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-feimage-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-feimage-002.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-feimage-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-feimage-003.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-lighting-no-light.tentative-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-lighting-no-light.tentative.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-local-url-with-base-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-local-url-with-base-001.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-merge-no-inputs.tentative-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-merge-no-inputs.tentative.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-obb-dimensions-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-obb-dimensions.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-on-span-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-on-span.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-on-transparent-element-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-on-transparent-element.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-rename-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-rename-001.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-rename-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-rename-002.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-reset-style-delete-crash-expected.txt: Added.
  • web-platform-tests/css/filter-effects/effect-reference-reset-style-delete-crash.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-source-alpha-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-source-alpha-001.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-source-alpha-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/effect-reference-source-alpha-002.html: Added.
  • web-platform-tests/css/filter-effects/empty-element-with-filter-expected.html: Added.
  • web-platform-tests/css/filter-effects/empty-element-with-filter.html: Added.
  • web-platform-tests/css/filter-effects/fecolormatrix-type-expected.html: Added.
  • web-platform-tests/css/filter-effects/fecolormatrix-type-ref.html: Added.
  • web-platform-tests/css/filter-effects/fecolormatrix-type.html: Added.
  • web-platform-tests/css/filter-effects/fecomposite-non-zero-inoffset-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/fecomposite-non-zero-inoffset-001.html: Added.
  • web-platform-tests/css/filter-effects/feflood-with-filter-reference-expected.html: Added.
  • web-platform-tests/css/filter-effects/feflood-with-filter-reference.html: Added.
  • web-platform-tests/css/filter-effects/feimage-circular-reference-foreign-object-crash-expected.txt: Added.
  • web-platform-tests/css/filter-effects/feimage-circular-reference-foreign-object-crash.html: Added.
  • web-platform-tests/css/filter-effects/feimage-reference-foreign-object-crash-expected.txt: Added.
  • web-platform-tests/css/filter-effects/feimage-reference-foreign-object-crash.html: Added.
  • web-platform-tests/css/filter-effects/feimage-target-child-reference-crash-expected.txt: Added.
  • web-platform-tests/css/filter-effects/feimage-target-child-reference-crash.html: Added.
  • web-platform-tests/css/filter-effects/felighting-no-light-source-style-update-crash-expected.txt: Added.
  • web-platform-tests/css/filter-effects/felighting-no-light-source-style-update-crash.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-abspos-inline-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-abspos-inline-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-abspos-inline-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-abspos-inline-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-abspos-inline-002.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-abspos-inline-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-abspos-inline-003-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-abspos-inline-003.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-dynamic-1-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-dynamic-1a-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-dynamic-1a.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-dynamic-1b-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-cb-dynamic-1b.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-002-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-002.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-003-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-contrast-003.html: Added.
  • web-platform-tests/css/filter-effects/filter-effect-remove-unattached-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-effect-remove-unattached.html: Added.
  • web-platform-tests/css/filter-effects/filter-external-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-external-001-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-external-001-test.html: Added.
  • web-platform-tests/css/filter-effects/filter-external-002-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-external-002-test.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-002.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-003.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-004-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-004.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-005-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-005.html: Added.
  • web-platform-tests/css/filter-effects/filter-grayscale-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-hue_rotate-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-hue_rotate-001-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-hue_rotate-001-test.html: Added.
  • web-platform-tests/css/filter-effects/filter-invert-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-invert-001-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-invert-001-test.html: Added.
  • web-platform-tests/css/filter-effects/filter-invert-002-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-invert-002-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-invert-002-test.html: Added.
  • web-platform-tests/css/filter-effects/filter-region-negative-positioned-child-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-region-negative-positioned-child-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-region-transformed-child-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-region-transformed-child-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-region-transformed-composited-child-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-region-transformed-composited-child-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-saturate-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-saturate-001-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-saturate-001-test.html: Added.
  • web-platform-tests/css/filter-effects/filter-scale-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-scale-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-scale-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-scaling-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-scaling-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-scaling-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-subregion-01-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-subregion-01-ref.html: Added.
  • web-platform-tests/css/filter-effects/filter-subregion-01.html: Added.
  • web-platform-tests/css/filter-effects/filter-turbulence-invalid-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-turbulence-invalid-001.html: Added.
  • web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html: Added.
  • web-platform-tests/css/filter-effects/filtered-block-is-container-expected.html: Added.
  • web-platform-tests/css/filter-effects/filtered-block-is-container-ref.html: Added.
  • web-platform-tests/css/filter-effects/filtered-block-is-container.html: Added.
  • web-platform-tests/css/filter-effects/filtered-html-is-not-container-expected.html: Added.
  • web-platform-tests/css/filter-effects/filtered-html-is-not-container-ref.html: Added.
  • web-platform-tests/css/filter-effects/filtered-html-is-not-container.html: Added.
  • web-platform-tests/css/filter-effects/filtered-inline-applies-to-float-expected.html: Added.
  • web-platform-tests/css/filter-effects/filtered-inline-applies-to-float-ref.html: Added.
  • web-platform-tests/css/filter-effects/filtered-inline-applies-to-float.html: Added.
  • web-platform-tests/css/filter-effects/filtered-inline-is-container-expected.html: Added.
  • web-platform-tests/css/filter-effects/filtered-inline-is-container-ref.html: Added.
  • web-platform-tests/css/filter-effects/filtered-inline-is-container.html: Added.
  • web-platform-tests/css/filter-effects/filters-drop-shadow-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-drop-shadow-001.html: Added.
  • web-platform-tests/css/filter-effects/filters-drop-shadow-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-drop-shadow-002.html: Added.
  • web-platform-tests/css/filter-effects/filters-grayscale-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filters-grayscale-001-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-grayscale-001-test.html: Added.
  • web-platform-tests/css/filter-effects/filters-opacity-001-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-opacity-001-test.html: Added.
  • web-platform-tests/css/filter-effects/filters-opacity-002-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-opacity-002-test.html: Added.
  • web-platform-tests/css/filter-effects/filters-sepia-001-ref.html: Added.
  • web-platform-tests/css/filter-effects/filters-sepia-001-test-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-sepia-001-test.html: Added.
  • web-platform-tests/css/filter-effects/filters-test-brightness-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-test-brightness-001.html: Added.
  • web-platform-tests/css/filter-effects/filters-test-brightness-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-test-brightness-002.html: Added.
  • web-platform-tests/css/filter-effects/filters-test-brightness-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-test-brightness-003.html: Added.
  • web-platform-tests/css/filter-effects/idlharness.any-expected.txt: Added.
  • web-platform-tests/css/filter-effects/idlharness.any.html: Added.
  • web-platform-tests/css/filter-effects/idlharness.any.js: Added.
  • web-platform-tests/css/filter-effects/idlharness.any.serviceworker-expected.txt: Added.
  • web-platform-tests/css/filter-effects/idlharness.any.serviceworker.html: Added.
  • web-platform-tests/css/filter-effects/idlharness.any.worker-expected.txt: Added.
  • web-platform-tests/css/filter-effects/idlharness.any.worker.html: Added.
  • web-platform-tests/css/filter-effects/inheritance-expected.txt: Added.
  • web-platform-tests/css/filter-effects/inheritance.html: Added.
  • web-platform-tests/css/filter-effects/morphology-mirrored-expected.html: Added.
  • web-platform-tests/css/filter-effects/morphology-mirrored.html: Added.
  • web-platform-tests/css/filter-effects/parsing/backdrop-filter-computed-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/backdrop-filter-computed.html: Added.
  • web-platform-tests/css/filter-effects/parsing/backdrop-filter-parsing-invalid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/backdrop-filter-parsing-invalid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/backdrop-filter-parsing-valid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/backdrop-filter-parsing-valid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-computed-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-computed.html: Added.
  • web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-parsing-invalid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-parsing-invalid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-parsing-valid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-parsing-valid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/filter-computed-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/filter-computed.html: Added.
  • web-platform-tests/css/filter-effects/parsing/filter-parsing-invalid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/filter-parsing-invalid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/filter-parsing-valid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/filter-parsing-valid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-color-computed-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-color-computed.html: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-color-invalid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-color-invalid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-color-valid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-color-valid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-opacity-computed-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-opacity-computed.svg: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-opacity-invalid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-opacity-invalid.svg: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-opacity-valid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/flood-opacity-valid.svg: Added.
  • web-platform-tests/css/filter-effects/parsing/lighting-color-computed-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/lighting-color-computed.html: Added.
  • web-platform-tests/css/filter-effects/parsing/lighting-color-parsing-invalid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/lighting-color-parsing-invalid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/lighting-color-parsing-valid-expected.txt: Added.
  • web-platform-tests/css/filter-effects/parsing/lighting-color-parsing-valid.html: Added.
  • web-platform-tests/css/filter-effects/parsing/w3c-import.log: Added.
  • web-platform-tests/css/filter-effects/reference-filter-update-on-attribute-change-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/reference-filter-update-on-attribute-change-001.html: Added.
  • web-platform-tests/css/filter-effects/remove-filter-repaint-expected.html: Added.
  • web-platform-tests/css/filter-effects/remove-filter-repaint.html: Added.
  • web-platform-tests/css/filter-effects/resources/reference.png: Added.
  • web-platform-tests/css/filter-effects/resources/w3c-import.log: Added.
  • web-platform-tests/css/filter-effects/root-element-with-opacity-filter-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/root-element-with-opacity-filter-001.html: Added.
  • web-platform-tests/css/filter-effects/support/1x1-green.png: Added.
  • web-platform-tests/css/filter-effects/support/1x1-lime.png: Added.
  • web-platform-tests/css/filter-effects/support/1x1-maroon.png: Added.
  • web-platform-tests/css/filter-effects/support/1x1-navy.png: Added.
  • web-platform-tests/css/filter-effects/support/1x1-red.png: Added.
  • web-platform-tests/css/filter-effects/support/1x1-white.png: Added.
  • web-platform-tests/css/filter-effects/support/60x60-gg-rr.png: Added.
  • web-platform-tests/css/filter-effects/support/60x60-green.png: Added.
  • web-platform-tests/css/filter-effects/support/README: Added.
  • web-platform-tests/css/filter-effects/support/a-green.css: Added.

(.a):

  • web-platform-tests/css/filter-effects/support/b-green.css: Added.

(.b):

  • web-platform-tests/css/filter-effects/support/c-red.css: Added.

(.c):

  • web-platform-tests/css/filter-effects/support/cat.png: Added.
  • web-platform-tests/css/filter-effects/support/color-palette.png: Added.
  • web-platform-tests/css/filter-effects/support/div-with-filter.html: Added.
  • web-platform-tests/css/filter-effects/support/filter-external-002-filter.svg: Added.
  • web-platform-tests/css/filter-effects/support/filter-from-external-url.css: Added.

(.hue-rotate):

  • web-platform-tests/css/filter-effects/support/filtersubregion00.png: Added.
  • web-platform-tests/css/filter-effects/support/hueRotate.svg: Added.
  • web-platform-tests/css/filter-effects/support/import-green.css: Added.

(.import):

  • web-platform-tests/css/filter-effects/support/import-red.css: Added.

(.import):

  • web-platform-tests/css/filter-effects/support/pattern-grg-rgr-grg.png: Added.
  • web-platform-tests/css/filter-effects/support/pattern-grg-rrg-rgg.png: Added.
  • web-platform-tests/css/filter-effects/support/pattern-rgr-grg-rgr.png: Added.
  • web-platform-tests/css/filter-effects/support/pattern-tr.png: Added.
  • web-platform-tests/css/filter-effects/support/ruler-h-50%.png: Added.
  • web-platform-tests/css/filter-effects/support/ruler-h-50px.png: Added.
  • web-platform-tests/css/filter-effects/support/ruler-v-100px.png: Added.
  • web-platform-tests/css/filter-effects/support/ruler-v-50px.png: Added.
  • web-platform-tests/css/filter-effects/support/square-purple.png: Added.
  • web-platform-tests/css/filter-effects/support/square-teal.png: Added.
  • web-platform-tests/css/filter-effects/support/square-white.png: Added.
  • web-platform-tests/css/filter-effects/support/support/README: Added.
  • web-platform-tests/css/filter-effects/support/support/swatch-green.png: Added.
  • web-platform-tests/css/filter-effects/support/support/swatch-red.png: Added.
  • web-platform-tests/css/filter-effects/support/support/w3c-import.log: Added.
  • web-platform-tests/css/filter-effects/support/swatch-blue.png: Added.
  • web-platform-tests/css/filter-effects/support/swatch-green.png: Added.
  • web-platform-tests/css/filter-effects/support/swatch-lime.png: Added.
  • web-platform-tests/css/filter-effects/support/swatch-orange.png: Added.
  • web-platform-tests/css/filter-effects/support/swatch-red.png: Added.
  • web-platform-tests/css/filter-effects/support/swatch-teal.png: Added.
  • web-platform-tests/css/filter-effects/support/swatch-white.png: Added.
  • web-platform-tests/css/filter-effects/support/swatch-yellow.png: Added.
  • web-platform-tests/css/filter-effects/support/test-bl.png: Added.
  • web-platform-tests/css/filter-effects/support/test-br.png: Added.
  • web-platform-tests/css/filter-effects/support/test-inner-half-size.png: Added.
  • web-platform-tests/css/filter-effects/support/test-outer.png: Added.
  • web-platform-tests/css/filter-effects/support/test-tl.png: Added.
  • web-platform-tests/css/filter-effects/support/test-tr.png: Added.
  • web-platform-tests/css/filter-effects/support/w3c-import.log: Added.
  • web-platform-tests/css/filter-effects/svg-empty-container-with-filter-content-added-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-empty-container-with-filter-content-added.html: Added.
  • web-platform-tests/css/filter-effects/svg-feflood-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-feflood-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-feimage-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-feimage-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-feoffset-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-feoffset-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-filter-vs-clip-path-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-filter-vs-clip-path.html: Added.
  • web-platform-tests/css/filter-effects/svg-filter-vs-mask-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-filter-vs-mask.html: Added.
  • web-platform-tests/css/filter-effects/svg-multiple-filter-functions-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-multiple-filter-functions.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-drop-shadow-color-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-drop-shadow-color.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-drop-shadow-offset-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-drop-shadow-offset.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-function-to-url-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-function-to-url.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-group-position-changed-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-group-position-changed.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-group-size-changed-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-group-size-changed.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-group-transform-changed-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-group-transform-changed.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-object-position-changed-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-object-position-changed.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-object-size-changed-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-object-size-changed.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-object-transform-changed-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-object-transform-changed.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-single-to-multiple-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-single-to-multiple-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-single-to-multiple-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-single-to-multiple-002.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-url-to-function-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-mutation-url-to-function.html: Added.
  • web-platform-tests/css/filter-effects/svg-relative-urls-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-relative-urls-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-relative-urls-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-relative-urls-002.html: Added.
  • web-platform-tests/css/filter-effects/svg-shorthand-drop-shadow-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-shorthand-drop-shadow-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-shorthand-hue-rotate-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-shorthand-hue-rotate-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-sourcegraphic-currentcolor-dynamic-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-sourcegraphic-currentcolor-dynamic-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-sourcegraphic-invalidation-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-sourcegraphic-invalidation-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-unknown-input-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-unknown-input-001.html: Added.
  • web-platform-tests/css/filter-effects/svg-unknown-input-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/svg-unknown-input-002.html: Added.
  • web-platform-tests/css/filter-effects/svg-unknown-input-ref.html: Added.
  • web-platform-tests/css/filter-effects/svg-unused-filter-on-clippath-mutated-crash-expected.txt: Added.
  • web-platform-tests/css/filter-effects/svg-unused-filter-on-clippath-mutated-crash.html: Added.
  • web-platform-tests/css/filter-effects/svgfeblendelement-mode-001-expected.txt: Added.
  • web-platform-tests/css/filter-effects/svgfeblendelement-mode-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feblend-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feblend-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feblend-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feblend-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fecomponenttransfer-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fecomponenttransfer-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fecomponenttransfer-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fecomponenttransfer-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fecomposite-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fecomposite-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fecomposite-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fecomposite-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feconvolvematrix-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feconvolvematrix-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feconvolvematrix-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feconvolvematrix-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fediffuselighting-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fediffuselighting-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fediffuselighting-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fediffuselighting-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fediffuselighting-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fediffuselighting-003.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fediffuselighting-dynamic-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fediffuselighting-dynamic.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedisplacementmap-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedisplacementmap-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedisplacementmap-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedisplacementmap-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedropshadow-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedropshadow-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedropshadow-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedropshadow-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedropshadow-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fedropshadow-003.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feflood-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feflood-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feflood-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feflood-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feflood-dynamic-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feflood-dynamic.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fegaussianblur-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fegaussianblur-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fegaussianblur-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fegaussianblur-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-femorphology-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-femorphology-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-femorphology-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-femorphology-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feoffset-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feoffset-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feoffset-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-feoffset-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fespecularlighting-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fespecularlighting-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fespecularlighting-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fespecularlighting-002.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fespecularlighting-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fespecularlighting-003.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fetile-001-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fetile-001.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fetile-002-expected.html: Added.
  • web-platform-tests/css/filter-effects/tainting-fetile-002.html: Added.
  • web-platform-tests/css/filter-effects/w3c-import.log: Added.

LayoutTests:

Imported from WPT ba3997e9f9a2f10a00688061f785d4c9b70cc5d5.

  • TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-001-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-002-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/effect-reference-reset-style-delete-crash-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/feimage-circular-reference-foreign-object-crash-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/feimage-reference-foreign-object-crash-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/feimage-target-child-reference-crash-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/felighting-no-light-source-style-update-crash-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/idlharness.any.serviceworker-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/svg-unused-filter-on-clippath-mutated-crash-expected.txt: Added.
  • platform/mac/TestExpectations:
10:21 AM Changeset in webkit [287812] by commit-queue@webkit.org
  • 4 edits
    7 adds in trunk

null ptr deref in WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange
https://bugs.webkit.org/show_bug.cgi?id=234862

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-08
Reviewed by Darin Adler.

Source/WebCore:

ModifySelectionListLevelCommand::appendSiblingNodeRange loops through nodes assuming
existence of siblings, which is not guaranteed, and can result in nullptr deref. Instead,
check for node existence as part of loop condition, and change raw pointer usage to RefPtr.

This addresses the crash but results in ASSERT(isEndOfParagraph(endOfParagraphToMove))
failing in CompositeEditCommand::moveParagraph. We modify WebCore::findEndOfParagraph
to check for HTMLBRElement nodes to avoid unexpectedly changing the AnchorType.

Test: http/tests/lists/list-new-parent-no-sibling-append.html

  • editing/ModifySelectionListLevel.cpp:

(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeBefore):
(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeAfter):
(WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange):

  • editing/VisibleUnits.cpp:

(WebCore::findEndOfParagraph):

LayoutTests:

  • http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
  • http/tests/lists/list-new-parent-no-sibling-append.html: Added.
  • platform/gtk/http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
  • platform/win/http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
8:46 AM Changeset in webkit [287811] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Improve WeakHashSet hygienics in AXObjectCache
https://bugs.webkit.org/show_bug.cgi?id=234961

Reviewed by Andres Gonzalez.

AXObjectCache owns four WeakHashSets. WeakHashSets are not notified
when the objects they hold are deleted[1], so we should be cleaning
them up in AXObjectCache::remove(Node&).

This patch also replaces range-based for loop iteration over these
WeakHashSets with WeakHashSet::forEach, which inherently checks that
each item is valid (non-null and contained in the hashset) before
using the item.

[1]: https://github.com/WebKit/WebKit/blob/main/Introduction.md#weakhashset

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):
Delete the removed node from AXObjectCache's owned WeakHashSets.
(WebCore::filterWeakHashSetForRemoval): Added.
(WebCore::AXObjectCache::prepareForDocumentDestruction):
Use filterWeakHashSetForRemoval to remove soon-to-be-deleted nodes
from AXObjectCache's owned WeakHashSets.
(WebCore::AXObjectCache::performDeferredCacheUpdate):
Use WeakHashSet::forEach instead of range-based for loops.

8:40 AM Changeset in webkit [287810] by Tyler Wilcock
  • 15 edits
    4 adds in trunk

AX: AccessibilityObject::setFocused(true) should make the webpage focused, and make web content the first responder
https://bugs.webkit.org/show_bug.cgi?id=234885

Reviewed by Darin Adler.

Source/WebCore:

With this patch, focusing an element via an AX client on iOS makes
the page focused immediately. This allows a focus ring to be drawn,
even when apps that embed WKWebViews don't make web content the
first responder themselves ([WKContentViewInteraction becomeFirstResponderForWebView]
makes the page focused after a delay due to async IPC between the UI and web processes).

Tests: accessibility/ios-simulator/accessibility-make-first-responder.html

accessibility/ios-simulator/taking-focus-should-refocus-page.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::setFocused):
Make the webpage focused if it isn't already focused.

  • testing/Internals.cpp:

(WebCore::Internals::setPageIsFocused):
Added to simulate the scenario where the webpage doesn't gain focus
through becoming first responder.

  • testing/Internals.h:

Add setPageIsFocused.

  • testing/Internals.idl:

Add setPageIsFocused.

Source/WebKit:

With this patch, focusing an element via an AX client on iOS makes web content
the first responder. This allows a focus ring to be drawn and for web content
to perform other important actions upon taking first respondership
(see [WKContentViewInteraction becomeFirstResponderForWebView]), even when apps
that embed WKWebViews don't make web content the first responder themselves.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::assistiveTechnologyMakeFirstResponder):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder):

Tools:

Add testing functionality necessary to check that web content is the
first responder in the UI process.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::isWebContentFirstResponder const):
Added.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::takeFocus):
Implement this method.

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::isWebContentFirstResponder const):
Added.

LayoutTests:

Add tests verifying that focusing an element via an AX client:

  1. Makes the page focused immediately
  2. Makes web content the first responder

This allows a focus ring to be drawn, even when apps that embed
WKWebViews don't make web content the first responder themselves.

  • accessibility/ios-simulator/accessibility-make-first-responder-expected.txt: Added.
  • accessibility/ios-simulator/accessibility-make-first-responder.html: Added.
  • accessibility/ios-simulator/taking-focus-should-refocus-page-expected.txt: Added.
  • accessibility/ios-simulator/taking-focus-should-refocus-page.html: Added.
6:27 AM Changeset in webkit [287809] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Implement TextUtil::breakWord for the complex font codepath using ubrk_next
https://bugs.webkit.org/show_bug.cgi?id=234998

Reviewed by Antti Koivisto.

In order to use ubrk_preceding/ubrk_following with arbitrary position (binary search) inside a cluster with surrogate pairs we have to
implement some additional surrogate boundary checks (it would move the index to the beginning/end of the surrogate when it falls right
in the middle of it). In addition to that, ICU would still need to scan the content from the start to find the right index for
the boundary.
This new breakWord implementation simply iterates over the clusters by calling ubrk_next until the content overflows.

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

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

Jan 7, 2022:

10:23 PM Changeset in webkit [287808] by Jean-Yves Avenard
  • 65 edits
    2 deletes in trunk/Source

Remove IPC::SharedBufferDataReference and use IPC::SharedBufferCopy instead
https://bugs.webkit.org/show_bug.cgi?id=234921
rdar://problem/87196287

Reviewed by Youenn Fablet.

Source/WebCore:

Pass the FragmentedSharedBuffer through const reference to avoid
having to const_cast the argument in WebKit.

No change in observable behaviour, covered by existing tests.

  • platform/graphics/ImageDecoder.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::create):
(WebCore::ImageDecoderAVFObjC::ImageDecoderAVFObjC):
(WebCore::ImageDecoderAVFObjC::setData):

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoderCG::setData):

  • platform/graphics/cg/ImageDecoderCG.h:
  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::setData):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoderDirect2D::setData):

  • platform/graphics/win/ImageDecoderDirect2D.h:
  • platform/image-decoders/ScalableImageDecoder.h:
  • platform/image-decoders/bmp/BMPImageDecoder.cpp:

(WebCore::BMPImageDecoder::setData):

  • platform/image-decoders/bmp/BMPImageDecoder.h:
  • platform/image-decoders/gif/GIFImageDecoder.cpp:

(WebCore::GIFImageDecoder::setData):

  • platform/image-decoders/gif/GIFImageDecoder.h:
  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::setData):

  • platform/image-decoders/ico/ICOImageDecoder.h:
  • platform/image-decoders/webp/WEBPImageDecoder.cpp:

(WebCore::WEBPImageDecoder::setData):

  • platform/image-decoders/webp/WEBPImageDecoder.h:

Source/WebKit:

SharedBufferCopy didn't have to create a new SharedBuffer
and copy its content; its IPC decoder can instead wrap the underlying
SharedMemory into a SharedBuffer.
Having removed those copies and extra allocations there's no longer a
technical need to have both SharedBufferDataReference and SharedBufferCopy.

The biggest winners of this change are the images transferred over IPC.
We remove two memory allocation/copy the was occurring at both IPC
boundaries.

We also remove the need for SharedBufferCopy to use a contiguous
SharedBuffer. This makes the IPC encoding much more efficient.
Once transferred over IPC, with the current encoding implementation,
the SharedBufferCopy automatically becomes a contiguous SharedBuffer,
so calling makeContiguous() on the SharedBufferCopy is a no-op;
this allows for zero regression speed-wise from this change.

Fly-by changes: the PDF code uses IPC::DataReference object; the data
was copied into a CFData or a SharedBuffer. By using IPC::SharedBufferCopy
was can remove those copies as a SharedBuffer can be wrapped in a CFData.
In the future, it's likely where such code pattern was used; more
IPC::DataReference can be replaced broadly with IPC::SharedBufferCopy.

  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createDecoder):
(WebKit::RemoteImageDecoderAVFProxy::setData):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • GPUProcess/media/RemoteLegacyCDMSessionProxy.cpp:

(WebKit::convertToUint8Array):
(WebKit::convertToOptionalSharedBuffer):
(WebKit::RemoteLegacyCDMSessionProxy::generateKeyRequest):
(WebKit::RemoteLegacyCDMSessionProxy::update):
(WebKit::RemoteLegacyCDMSessionProxy::cachedKeyForKeyID):
(WebKit::RemoteLegacyCDMSessionProxy::sendMessage):

  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:

(WebKit::ServiceWorkerDownloadTask::didReceiveData):

  • Platform/IPC/HandleMessage.h:
  • Platform/IPC/SharedBufferCopy.cpp:

(IPC::SharedBufferCopy::encode const):
(IPC::SharedBufferCopy::decode):
(IPC::SharedBufferCopy::safeBuffer const):

  • Platform/IPC/SharedBufferCopy.h:

(IPC::SharedBufferCopy::SharedBufferCopy):
(IPC::SharedBufferCopy::buffer):
(IPC::SharedBufferCopy::buffer const):
(IPC::SharedBufferCopy::contiguousBuffer const):

  • Platform/IPC/SharedBufferDataReference.cpp: Removed.
  • Platform/IPC/SharedBufferDataReference.h: Removed.
  • Scripts/webkit/messages.py:

(function_parameter_type):
(reply_arguments_type):
(message_to_struct_declaration):
(generate_message_handler):

  • Shared/WebCompiledContentRuleListData.cpp:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<SerializedAttachmentData>::encode):
(IPC::ArgumentCoder<WebCore::SerializedAttachmentData>::decode):

  • Sources.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView createPDFWithConfiguration:completionHandler:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::platformRegisterAttachment):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • UIProcess/WebPageProxy.cpp:

(WebKit::CompletionHandler<void):
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::updateAttachmentAttributes):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebURLSchemeTask.cpp:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _wk_pageCountForPrintFormatter:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF):

  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::setData):

  • WebProcess/GPU/media/RemoteImageDecoderAVF.h:
  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:

(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):

  • WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:

(WebKit::convertToArrayBuffer):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getContentsAsMHTMLData):
(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):
(WebKit::WebPage::drawToPDF):
(WebKit::WebPage::drawPagesToPDF):
(WebKit::WebPage::didGetLoadDecisionForIcon):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::updateAttachmentAttributes):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::drawToPDFiOS):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::consumeAudioComponentRegistrations):

8:09 PM Changeset in webkit [287807] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Hardening] Improve multi draw offset validation
https://bugs.webkit.org/show_bug.cgi?id=234966
<rdar://problem/86814830>

Reviewed by Darin Adler.

Incorporate draw count into validation of the offset.

  • html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::validateOffset):

7:42 PM Changeset in webkit [287806] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Appease an assertion that was broken by r287801 by slightly
refactoring code so we don't clobber the same named register twice.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

7:18 PM Changeset in webkit [287805] by mmaxfield@apple.com
  • 6 edits
    2 adds in trunk

[GPU Process] Can't getImageData on canvas larger than 4096x4096
https://bugs.webkit.org/show_bug.cgi?id=234321
<rdar://problem/83575501>

Reviewed by Tim Horton.

Source/WebCore:

We already have a policy about how big canvases can be. Simply export that policy
so it can be consulted from the GPU process.

Test: fast/canvas/large-getImageData.html

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::maxActivePixelMemory):
(WebCore::maxActivePixelMemory): Deleted.

  • html/HTMLCanvasElement.h:

Source/WebKit:

Consult the policy for how big a canvas can be, rather than hardcoding a number.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::updateSharedMemoryForGetPixelBufferHelper):

LayoutTests:

  • fast/canvas/large-getImageData-expected.txt: Added.
  • fast/canvas/large-getImageData.html: Added.
6:45 PM Changeset in webkit [287804] by Russell Epstein
  • 4 edits
    4 deletes in branches/safari-612.4.9.3-branch

Revert "Cherry-pick r287604. rdar://problem/85966622"

This reverts commit r287751.

6:20 PM Changeset in webkit [287803] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Make FullscreenManager::requestFullscreenForElement more robust
https://bugs.webkit.org/show_bug.cgi?id=234995

Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-07
Reviewed by Darin Adler.

Source/WebCore:

I think this may fix the Windows crashes after bug 233963 lands, and it makes things more robust anyways.

  • dom/Element.cpp:

(WebCore::Element::webkitRequestFullscreen):

  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::requestFullscreenForElement):

  • dom/FullscreenManager.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enterFullscreen):

Source/WebKit:

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::requestEnterFullScreen):

6:13 PM Changeset in webkit [287802] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Don't dispatch "focusin" / "focusout" events if there are no listeners
https://bugs.webkit.org/show_bug.cgi?id=234928

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-07
Reviewed by Geoff Garen.

This patch avoids creating and dispatching "focusin" / "focusout" events if it's
guaranteed there are no registered listeners for them. These events are rather new
and not widely popular: according to Chrome stats, only 17% page loads use them [1],
which is even less than document.all.

Together with r287787, creation of four FocusEvent instances is now avoided when
focus is changed, advancing attached microbenchmark by 6%.

[1] https://chromestatus.com/metrics/feature/timeline/popularity/433

No new tests, no behavior change.

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):
(WebCore::Document::addListenerTypeIfNeeded):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::dispatchFocusInEventIfNeeded):
(WebCore::Element::dispatchFocusOutEventIfNeeded):
(WebCore::Element::dispatchFocusInEvent): Deleted.
(WebCore::Element::dispatchFocusOutEvent): Deleted.

  • dom/Element.h:
5:57 PM Changeset in webkit [287801] by sbarati@apple.com
  • 12 edits
    1 add in trunk/Source/JavaScriptCore

Add support for Wasm exceptions in the Air generator
https://bugs.webkit.org/show_bug.cgi?id=231211
<rdar://problem/84132861>

Reviewed by Filip Pizlo.

This patch adds support to Air for Wasm exceptions. The implementation
is very similar to how we implement it in the B3 Wasm tier. This patch
shares code with the B3 tier where it can.

This patch also fixes a bug where you the early clobbered registers
of a patchpoint could prevent the prior instruction from register allocating.
For example, you can have the instructions I1, I2. Where I2 clobbers the
entire register file. It doesn't mean I1 shouldn't be able to allocate
registers. Instead, the clobber should occur after I1 executes. This patch
fixes the issue.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::ControlData::ControlData):
(JSC::Wasm::AirIRGenerator::ControlData::isTry):
(JSC::Wasm::AirIRGenerator::ControlData::isCatch):
(JSC::Wasm::AirIRGenerator::ControlData::convertTryToCatch):
(JSC::Wasm::AirIRGenerator::ControlData::convertTryToCatchAll):
(JSC::Wasm::AirIRGenerator::ControlData::tryStart const):
(JSC::Wasm::AirIRGenerator::ControlData::tryEnd const):
(JSC::Wasm::AirIRGenerator::ControlData::tryDepth const):
(JSC::Wasm::AirIRGenerator::ControlData::catchKind const):
(JSC::Wasm::AirIRGenerator::ControlData::exception const):
(JSC::Wasm::AirIRGenerator::emitCallPatchpoint):
(JSC::Wasm::AirIRGenerator::addStackMap):
(JSC::Wasm::AirIRGenerator::takeStackmaps):
(JSC::Wasm::AirIRGenerator::takeExceptionHandlers):
(JSC::Wasm::AirIRGenerator::newTmp):
(JSC::Wasm::AirIRGenerator::emitPatchpoint):
(JSC::Wasm::AirIRGenerator::emitLoad):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::finalizeEntrypoints):
(JSC::Wasm::AirIRGenerator::forEachLiveValue):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addTry):
(JSC::Wasm::AirIRGenerator::addCatch):
(JSC::Wasm::AirIRGenerator::addCatchAll):
(JSC::Wasm::AirIRGenerator::addCatchToUnreachable):
(JSC::Wasm::AirIRGenerator::addCatchAllToUnreachable):
(JSC::Wasm::AirIRGenerator::emitCatchImpl):
(JSC::Wasm::AirIRGenerator::addDelegate):
(JSC::Wasm::AirIRGenerator::addDelegateToUnreachable):
(JSC::Wasm::AirIRGenerator::addThrow):
(JSC::Wasm::AirIRGenerator::addRethrow):
(JSC::Wasm::AirIRGenerator::addEndToUnreachable):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::emitIndirectCall):
(JSC::Wasm::parseAndCompileAir):
(JSC::Wasm::AirIRGenerator::preparePatchpointForExceptions):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::insertEntrySwitch):
(JSC::Wasm::B3IRGenerator::emitCatchImpl):
(JSC::Wasm::B3IRGenerator::addThrow):
(JSC::Wasm::B3IRGenerator::addRethrow):
(JSC::Wasm::PatchpointExceptionHandle::generate const): Deleted.
(JSC::Wasm::buildEntryBufferForCatch): Deleted.
(JSC::Wasm::computeExceptionHandlerLocations): Deleted.

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::compileFunction):

  • wasm/WasmIRGeneratorHelpers.h: Added.

(JSC::Wasm::PatchpointExceptionHandle::generate const):
(JSC::Wasm::computeExceptionHandlerLocations):
(JSC::Wasm::emitRethrowImpl):
(JSC::Wasm::emitThrowImpl):
(JSC::Wasm::buildEntryBufferForCatch):
(JSC::Wasm::emitCatchPrologueShared):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::finalize):

  • wasm/WasmModuleInformation.h:
  • wasm/WasmOMGPlan.cpp:
  • wasm/WasmOSREntryPlan.cpp:
  • wasm/WasmStreamingParser.cpp:

(JSC::Wasm::StreamingParser::parseCodeSectionSize):

5:52 PM Changeset in webkit [287800] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk

Expand the set of objects we take JSArray::fastSlice() path for
https://bugs.webkit.org/show_bug.cgi?id=234539

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-07
Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/array-slice-call-cloned-arguments.js: Added.
  • stress/array-slice-beyond-length.js: Added.
  • stress/array-slice-length-lookup.js: Added.

Source/JavaScriptCore:

Currently, Array.prototype's slice() / splice() methods take a fast path only for
JSArray source objects. With this change, gcSafeMemcpy-based path is taken for any
object with ordinary getOwnPropertySlotByIndex() method, which speeds up the common
case of [].slice.call(arguments) by 140% (in strict mode only, see ClonedArguments).

Also, once is https://webkit.org/b/234538 resolved, calling Array.prototype.slice()
on a static NodeList, which is a common idiom to acquire map() / filter() methods,
will become faster as well.

This patch was thoroughly evaluated to be spec-perfect and memory-safe:

  • indexing mode check and holesMustForwardToPrototype() guarantee that there are no observable userland code to be invoked;
  • fastSlice() signature is upgraded to uint64_t so nullptr is returned in case of large "length", resulting in a RangeError being thrown on the slow path;
  • to handle the case of source array being shrinked after "length" lookup (see r175420), OOB read check is moved to JSArray::fastSlice() and refined to rely on vectorLength() so the double "length" lookup is avoided (added a test for this).

All this (and more) is well covered by the test262 suite.

This change improves Speedometer2/EmberJS-Debug-TodoMVC score by 0.5%: although the test
is slow on its own, [].slice.call(arguments) is performed ~56k times per run.

  • runtime/ArrayPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSArray.cpp:

(JSC::JSArray::fastSlice):

  • runtime/JSArray.h:
5:00 PM Changeset in webkit [287799] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.3.1

Tag Safari-612.4.9.3.1.

4:49 PM Changeset in webkit [287798] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.1.2

Tag Safari-612.4.9.1.2.

4:46 PM Changeset in webkit [287797] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.2.1

Tag Safari-612.4.9.2.1.

4:45 PM Changeset in webkit [287796] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.0.1

Tag Safari-612.4.9.0.1.

4:05 PM Changeset in webkit [287795] by Russell Epstein
  • 26 edits in branches/safari-612.4.9.2-branch

Cherry-pick r286094. rdar://problem/87125111

Report the initiating url instead of the redirected one
https://bugs.webkit.org/show_bug.cgi?id=233037

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-20
Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub-expected.txt:

Source/WebCore:

As per the spec, blockedURI should use the requested URL of original request instead of redirected location.

  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequestInternal):
  • loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const): (WebCore::CachedResourceLoader::canRequestAfterRedirection const): (WebCore::CachedResourceLoader::updateRequestAfterRedirection):
  • loader/cache/CachedResourceLoader.h:
  • page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowChildContextFromSource const): (WebCore::ContentSecurityPolicy::allowScriptFromSource const): (WebCore::ContentSecurityPolicy::allowImageFromSource const): (WebCore::ContentSecurityPolicy::allowStyleFromSource const): (WebCore::ContentSecurityPolicy::allowFontFromSource const): (WebCore::ContentSecurityPolicy::allowManifestFromSource const): (WebCore::ContentSecurityPolicy::allowMediaFromSource const):
  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Pass pre-redirect URL to allowChildContextFromSource() and allowScriptFromSource().

  • NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

LayoutTests:

  • TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286094 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:47 PM Changeset in webkit [287794] by Chris Lord
  • 2 edits in trunk/Source/WebKit

[GTK] REGRESSION: Kinetic scrolling via touch-screen behaves oddly
https://bugs.webkit.org/show_bug.cgi?id=234958

Reviewed by Michael Catanzaro.

The swipe signal handler didn't take into account
Scrollbar::pixelsPerLineStep() and also incorrectly negated the
vertical velocity. Ideally, touch scrolling would use precise wheel
events, but as the rest of the code works correctly and scales by this
amount, make the one-line change that conforms with the previous code.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTouchSwipe):

3:47 PM Changeset in webkit [287793] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r283935): [ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-multiple-times.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231918

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark test as flaky.
3:45 PM Changeset in webkit [287792] by Russell Epstein
  • 26 edits in branches/safari-612.4.9.0-branch

Cherry-pick r286094. rdar://problem/87125111

Report the initiating url instead of the redirected one
https://bugs.webkit.org/show_bug.cgi?id=233037

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-20
Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub-expected.txt:

Source/WebCore:

As per the spec, blockedURI should use the requested URL of original request instead of redirected location.

  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequestInternal):
  • loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const): (WebCore::CachedResourceLoader::canRequestAfterRedirection const): (WebCore::CachedResourceLoader::updateRequestAfterRedirection):
  • loader/cache/CachedResourceLoader.h:
  • page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowChildContextFromSource const): (WebCore::ContentSecurityPolicy::allowScriptFromSource const): (WebCore::ContentSecurityPolicy::allowImageFromSource const): (WebCore::ContentSecurityPolicy::allowStyleFromSource const): (WebCore::ContentSecurityPolicy::allowFontFromSource const): (WebCore::ContentSecurityPolicy::allowManifestFromSource const): (WebCore::ContentSecurityPolicy::allowMediaFromSource const):
  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Pass pre-redirect URL to allowChildContextFromSource() and allowScriptFromSource().

  • NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

LayoutTests:

  • TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286094 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:22 PM Changeset in webkit [287791] by Russell Epstein
  • 26 edits in branches/safari-612.4.9.1-branch

Cherry-pick r286094. rdar://problem/87125111

Report the initiating url instead of the redirected one
https://bugs.webkit.org/show_bug.cgi?id=233037

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-20
Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub-expected.txt:

Source/WebCore:

As per the spec, blockedURI should use the requested URL of original request instead of redirected location.

  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequestInternal):
  • loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const): (WebCore::CachedResourceLoader::canRequestAfterRedirection const): (WebCore::CachedResourceLoader::updateRequestAfterRedirection):
  • loader/cache/CachedResourceLoader.h:
  • page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowChildContextFromSource const): (WebCore::ContentSecurityPolicy::allowScriptFromSource const): (WebCore::ContentSecurityPolicy::allowImageFromSource const): (WebCore::ContentSecurityPolicy::allowStyleFromSource const): (WebCore::ContentSecurityPolicy::allowFontFromSource const): (WebCore::ContentSecurityPolicy::allowManifestFromSource const): (WebCore::ContentSecurityPolicy::allowMediaFromSource const):
  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Pass pre-redirect URL to allowChildContextFromSource() and allowScriptFromSource().

  • NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

LayoutTests:

  • TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286094 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:19 PM Changeset in webkit [287790] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

A/B comparison tests fail trying to look up fuzzy match tolerance
https://bugs.webkit.org/show_bug.cgi?id=234974

Reviewed by Aditya Keerthi.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._run_self_comparison_test):
(SingleTestRunner._compare_output_with_reference):
Disable fuzzy matching for A/B tests, because A) we don't really want it
and B) it crashes run-webkit-tests because there is no actual reference file
in which to find the tolerance value.

2:56 PM Changeset in webkit [287789] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: add checker for unexpected fall through after ASSERT_NOT_REACHED() statements
<https://webkit.org/b/234932>
<rdar://87213520>

Reviewed by Brent Fulgham.

This checker only returns a confidence level of 4 (out of 5)
since there are too many different code patterns to check them
all perfectly using regular expressions.

Run new checker tests like this:
$ test-webkitpy webkitpy.style.checkers.cpp_unittest.CppStyleTest.test_debug_not_reached_assertion

Run this checker against a file or folder like this:
$ check-webkit-style --filter "-,+security/assertion_fallthrough" (file|folder)

  • Scripts/webkitpy/style/checkers/cpp.py:

(SingleLineView.init):

  • Expose trimmed_lines as a property on SingleLineView.

(_FunctionState.body_view): Add.

  • Add method to return a SingleLineView object containing the body of the function.

(check_function_body): Add.

  • New function to check for fall through after ASSERT_NOT_REACHED() statements.

(process_line):

  • Call check_function_body() to implement the new check.

(CppChecker.categories):

  • Add 'security/assertion_fallthrough' to the list of known checkers.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTestBase.perform_function_body_check): Add.

  • Add method to call check_function_body() for testing.

(CppStyleTest.test_debug_not_reached_assertion): Add.

  • Add tests for the new checker.
2:56 PM Changeset in webkit [287788] by Chris Dumez
  • 20 edits
    14 adds in trunk/LayoutTests

Resync web-platform-tests/dom from upstream
https://bugs.webkit.org/show_bug.cgi?id=234963

Reviewed by Geoffrey Garen.

Resync web-platform-tests/dom from upstream 84b2be5b17e8542dea2.

  • resources/resource-files.json:
  • web-platform-tests/dom/*: Updated.
2:51 PM Changeset in webkit [287787] by commit-queue@webkit.org
  • 14 edits in trunk

Remove obsolete DOM Level 2 "DOMFocusIn" / "DOMFocusOut" events
https://bugs.webkit.org/show_bug.cgi?id=234978

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-07
Reviewed by Geoff Garen.

Source/WebCore:

This patch removes these events because according to Chrome stats, only 0.04%
of page loads use them [1], which is below the Blink's removal threshold of 0.10%.

All the "top sites" listed as "DOMFocusIn" / "DOMFocusOut" adopters, are now dead.
Also, these events were never implemented in Firefox.

[1] https://chromestatus.com/metrics/feature/timeline/popularity/211

No new tests because it's a feature removal.

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):

  • dom/Element.h:
  • dom/EventNames.h:

Source/WebInspectorUI:

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord.EventType.displayName):

LayoutTests:

  • editing/deleting/insert-in-orphaned-selection-crash.html:
  • fast/events/focusinout-expected.txt:
  • fast/events/focusinout.html:
  • fast/events/scoped/editing-commands.html:
  • fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html:
  • fast/forms/textarea/textarea-autofocus-removal-while-focusing.html:
2:46 PM Changeset in webkit [287786] by Patrick Angle
  • 2 edits in trunk/Source/WebKit

REGRESSION(r286498): Web Inspector: Inspector2 fails to load in release builds and crashes with an assertion in debug builds
https://bugs.webkit.org/show_bug.cgi?id=234968

Reviewed by Devin Rousso.

Inspector2 would fail to open a local inspector frontend because m_inspectedPageIdentifier was not set before
it was used in WebInspectorUIProxy::createFrontendPage. To correct this, we now cache the inspected page
identifier immediately upon creating the WebInspectorUIProxy, instead of only in
WebInspectorUIProxy::updateForNewPageProcess. This also allows us to use the cached identifier in
WebInspectorUIProxy::openLocalInspectorFrontend as discussed in <http://webkit.org/b/233293#c5>.

  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::WebInspectorUIProxy):
(WebKit::WebInspectorUIProxy::openLocalInspectorFrontend):

2:46 PM Changeset in webkit [287785] by Chris Dumez
  • 4 edits
    4 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/webaudio from upstream
https://bugs.webkit.org/show_bug.cgi?id=234981

Reviewed by Geoffrey Garen.

Resync web-platform-tests/webaudio from upstream 84b2be5b17e8542dea2.

  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/acquire-the-content-expected.txt: Added.
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/acquire-the-content.html: Added.
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/w3c-import.log:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/w3c-import.log:
  • web-platform-tests/webaudio/the-audio-api/the-periodicwave-interface/createPeriodicWaveInfiniteValuesThrows-expected.txt: Added.
  • web-platform-tests/webaudio/the-audio-api/the-periodicwave-interface/createPeriodicWaveInfiniteValuesThrows.html: Added.
  • web-platform-tests/webaudio/the-audio-api/the-periodicwave-interface/w3c-import.log:
2:45 PM Changeset in webkit [287784] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Adopt linkedOnOrAfter() in more places
https://bugs.webkit.org/show_bug.cgi?id=234951

Reviewed by Wenson Hsieh.

Source/JavaScriptCore:

  • API/JSWrapperMap.mm:

(supportsInitMethodConstructors):

  • API/tests/testapi.cpp:

(TestAPI::promiseDrainDoesNotEatExceptions):

  • API/tests/testapi.mm:

(testMicrotaskWithFunction):

  • runtime/JSLock.cpp:

(JSC::JSLock::willReleaseLock):

  • runtime/ObjectPrototype.cpp:

(JSC::isPokerBros):
Adopt linkedOnOrAfter.

Source/WTF:

  • wtf/cocoa/LanguageCocoa.mm:

(WTF::canMinimizeLanguages):
Adopt linkedOnOrAfter and simplify.

  • wtf/cocoa/RuntimeApplicationChecksCocoa.h:

The weird mismatch between the iOS and macOS values for FirstVersionThatSupportsInitConstructors
is correct; the iOS version was bumped in r202670.

2:22 PM Changeset in webkit [287783] by Kate Cheney
  • 7 edits
    9 adds in trunk

CSP: strict-dynamic is causing incorrect and unexpected behavior
https://bugs.webkit.org/show_bug.cgi?id=234756
<rdar://problem/87018316>

Reviewed by Brent Fulgham.

Source/WebCore:

Per the CSP spec, if strict-dynamic is included in the script-src
directive, 'self' and 'unsafe-inline' should be ignored. This fixes a
bug where they were only ignored if specified before 'strict-dynamic'.

Additionally, this reports the sourceURL as empty for inline scripts
instead of using the contextURL, which was unexpectedly allowing
inline scripts when "self" was used with "strict-dynamic".

Tests: http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-host-list.html

http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-scheme-list.html
http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-self.html
http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-unsafe-inline.html

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::executeClassicScript):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allScriptPoliciesAllow const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):

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

(WebCore::ContentSecurityPolicySourceList::parseSource):

LayoutTests:

Add tests with re-arranged ordering of the source expressions.

  • http/tests/security/contentSecurityPolicy/resources/simpleSourcedScript.js: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-host-list-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-host-list.html: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-scheme-list-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-scheme-list.html: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-self.html: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-unsafe-inline-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-unsafe-inline.html: Added.
2:21 PM Changeset in webkit [287782] by Said Abou-Hallawa
  • 26 edits
    1 add in trunk/Source

[GPU Process] Remove the result FilterImage from FilterEffect
https://bugs.webkit.org/show_bug.cgi?id=232840
rdar://85425842

Reviewed by Darin Adler.

Source/WebCore:

Removing the result FilterImage from FilterEffect will allow reusing the
same FilterEffect for all the renderers that reference it. The results
will now be stored in the new class 'FilterResults'.

-- FilterData still keeps the results of applying the Filter to its

renderer in a new member of type FilterResults.

-- RenderLayerFilters will not need to clear its CSSFilter intermediate

results because this will happen once the temporary FilterResults goes
out of scope.

FilterResults will have two maps:

  1. FilterEffect -> FilterImage: The value is the result FilterImage of applying the FilterEffect.
  2. FilterImage -> FilterEffectSet: The value is a list of FilterEffects, whose FilterImages depend on the key FilterImage.
  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawFilteredImageBuffer):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawFilteredImageBuffer::apply):

  • platform/graphics/displaylists/DisplayListItems.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawFilteredImageBuffer):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/filters/Filter.cpp:

(WebCore::Filter::apply):

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

(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::clearResult): Deleted.
(WebCore::FilterEffect::clearResultsRecursive): Deleted.

  • platform/graphics/filters/FilterEffect.h:

(WebCore::FilterEffect::hasResult const): Deleted.
(WebCore::FilterEffect::filterImage const): Deleted.

  • platform/graphics/filters/FilterFunction.h:

(WebCore::FilterFunction::apply):
(WebCore::FilterFunction::outsets const):
(WebCore::FilterFunction::clearResult): Deleted.

  • platform/graphics/filters/FilterResults.h: Added.

(WebCore::FilterResults::effectResult const):
(WebCore::FilterResults::setEffectResult):
(WebCore::FilterResults::clearEffectResult):

  • platform/network/SynchronousLoaderClient.cpp:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::apply):
(WebCore::CSSFilter::clearIntermediateResults): Deleted.

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

(WebCore::RenderLayerFilters::applyFilterEffect):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::postApplyResource):
(WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):

  • rendering/svg/RenderSVGResourceFilter.h:
  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::apply):
(WebCore::SVGFilter::clearResult): Deleted.

  • svg/graphics/filters/SVGFilter.h:
  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::setupBuiltinEffects):
(WebCore::SVGFilterBuilder::buildFilterEffects):
(WebCore::SVGFilterBuilder::appendEffectToEffectRenderer):
(WebCore::SVGFilterBuilder::appendEffectToEffectReferences): Deleted.
(WebCore::SVGFilterBuilder::clearEffects): Deleted.
(WebCore::SVGFilterBuilder::clearResultsRecursive): Deleted.

  • svg/graphics/filters/SVGFilterBuilder.h:

(WebCore::SVGFilterBuilder::lastEffect const): Deleted.
(WebCore::SVGFilterBuilder::effectReferences): Deleted.
(WebCore::SVGFilterBuilder::addBuiltinEffects): Deleted.

Source/WebKit:

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):

1:52 PM Changeset in webkit [287781] by Patrick Angle
  • 19 edits in trunk/Source

[Cocoa] Web Driver: WebSocket over TLS failing over WebDriver with acceptInsecureCerts on Big Sur
https://bugs.webkit.org/show_bug.cgi?id=234403

Reviewed by BJ Burg.
Source/WebCore:

  • page/SocketProvider.cpp:

(WebCore::SocketProvider::createSocketStreamHandle):

  • platform/network/cf/SocketStreamHandleImpl.h:

(WebCore::SocketStreamHandleImpl::create):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::createStreams):

  • platform/network/curl/SocketStreamHandleImpl.h:

(WebCore::SocketStreamHandleImpl::create):

  • platform/network/soup/SocketStreamHandleImpl.h:

Source/WebKit:

macOS Big Sur and earlier do not use NSURLSession-based WebSockets, so we need a way to allow insecure
certificates under automation that does not rely on the WKNavigationDelegate to determine if an
authentication challenge should be accepted. In order to accomplish this we now plumb through an
_shouldAcceptInsecureCertificatesForWebSockets value from _WKAutomationSessionConfiguration to
SocketStreamHandleImplCFNet on platforms that do not HAVE(NSURLSESSION_WEBSOCKET), which allows automation
clients to enable this behavior when the acceptInsecureCerts capability is set on a session.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::createSocketStream):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::shouldAcceptInsecureCertificatesForWebSockets const):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/NetworkSocketStream.cpp:

(WebKit::NetworkSocketStream::create):
(WebKit::NetworkSocketStream::NetworkSocketStream):

  • NetworkProcess/NetworkSocketStream.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration _shouldAcceptInsecureCertificatesForWebSockets]):
(-[_WKWebsiteDataStoreConfiguration _setShouldAcceptInsecureCertificatesForWebSockets:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::shouldAcceptInsecureCertificatesForWebSockets const):
(WebKit::WebsiteDataStoreConfiguration::setShouldAcceptInsecureCertificatesForWebSockets):

1:25 PM Changeset in webkit [287780] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, rebaseline imported/w3c/web-platform-tests/html/dom/idlharness.https.html properly on iOS platforms.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
1:16 PM Changeset in webkit [287779] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Inline blocks that contain text with min-width, box-sizing: border-box incorrectly include the border in width calculation
https://bugs.webkit.org/show_bug.cgi?id=234935
<rdar://problem/87217423>

Reviewed by Antti Koivisto.

Source/WebCore:

The block formatting context root takes care of applying the the min/max-width constraints.

Test: fast/inline/min-max-width-and-preferred-width.html

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraintsForIntegration): remove redundant min/max-width checking.

LayoutTests:

  • fast/inline/min-max-width-and-preferred-width-expected.html: Added.
  • fast/inline/min-max-width-and-preferred-width.html: Added.
1:09 PM Changeset in webkit [287778] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

WebAccessibilityObjectWrapper accessibilityHitTest should call AXCoreObject::widget() on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=234973
<rdar://problem/87264153>

Reviewed by Chris Fleizach.

In isolated tree mode, the AX object widget() method and any subsequent
access to the returned value must be dispatch to the main thread.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):

12:28 PM Changeset in webkit [287777] by Wenson Hsieh
  • 7 edits in trunk

Teach modal container observer to make the body element scrollable if necessary
https://bugs.webkit.org/show_bug.cgi?id=234708
rdar://86960677

Reviewed by Tim Horton.

Source/WebCore:

Add a mechanism to allow ModalContainerObserver to force the body and/or document elements in the main document
to become vertically scrollable, in the case where a modal container has been detected.

In particular, if a modal container has already been detected and hidden away, the frame is non-scrollable, and
the body and/or document element satisfies both conditions:

  1. Has a height that is taller than the visible height of the top FrameView
  2. Has overflow-y: hidden;

...then we'll flag one or both of those elements and force them to be vertically scrollable during style
adjustment (i.e. return true from shouldMakeVerticallyScrollable()).

Covered by augmenting an existing API test:
ModalContainerObservation.HideUserInteractionBlockingElementAndMakeDocumentScrollable

  • page/ModalContainerObserver.cpp:

(WebCore::ModalContainerObserver::setContainer):
(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):
(WebCore::ModalContainerObserver::makeBodyAndDocumentElementScrollableIfNeeded):

Helper method that contains logic for overriding scrollability on the body or html element, if needed.

(WebCore::ModalContainerObserver::clearScrollabilityOverrides):
(WebCore::ModalContainerObserver::hideUserInteractionBlockingElementIfNeeded):

Drive-by fix: target is just a raw pointer here, so just assign it directly to foundElement instead of
trying to use move semantics.

(WebCore::ModalContainerObserver::revealModalContainer):
(WebCore::ModalContainerObserver::shouldMakeVerticallyScrollable const):

Add a helper method (similar to shouldHide()) that can be used to make elements vertically scrollable during
style adjustment time. See above for more details.

(WebCore::ModalContainerObserver::tryToMakeBodyAndDocumentElementScrollableThroughQuirks):

  • page/ModalContainerObserver.h:
  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):

Consult shouldMakeVerticallyScrollable in addition to shouldHide if ModalContainerObserver is present.

Tools:

Adjust an existing API test to exercise the change.

  • TestWebKitAPI/Tests/WebKit/modal-container-with-overlay.html:
  • TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:

(TestWebKitAPI::TEST):

12:20 PM Changeset in webkit [287776] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: Cannot step over because debugger is not paused
https://bugs.webkit.org/show_bug.cgi?id=234575

Reviewed by Devin Rousso.

Previously keyboard shortcuts for advancing the debugger did not check to make sure that the debugger was
actually paused before attempting to step. This led to an uncaught exception in engineering builds. We now
enable and disable these keyboard shortcuts based on the whether or not the debugger is currently paused.

  • UserInterface/Base/Main.js:
11:57 AM Changeset in webkit [287775] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebKit

Web process shouldn't crash if ImageBuffer::ensureBackendCreated() fails
https://bugs.webkit.org/show_bug.cgi?id=232520
<rdar://problem/84829717>

Reviewed by Simon Fraser.

Guard against the possibility of it returning null.

No new tests because there shouldn't be any behavior change after https://bugs.webkit.org/show_bug.cgi?id=232470.
It's still good to do this, though, to be defensive.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode const):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::createImageBufferBackendHandle):

11:48 AM Changeset in webkit [287774] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebKit

ImageBuffer with floating point logicalSize() paints into a slightly truncated destination rect
https://bugs.webkit.org/show_bug.cgi?id=225377

Reviewed by Tim Horton.

This is the rest of https://bugs.webkit.org/show_bug.cgi?id=232470.

This is also a follow-up of https://bugs.webkit.org/show_bug.cgi?id=232515.

No new tests; the behavior change is covered by
fast/backgrounds/hidpi-bitmap-background-origin-on-subpixel-position.html
since Tim Horton reverted the workaround for this bug that he landed in r276945.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):

11:46 AM Changeset in webkit [287773] by Ryan Haddad
  • 2 edits in trunk/Tools

REGRESSION: TestWebKitAPI.PublicSuffix.IsPublicSuffix is failing on some bots
https://bugs.webkit.org/show_bug.cgi?id=234609

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F): Disable failing subtest.

11:38 AM Changeset in webkit [287772] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

Make separate invalidation rulesets for negated selectors (inside :not())
https://bugs.webkit.org/show_bug.cgi?id=234959

Reviewed by Darin Adler.

Use this information to reduce traversal on class changes. Other mutations will follow.

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::collectClasses):
(WebCore::Style::computeClassChanges):
(WebCore::Style::ClassChangeInvalidation::computeInvalidation):

Adding a class can only make a regular selector (not inside :not()) start matching.
Adding a class can only make a negated selector (inside :not()) stop matching.
We only need to invalidate for the first case after the mutation has happened and for the second
case before it happens.

These are reversed when removing a class.

(WebCore::Style::ClassChangeInvalidation::invalidateBeforeChange):
(WebCore::Style::ClassChangeInvalidation::invalidateAfterChange):
(WebCore::Style::computeClassChange): Deleted.
(WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets): Deleted.

  • style/ClassChangeInvalidation.h:

(WebCore::Style::ClassChangeInvalidation::ClassChangeInvalidation):
(WebCore::Style::ClassChangeInvalidation::~ClassChangeInvalidation):

  • style/RuleFeature.cpp:

(WebCore::Style::RuleFeature::RuleFeature):
(WebCore::Style::RuleFeatureWithInvalidationSelector::RuleFeatureWithInvalidationSelector):
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

Compute the negation state. :not(foo) is negated, :not(:not(foo)) isn't.

(WebCore::Style::RuleFeatureSet::collectFeatures):

  • style/RuleFeature.h:

(WebCore::Style::RuleFeatureWithInvalidationSelector::RuleFeatureWithInvalidationSelector): Deleted.

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ensureInvalidationRuleSets):

Make separate ruleset.

  • style/StyleScopeRuleSets.h:
11:34 AM Changeset in webkit [287771] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

nullptr deref in ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=234018

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-07
Reviewed by Darin Adler.

In RenderBlockFlow::subtreeContainsFloat and RenderBlockFlow::subtreeContainsFloats we now will
use a non-recursive iterator and return true when we find something, or then return false at the
end of the function.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::subtreeContainsFloat const):
(WebCore::RenderBlockFlow::subtreeContainsFloats const):

11:24 AM Changeset in webkit [287770] by achristensen@apple.com
  • 59 edits in trunk

Unreviewed, reverting r287698.

Broke an internal build

Reverted changeset:

"Start using C++20"
https://bugs.webkit.org/show_bug.cgi?id=233963
https://commits.webkit.org/r287698

11:22 AM Changeset in webkit [287769] by graouts@webkit.org
  • 7 edits in trunk

Inserting a new @keyframes rule does not start animations that already used this name
https://bugs.webkit.org/show_bug.cgi?id=234955

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progression.

  • web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:

Source/WebCore:

In bug 234895, we added logic to handle the case where an existing @keyframes rule was manipulated
via the CSSOM API and ensured this would update the keyframes of any existing CSSAnimation currently
referencing this @keyframes rule.

Another WPT tests the case where a @keyframes rule is referenced by an animation prior to existing
in the stylesheet, adding that named @keyframes rule, and then testing a CSSAnimation was created.

To handle this case, we need to track which animation names were ignored during style resolution
due not matching an existing @keyframes rule. We now manage a list of invalid CSS animation names
stored on the KeyframeEffectStack (where we also keep track of the AnimationList last seen during
style resolution) and use that to determine when, even though the previous and current AnimationList
contain the same data, a previously-ignored animation should now be processed due to its referenced
@keyframes rule now existing.

  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::clearInvalidCSSAnimationNames):
(WebCore::KeyframeEffectStack::hasInvalidCSSAnimationNames const):
(WebCore::KeyframeEffectStack::containsInvalidCSSAnimationName const):
(WebCore::KeyframeEffectStack::addInvalidCSSAnimationName):

  • animation/KeyframeEffectStack.h:
  • style/Styleable.cpp:

(WebCore::keyframesRuleExistsForAnimation):
(WebCore::Styleable::animationListContainsNewlyValidAnimation const):
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::shouldConsiderAnimation): Deleted.

  • style/Styleable.h:
11:21 AM Changeset in webkit [287768] by achristensen@apple.com
  • 4 edits in trunk

Unreviewed, reverting r287718.

Broke an internal build

Reverted changeset:

"[PlayStation] Fix build break after r287698"
https://bugs.webkit.org/show_bug.cgi?id=234931
https://commits.webkit.org/r287718

11:04 AM Changeset in webkit [287767] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.4

Tag Safari-613.1.12.1.4.

10:59 AM Changeset in webkit [287766] by Russell Epstein
  • 2 edits in branches/safari-613.1.12.1-branch/Source/WebKit

Cherry-pick r287754. rdar://problem/87228791

[MacCatalyst] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=234962
<rdar://87228791>

Reviewed by Brent Fulgham.

Add required syscall in MacCatalyst sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287754 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:58 AM Changeset in webkit [287765] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.4

10:56 AM Changeset in webkit [287764] by graouts@webkit.org
  • 4 edits in trunk

Transitions without an explicit property-name should not be considered
https://bugs.webkit.org/show_bug.cgi?id=234960

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Mark WPT progression.

  • web-platform-tests/css/css-transitions/events-004-expected.txt:

Source/WebCore:

When we fill the transition-property to match the number of another transition-
property, we should not consider running a transition for that property.

  • style/Styleable.cpp:

(WebCore::transitionMatchesProperty):

10:53 AM Changeset in webkit [287763] by youenn@apple.com
  • 16 edits in trunk/Source

Use completion handlers for takeAllMessagesForPort methods
https://bugs.webkit.org/show_bug.cgi?id=234947

Reviewed by Chris Dumez.

Source/WebCore:

Covered by existing tests.

  • dom/MessagePort.cpp:
  • dom/messageports/MessagePortChannel.cpp:
  • dom/messageports/MessagePortChannel.h:
  • dom/messageports/MessagePortChannelProvider.h:
  • dom/messageports/MessagePortChannelProviderImpl.cpp:
  • dom/messageports/MessagePortChannelProviderImpl.h:
  • dom/messageports/MessagePortChannelRegistry.cpp:
  • dom/messageports/MessagePortChannelRegistry.h:
  • dom/messageports/WorkerMessagePortChannelProvider.cpp:
  • dom/messageports/WorkerMessagePortChannelProvider.h:

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h:
10:48 AM Changeset in webkit [287762] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

Expose iterators on AnimationList
https://bugs.webkit.org/show_bug.cgi?id=234957

Reviewed by Antti Koivisto.

  • animation/WebAnimationUtilities.cpp:

(WebCore::compareCSSAnimations):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueListForAnimationOrTransitionProperty):
(WebCore::animationShorthandValue):

  • css/makeprop.pl:

(generateAnimationPropertyInitialValueSetter):

  • platform/animation/AnimationList.h:

(WebCore::AnimationList::begin const):
(WebCore::AnimationList::end const):
(WebCore::AnimationList::rbegin const):
(WebCore::AnimationList::rend const):

  • style/Styleable.cpp:

(WebCore::Styleable::updateCSSAnimations const):
(WebCore::compileTransitionPropertiesInStyle):
(WebCore::updateCSSTransitionsForStyleableAndProperty):

10:46 AM Changeset in webkit [287761] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Values in WebAnimation::instances should not be null-checked
https://bugs.webkit.org/show_bug.cgi?id=234948

Reviewed by Darin Adler.

The HashSet<WebAnimation*> returned by WebAnimation::instances() cannnot hold nullptr
values so we should not have any check for a null value when iterating over its values.

  • dom/Document.cpp:

(WebCore::Document::matchingAnimations):
(WebCore::Document::keyframesRuleDidChange):

10:44 AM Changeset in webkit [287760] by youenn@apple.com
  • 4 edits in trunk

Allow storing form data responses in Cache Storage
https://bugs.webkit.org/show_bug.cgi?id=234881

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/cache-storage/window/cache-put.https-expected.txt:

Source/WebCore:

Covered by rebased tests.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::put):

10:43 AM Changeset in webkit [287759] by youenn@apple.com
  • 4 edits in trunk

Expose rvfc processingDuration for the WebRTC code path
https://bugs.webkit.org/show_bug.cgi?id=234949

Reviewed by Eric Carlson.

Source/WebCore:

This processing duration is the time it took for an assembled frame to be decoded and sent to RealtimIncomingVideoSource.
This duration can be approximately retrieved from WebRTC encoded transform (time for the assembled frame, aka time just before decoding)
and the time at which it is exposed by requestVideoFrameCallback (aka time just after decoding).
The processing duration is rounded in milliseconds.

Covered by updated test.

  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

LayoutTests:

  • webrtc/peerConnection-rvfc.html:
10:36 AM Changeset in webkit [287758] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Clean up StructureStubInfo
https://bugs.webkit.org/show_bug.cgi?id=234943

Reviewed by Saam Barati.

Use std::unique_ptr<PolymorphicAccess> instead of raw pointer.

  • bytecode/CheckPrivateBrandStatus.cpp:

(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/DeleteByStatus.cpp:

(JSC::DeleteByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/InByStatus.cpp:

(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/InstanceOfStatus.cpp:

(JSC::InstanceOfStatus::computeForStubInfo):

  • bytecode/PutByStatus.cpp:

(JSC::PutByStatus::computeForStubInfo):

  • bytecode/SetPrivateBrandStatus.cpp:

(JSC::SetPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::visitAggregateImpl):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::summary const):
(JSC::StructureStubInfo::containsPC const):
(JSC::StructureStubInfo::~StructureStubInfo): Deleted.

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::offsetOfCodePtr):
(JSC::StructureStubInfo::offsetOfDoneLocation):
(JSC::StructureStubInfo::offsetOfSlowPathStartLocation):
(JSC::StructureStubInfo::offsetOfSlowOperation):
(JSC::StructureStubInfo::offsetOfCountdown):

10:06 AM Changeset in webkit [287757] by Simon Fraser
  • 8 edits
    2 adds in trunk

REGRESSION (Safari 14): background-attachment: local does not work
https://bugs.webkit.org/show_bug.cgi?id=219324
Source/WebCore:

<rdar://71808922>

Reviewed by Antti Koivisto.

With async overflow scrolling, we need to trigger a repaint if the scrolling element
has any background layer with background-attachment: local.

The background won't always be synchronized with the scrolling, but a little jitter
is better than a broken CSS behavior (and this is what Firefox does).

Test: fast/repaint/background-attachment-local-scroll.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::needsRepaintOnCompositedScroll const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::hasAnyLocalBackground const):

  • rendering/style/RenderStyle.h:

LayoutTests:

Reviewed by Antti Koivisto.

Skip the test on platforms without async overflow scroll.

  • TestExpectations:
  • fast/repaint/background-attachment-local-scroll-expected.txt: Added.
  • fast/repaint/background-attachment-local-scroll.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:04 AM Changeset in webkit [287756] by Kate Cheney
  • 5 edits
    2 adds in trunk

Implement CSP strict-dynamic for module scripts
https://bugs.webkit.org/show_bug.cgi?id=234934
<rdar://problem/83728374>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/contentSecurityPolicy/strict-dynamic-module-script.html

This also adds the contextLine value instead of using the default
OrdinalNumber::beforeFirst() value.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::requestModuleScript):
(WebCore::ScriptElement::executeClassicScript):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/strict-dynamic-module-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/strict-dynamic-module-script.html: Added.
9:44 AM Changeset in webkit [287755] by Peng Liu
  • 3 edits in trunk/Source/WebKit

Clean up FullscreenClient
https://bugs.webkit.org/show_bug.cgi?id=233076

Reviewed by Jer Noble.

This patch is a follow-up to r285741.

  • Get rid of WKFullscreenClientView and use WKWebView instead.
  • UIProcess/Cocoa/FullscreenClient.h:
  • UIProcess/Cocoa/FullscreenClient.mm:

(WebKit::FullscreenClient::FullscreenClient):
(WebKit::FullscreenClient::willEnterFullscreen):
(WebKit::FullscreenClient::didEnterFullscreen):
(WebKit::FullscreenClient::willExitFullscreen):
(WebKit::FullscreenClient::didExitFullscreen):

9:37 AM Changeset in webkit [287754] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[MacCatalyst] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=234962
<rdar://87228791>

Reviewed by Brent Fulgham.

Add required syscall in MacCatalyst sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:
9:32 AM Changeset in webkit [287753] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

Checkboxes on PurpleAir map controls are much smaller in Safari than other browsers
https://bugs.webkit.org/show_bug.cgi?id=234897
rdar://83367191

Reviewed by Darin Adler.

Source/WebCore:

Unlike other browser engines, WebKit adjusts the size of checkboxes and
radio buttons based on the font-size of the element, when the size is
unspecified. The checkboxes on PurpleAir have a font-size of 9px, which
results in WebKit painting a checkbox using NSControlSizeMini (with a
length of 10px). In constrast, Chrome and Firefox simply use their
default sizes (13px and 12.6px respectively).

To fix, remove the font-size adjustments for checkboxes and radio
buttons with an unspecified size, and use the current effective
default of NSControlSizeSmall (with a length of 12px) to paint the
controls.

This ensures our unspecified sizing behavior matches other browsers.
There may be some risk for other WebKit clients that currently rely
on font-size getting them their desired size. However, this risk is
believed to be minimal given the sizes of these controls are already
restricted to a 10 - 16px range.

Test: fast/forms/checkbox-radio-font-size.html

  • platform/mac/ThemeMac.mm:

(WebCore::checkboxSize):
(WebCore::radioSize):
(WebCore::ThemeMac::controlSize const):

LayoutTests:

  • fast/forms/checkbox-radio-font-size-expected.html: Added.
  • fast/forms/checkbox-radio-font-size.html: Added.
9:27 AM Changeset in webkit [287752] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Regression in inspector/audit/run-resources.html
https://bugs.webkit.org/show_bug.cgi?id=196196

Reviewed by Chris Lord.

Fix JavaScript file MIME type check by comparing to 'text/javascript' or 'application/javascript'.

  • inspector/audit/run-resources.html:
  • platform/gtk/TestExpectations:
9:19 AM Changeset in webkit [287751] by Russell Epstein
  • 4 edits
    4 adds in branches/safari-612.4.9.3-branch

Cherry-pick r287604. rdar://problem/85966622

Protect frame from destruction in HTMLMediaElement::setupAndCallJS
https://bugs.webkit.org/show_bug.cgi?id=234259

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-04
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/media/media-element-frame-destroyed-crash.html

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setupAndCallJS): Protect the frame before executing the JS code, so that it is not destroyed before its associated ScriptController.

LayoutTests:

Add non-regression test, embedded in multiple iframes to make regression easily reproducible.

  • http/conf/mime.types: Ensure that ts files are served with MIME type video/mp2t as that's required to make the non-regression test work properly.
  • http/tests/media/media-element-frame-destroyed-crash-expected.txt: Added.
  • http/tests/media/media-element-frame-destroyed-crash.html: Added.
  • http/tests/media/resources/empty.ts: Added.
  • http/tests/media/resources/media-element-frame-destroyed-crash-subframe.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287604 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:17 AM Changeset in webkit [287750] by Russell Epstein
  • 8 edits in branches/safari-612.4.9.3-branch/Source

Versioning.

WebKit-7612.4.9.3.1

8:55 AM Changeset in webkit [287749] by Russell Epstein
  • 4 edits
    4 adds in branches/safari-612.4.9.2-branch

Cherry-pick r287604. rdar://problem/85966622

Protect frame from destruction in HTMLMediaElement::setupAndCallJS
https://bugs.webkit.org/show_bug.cgi?id=234259

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-04
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/media/media-element-frame-destroyed-crash.html

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setupAndCallJS): Protect the frame before executing the JS code, so that it is not destroyed before its associated ScriptController.

LayoutTests:

Add non-regression test, embedded in multiple iframes to make regression easily reproducible.

  • http/conf/mime.types: Ensure that ts files are served with MIME type video/mp2t as that's required to make the non-regression test work properly.
  • http/tests/media/media-element-frame-destroyed-crash-expected.txt: Added.
  • http/tests/media/media-element-frame-destroyed-crash.html: Added.
  • http/tests/media/resources/empty.ts: Added.
  • http/tests/media/resources/media-element-frame-destroyed-crash-subframe.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287604 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:54 AM Changeset in webkit [287748] by Russell Epstein
  • 4 edits
    4 adds in branches/safari-612.4.9.0-branch

Cherry-pick r287604. rdar://problem/85966622

Protect frame from destruction in HTMLMediaElement::setupAndCallJS
https://bugs.webkit.org/show_bug.cgi?id=234259

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-04
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/media/media-element-frame-destroyed-crash.html

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setupAndCallJS): Protect the frame before executing the JS code, so that it is not destroyed before its associated ScriptController.

LayoutTests:

Add non-regression test, embedded in multiple iframes to make regression easily reproducible.

  • http/conf/mime.types: Ensure that ts files are served with MIME type video/mp2t as that's required to make the non-regression test work properly.
  • http/tests/media/media-element-frame-destroyed-crash-expected.txt: Added.
  • http/tests/media/media-element-frame-destroyed-crash.html: Added.
  • http/tests/media/resources/empty.ts: Added.
  • http/tests/media/resources/media-element-frame-destroyed-crash-subframe.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287604 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:52 AM Changeset in webkit [287747] by Russell Epstein
  • 8 edits in branches/safari-612.4.9.2-branch/Source

Versioning.

WebKit-7612.4.9.2.1

8:47 AM Changeset in webkit [287746] by Russell Epstein
  • 4 edits
    4 adds in branches/safari-612.4.9.1-branch

Cherry-pick r287604. rdar://problem/85966622

Protect frame from destruction in HTMLMediaElement::setupAndCallJS
https://bugs.webkit.org/show_bug.cgi?id=234259

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-04
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/media/media-element-frame-destroyed-crash.html

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setupAndCallJS): Protect the frame before executing the JS code, so that it is not destroyed before its associated ScriptController.

LayoutTests:

Add non-regression test, embedded in multiple iframes to make regression easily reproducible.

  • http/conf/mime.types: Ensure that ts files are served with MIME type video/mp2t as that's required to make the non-regression test work properly.
  • http/tests/media/media-element-frame-destroyed-crash-expected.txt: Added.
  • http/tests/media/media-element-frame-destroyed-crash.html: Added.
  • http/tests/media/resources/empty.ts: Added.
  • http/tests/media/resources/media-element-frame-destroyed-crash-subframe.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287604 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:45 AM Changeset in webkit [287745] by Russell Epstein
  • 8 edits in branches/safari-612.4.9.1-branch/Source

Versioning.

WebKit-7612.4.9.1.2

7:08 AM Changeset in webkit [287744] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[Cleanup] RenderElement::containingBlockFor*(fixed/absolute/inflow)Position is slightly confusing
https://bugs.webkit.org/show_bug.cgi?id=234939

Reviewed by Antti Koivisto.

These 3 helper functions (containingBlockForFixedPosition/containingBlockForAbsolutePosition/containingBlockForObjectInFlow)
are expected to return an ancestor renderer which would act as the containing block if the renderer was
fixed/absolute/inflow positioned (in their current form they should read as containingBlockIfTheRendererWasFixedPositioned..)

These functions were introduced as part of LogicalSelectionOffsetCaches where we cache all 3 types of
containing blocks (fixed/absolute/inflow) to save containingBlock() calls as the cached object gets propagated
to ancestor renderers (so we really have a "what if" type of use case).

After some refactoring (and moving them out of LogicalSelectionOffsetCaches), we started introducing more and more
callsites of these functions where the "what if" question made less sense.

This patch replaces these 3 functions with a static helper:

static RenderBlock* containingBlockForPositionType(PositionType, const RenderObject&);

While it does not make the callsites look much cleaner, it helps to stop the spread of the special containing block handling for top-layer/backdrop boxes.

  • dom/Element.cpp:

(WebCore::layoutOverflowRectContainsAllDescendants):

  • rendering/LogicalSelectionOffsetCaches.h:

(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):

  • rendering/RenderElement.cpp:

(WebCore::nearestNonAnonymousContainingBlockIncludingSelf): Deleted.
(WebCore::RenderElement::containingBlockForFixedPosition const): Deleted.
(WebCore::RenderElement::containingBlockForAbsolutePosition const): Deleted.

  • rendering/RenderElement.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleWillChange):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionGeometries):

  • rendering/RenderObject.cpp:

(WebCore::nearestNonAnonymousContainingBlockIncludingSelf):
(WebCore::RenderObject::containingBlockForPositionType):
(WebCore::RenderObject::containingBlock const):
(WebCore::RenderObject::containingBlockForObjectInFlow const): Deleted.

  • rendering/RenderObject.h:
5:02 AM Changeset in webkit [287743] by Nikolas Zimmermann
  • 4 edits
    2 moves in trunk/Source/WebCore

[LBSE] Rename RenderSVGRect -> LegacyRenderSVGRect
https://bugs.webkit.org/show_bug.cgi?id=234878

Reviewed by Rob Buis.

Following the established procedure: rename RenderSVGRect -> LegacyRenderSVGRect.
In a follow-up patch RenderSVGRect will be reintroduced for LBSE, inheriting from
RenderSVGShape instead of LegacyRenderSVGShape.

Covered by existing tests, no change in behaviour.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/svg/LegacyRenderSVGRect.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGRect.cpp.

(WebCore::LegacyRenderSVGRect::LegacyRenderSVGRect):
(WebCore::LegacyRenderSVGRect::rectElement const):
(WebCore::LegacyRenderSVGRect::updateShapeFromElement):
(WebCore::LegacyRenderSVGRect::fillShape const):
(WebCore::LegacyRenderSVGRect::strokeShape const):
(WebCore::LegacyRenderSVGRect::shapeDependentStrokeContains):
(WebCore::LegacyRenderSVGRect::shapeDependentFillContains const):
(WebCore::LegacyRenderSVGRect::isRenderingDisabled const):

  • rendering/svg/LegacyRenderSVGRect.h: Renamed from Source/WebCore/rendering/svg/RenderSVGRect.h.
  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::createElementRenderer):

12:45 AM Changeset in webkit [287742] by Martin Robinson
  • 16 edits in trunk

When transform-style: preserve-3d is used with a grouping property it should still create a containing block
https://bugs.webkit.org/show_bug.cgi?id=234145
<rdar://problem/86630387>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties-containing-block-expected.txt:

Source/WebCore:

No new tests. This is covered by an existing WPT test.

Previously, when a grouping property (and the few extra properties specific to WebKit) forced
transform-style: flat, this change was made in the StyleAdjuster and affected computed style.
The specification says that these properties should actually adjust the used value of
the property.

The specification also says:

The use of this property with any value other than none establishes a
stacking context. It also establishes a containing block for all
descendants, just like the transform property does.

Together, this means that no matter what the used value is of transform-style, it should
establish a containing block and create a stacking context.

This change adds a usedTransformStyle RenderStyle method and a StyleRareNonInheritedData member
to adjust the return value appropriately. RenderStyle::preserves3D reads the used value
and hasTransformRelatedProperty, which is used for establishing containing blocks
and stacking contexts, uses the calculated value.

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::preserves3D const): Use usedTransformStyle.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry): This now calls preserve3D() and usedTransformStyle3D().

  • rendering/RenderLayerCompositor.cpp:

(WebCore::recompositeChangeRequiresGeometryUpdate): Ditto.
(WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility const): Ditto.
(WebCore::RenderLayerCompositor::computeIndirectCompositingReason const): Ditto.
(WebCore::RenderLayerCompositor::styleChangeMayAffectIndirectCompositingReasons): Ditto.
(WebCore::RenderLayerCompositor::layerHas3DContent const): Ditto.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRecompositeLayer const): Ditto.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasTransformRelatedProperty const): Modified to look at the calculated value explicitly.
(WebCore::RenderStyle::usedTransformStyle3D const): Return 'flat' when the property is forced to flat.
(WebCore::RenderStyle::preserves3D const): Look at the used value.
(WebCore::RenderStyle::setTransformStyleForcedToFlat): Added.

  • rendering/style/StyleRareNonInheritedData.cpp: Added a new transformStyleForcedToFlat member.

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Ditto.
(WebCore::StyleRareNonInheritedData::operator== const): Ditto.

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const): Call setTransformStyleForcedToFlat with the
appropriate value when an element has 'preserve-3d' set.

LayoutTests:

  • compositing/overflow-trumps-transform-style-expected.txt:
  • compositing/overflow-trumps-transform-style.html: Update to test used value and reflect that computed value doesn't change.
  • css3/blending/blend-mode-transform-style-expected.txt:
  • css3/blending/blend-mode-transform-style.html: Ditto.
12:28 AM Changeset in webkit [287741] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, removing duplicated code added in https://commits.webkit.org/245793@trunk.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::didMutateRules):

Note: See TracTimeline for information about the timeline view.