Timeline



Oct 4, 2021:

11:45 PM Changeset in webkit [283538] by ntim@apple.com
  • 2 edits in trunk/LayoutTests

Update ios-wk2 test expectations for select-validity.html WPT
https://bugs.webkit.org/show_bug.cgi?id=231217

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-validity-expected.txt:
10:10 PM Changeset in webkit [283537] by mmaxfield@apple.com
  • 14 edits in trunk

Stop parsing context-sensitive colors in override-color
https://bugs.webkit.org/show_bug.cgi?id=231052
<rdar://problem/83746258>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

These are being upstreamed in https://github.com/web-platform-tests/wpt/pull/31078.

  • web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html:
  • web-platform-tests/css/css-fonts/parsing/font-palette-values-valid-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:

Source/WebCore:

The spec has split the <color> production into two halves:
absolute colors and non-absolute colors. This patch adds a new
enum argument to consumeColor() to distinguish which production
you want.

Tests: imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html

imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html

  • css/StyleColor.cpp:

(WebCore::StyleColor::colorFromKeyword):
(WebCore::isVGAPaletteColor):
(WebCore::isNonVGANamedColor):
(WebCore::StyleColor::isAbsoluteColorKeyword):
(WebCore::StyleColor::isSystemColorKeyword):
(WebCore::StyleColor::isColorKeyword):
(WebCore::StyleColor::isSystemColor): Deleted.

  • css/StyleColor.h:

(WebCore::StyleColor::isColorKeyword):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSystemColor):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeOverrideColorsDescriptor):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeOriginColor):
(WebCore::CSSPropertyParserHelpers::consumeColorWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeColor):

  • css/parser/CSSPropertyParserHelpers.h:

(WebCore::CSSPropertyParserHelpers::consumeColor):

  • platform/ColorData.gperf:
  • testing/Internals.cpp:

(WebCore::Internals::systemColorForCSSValue):

8:52 PM Changeset in webkit [283536] by mmaxfield@apple.com
  • 13 edits in trunk

Remove the "none" value from font-palette
https://bugs.webkit.org/show_bug.cgi?id=231050
<rdar://problem/83745650>

Reviewed by Wenson Hsieh.

LayoutTests/imported/w3c:

This is being upstreamed at https://github.com/web-platform-tests/wpt/pull/31077.

  • web-platform-tests/css/css-fonts/parsing/font-palette-invalid.html:
  • web-platform-tests/css/css-fonts/parsing/font-palette-valid.html:

Source/WebCore:

The spec changed in
https://github.com/w3c/csswg-drafts/commit/b7103b0269cde51914af02f5ca1e5582d44e7b70.
Luckily, we never implemented this anyway, so this is just a parsing change.

Tests: imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-invalid.html

imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-valid.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontPaletteFromStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontPalette):

  • platform/graphics/FontPalette.h:

(WebCore::operator<<):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::addAttributesForFontPalettes):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertFontPalette):

8:39 PM Changeset in webkit [283535] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Disable simplified text measuring codepath when first style line has related unique values
https://bugs.webkit.org/show_bug.cgi?id=231177

Reviewed by Antti Koivisto.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::inlineItemWidth const):

  • layout/integration/LayoutIntegrationBoxTree.cpp:
  • rendering/RenderText.cpp:

(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):

8:37 PM Changeset in webkit [283534] by mmaxfield@apple.com
  • 91 edits
    2 moves in trunk/LayoutTests/imported/w3c

Test gardening for font-palette WPT tests
https://bugs.webkit.org/show_bug.cgi?id=231208

Unreviewed.

Update the WPT tests according to
https://github.com/web-platform-tests/wpt/pull/31044.

  • web-platform-tests/css/css-fonts/animations/font-palette-animation-2-expected.html:
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-2.html:
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-3-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-3.html:
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-expected.html:
  • web-platform-tests/css/css-fonts/animations/font-palette-animation.html:
  • web-platform-tests/css/css-fonts/font-palette-10-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-10.html:
  • web-platform-tests/css/css-fonts/font-palette-11-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-11.html:
  • web-platform-tests/css/css-fonts/font-palette-12-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-12.html:
  • web-platform-tests/css/css-fonts/font-palette-13-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-13.html:
  • web-platform-tests/css/css-fonts/font-palette-14-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-14.html:
  • web-platform-tests/css/css-fonts/font-palette-15-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-15.html:
  • web-platform-tests/css/css-fonts/font-palette-16-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-16.html:
  • web-platform-tests/css/css-fonts/font-palette-17-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-17.html:
  • web-platform-tests/css/css-fonts/font-palette-18-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-18.html:
  • web-platform-tests/css/css-fonts/font-palette-19-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-19.html:
  • web-platform-tests/css/css-fonts/font-palette-2-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-2.html:
  • web-platform-tests/css/css-fonts/font-palette-20-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-20.html:
  • web-platform-tests/css/css-fonts/font-palette-21-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-21.html:
  • web-platform-tests/css/css-fonts/font-palette-22-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-22.html:
  • web-platform-tests/css/css-fonts/font-palette-23-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-23.html:
  • web-platform-tests/css/css-fonts/font-palette-24-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-24.html:
  • web-platform-tests/css/css-fonts/font-palette-25-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-25.html:
  • web-platform-tests/css/css-fonts/font-palette-26-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-26.html:
  • web-platform-tests/css/css-fonts/font-palette-27-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-27.html:
  • web-platform-tests/css/css-fonts/font-palette-28-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-28.html:
  • web-platform-tests/css/css-fonts/font-palette-29-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-29.html:
  • web-platform-tests/css/css-fonts/font-palette-3-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-3.html:
  • web-platform-tests/css/css-fonts/font-palette-30-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-30.html:
  • web-platform-tests/css/css-fonts/font-palette-31-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-31.html:
  • web-platform-tests/css/css-fonts/font-palette-4-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-4.html:
  • web-platform-tests/css/css-fonts/font-palette-5-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-5.html:
  • web-platform-tests/css/css-fonts/font-palette-6-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-6.html:
  • web-platform-tests/css/css-fonts/font-palette-7-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-7.html:
  • web-platform-tests/css/css-fonts/font-palette-8-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-8.html:
  • web-platform-tests/css/css-fonts/font-palette-9-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-9.html:
  • web-platform-tests/css/css-fonts/font-palette-add-2-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-add-2.html:
  • web-platform-tests/css/css-fonts/font-palette-add-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-add.html:
  • web-platform-tests/css/css-fonts/font-palette-empty-font-family-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-empty-font-family.html:
  • web-platform-tests/css/css-fonts/font-palette-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-modify-2-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-modify-2.html:
  • web-platform-tests/css/css-fonts/font-palette-modify-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-modify.html:
  • web-platform-tests/css/css-fonts/font-palette-remove-2-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-remove-2.html:
  • web-platform-tests/css/css-fonts/font-palette-remove-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-remove.html:
  • web-platform-tests/css/css-fonts/font-palette.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-add-2-expected.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-add-2.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-add-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-add.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-delete-2-expected.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-delete-2.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-delete-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-delete.html:
  • web-platform-tests/css/css-fonts/resources/COLR-palettes-test-font-no-light-dark.ttf: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/resources/Ahem-COLR-palettes-no-light-dark.ttf.
  • web-platform-tests/css/css-fonts/resources/COLR-palettes-test-font.ttf: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/resources/Ahem-COLR-palettes.ttf.
7:52 PM Changeset in webkit [283533] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Hyphenation should not be applied with 'word-break: break-all'
https://bugs.webkit.org/show_bug.cgi?id=231189

Reviewed by Antti Koivisto.

"break-all: Breaking is allowed within “words”: specifically...Hyphenation is not applied."

https://drafts.csswg.org/css-text-3/#word-break-property.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):

7:34 PM Changeset in webkit [283532] by Russell Epstein
  • 1 copy in tags/Safari-613.1.3.1

Tag Safari-613.1.3.1.

7:32 PM Changeset in webkit [283531] by Cameron McCormack
  • 19 edits
    2 moves
    4 adds in trunk

Choose an appropriate color space when converting an SVG image into a NativeImage for canvas drawImage
https://bugs.webkit.org/show_bug.cgi?id=231062
<rdar://problem/83752451>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Add a test for drawImage() with an SVG image that has sRGB and Display
P3 colors.

Not adding tests for patterns pointing to SVG images for now, since
WebKit currently always taints the canvas in that case, or for
ImageBitmaps wrapping SVG images, since we always flatten them to sRGB
(and we don't track what content is inside the SVG to make a better
decision about what color space ImageBuffer to use).

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-expected.txt.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js:
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-0.7333-0-0.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-1-0-0.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000.svg: Added.

Source/WebCore:

When GPUP canvas is enabled, drawImage() with an SVG image is handled
by drawing into a NativeImage and then sending that to the GPUP. We
need to choose a color space for the NativeImage's ImageBuffer that
matches the canvas.

Once full SVG rendering is supported by the GPU process, we can undo
this code, as we'll no longer be using a NativeImage.

Test: imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https.html

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImageForCanvas):

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

(WebCore::Image::drawForCanvas):

  • platform/graphics/Image.h:
  • platform/graphics/MediaPlayer.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForCanvasForContainer):
(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::drawForContainerInternal):
(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::drawForCanvas):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::drawInternal):
(WebCore::SVGImage::drawAsNativeImage):

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

(WebCore::SVGImageForContainer::drawForCanvas):

  • svg/graphics/SVGImageForContainer.h:

LayoutTests:

  • TestExpectations:
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
7:32 PM Changeset in webkit [283530] by Russell Epstein
  • 8 edits in branches/safari-613.1.3-branch/Source

Versioning.

WebKit-7613.1.3.1

6:22 PM Changeset in webkit [283529] by Cameron McCormack
  • 2 edits in trunk/LayoutTests

Update test expectations for canvas color space tests in simulator
https://bugs.webkit.org/show_bug.cgi?id=231204
<rdar://problem/83865405>

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
5:52 PM Changeset in webkit [283528] by Jonathan Bedard
  • 2 edits in trunk/Tools

[ews-build.webkit.org] check-patch-relevance can get stuck
https://bugs.webkit.org/show_bug.cgi?id=231190
<rdar://problem/77327168>

Reviewed by Alexey Proskuryakov.

  • CISupport/ews-build/steps.py:

(CheckPatchRelevance): Compute all regexes in advance.
(CheckPatchRelevance._patch_is_relevant): Rely on pre-computed regexes,
limit the number of characters to check in a line to 250 and include a
hard-timeout so that a patch can never get EWS stuck.

5:33 PM Changeset in webkit [283527] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Display return values in nicer way in the jsc REPL and add a prettyPrint function
https://bugs.webkit.org/show_bug.cgi?id=230931
<rdar://problem/83698777>

Reviewed by Tadeu Zagallo.

Currently, print(1), print("1"), and print([1]) all print to stdout
simply as "1" (without the quotes). Same for values when running the
REPL. This isn't super helpful. Let's print quotes for strings, and
brackets for arrays. This patch adds a prettyPrint function to do
that, since we have a lot of tests that depend on the old print behavior.

This patch also makes values printed in the REPL the new pretty style.

  • jsc.cpp:

(toCString):
(printInternal):
(JSC_DEFINE_HOST_FUNCTION):
(runInteractive):
(cStringFromViewWithString): Deleted.

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toWTFStringForConsole const):

  • runtime/JSCJSValue.h:
4:50 PM Changeset in webkit [283526] by jer.noble@apple.com
  • 10 edits in trunk/Source/WebCore

[Build-time perf] Forward-declare more things in ScriptExecutionContext.h
https://bugs.webkit.org/show_bug.cgi?id=231182

Reviewed by Tim Horton.

Forward declare, rather than include, more classes and enums in ScriptExecutionContext.h.

Any inline definition in the style of RefPtr<Type> type() { return nullptr; } will cause a compilation
error if the Type is not fully defined, so these definitions should be moved the the .cpp file.

Removing all the #includes and replacing them with forward-declarations causes downstream failures,
so add more forward-declarations and move definitions to the implementation file wherever possible.

  • Modules/permissions/Permissions.cpp:
  • Modules/permissions/Permissions.h:
  • Modules/storage/DummyStorageProvider.h:
  • dom/Document.cpp:
  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::permissionController):
(WebCore::ScriptExecutionContext::createRTCDataChannelRemoteHandlerConnection):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::permissionController): Deleted.
(WebCore::ScriptExecutionContext::createRTCDataChannelRemoteHandlerConnection): Deleted.

  • workers/WorkerLoaderProxy.h:
  • workers/WorkerGlobalScope.h:
4:44 PM Changeset in webkit [283525] by ntim@apple.com
  • 18 edits
    15 adds
    8 deletes in trunk/LayoutTests

Re-import html/semantics/forms/ WPT
https://bugs.webkit.org/show_bug.cgi?id=231168

Reviewed by Youenn Fablet.

https://github.com/web-platform-tests/wpt/commit/dc29fc4ff101c1c216494a88a1f8a31a0f21d0aa

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/forms/autofocus/autofocus-on-stable-document-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/autofocus-on-stable-document.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/first-reconnected-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/first-reconnected.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/first-when-later-but-before-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/first-when-later-but-before.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/first-when-later-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/first-when-later.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/first-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/first.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/focusable-area-in-top-document-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/focusable-area-in-top-document.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/no-cross-origin-autofocus-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/no-cross-origin-autofocus.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/no-sandboxed-automatic-features-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/no-sandboxed-automatic-features.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/not-on-first-task-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/not-on-first-task.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/queue-non-focusable-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/queue-non-focusable.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/resources/child-autofocus.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/resources/erase-first.css: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/resources/frame-with-autofocus-element.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/resources/moving-autofocus-to-parent.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/resources/utils.js: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/resources/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/skip-another-top-level-browsing-context-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/skip-another-top-level-browsing-context.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/skip-document-with-fragment-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/skip-document-with-fragment.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/skip-non-focusable-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/skip-non-focusable.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/skip-not-fully-active-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/skip-not-fully-active.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/spin-by-blocking-style-sheet-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/spin-by-blocking-style-sheet.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/supported-elements-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/supported-elements.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/update-the-rendering-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/update-the-rendering.html: Removed.
  • web-platform-tests/html/semantics/forms/autofocus/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/forms/introduction-1/contains.json: Removed.
  • web-platform-tests/html/semantics/forms/introduction-1/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/select-event-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/select-event.html: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-button-element/active-onblur-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-button-element/active-onblur.html: Added.
  • web-platform-tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-requestsubmit-autofocus-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/the-form-element/form-requestsubmit-autofocus.html: Removed.
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/input-submit-remove-jssubmit-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-submit-remove-jssubmit.html: Added.
  • web-platform-tests/html/semantics/forms/the-option-element/dynamic-content-change-rendering.html:
  • web-platform-tests/html/semantics/forms/the-select-element/select-validity-expected.txt:
  • web-platform-tests/html/semantics/forms/the-select-element/select-validity.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative.html: Added.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-nested.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-nested.tentative.html: Added.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-shadow-root-replacement.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-shadow-root-replacement.tentative.html: Added.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-textarea-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-textarea-element/placeholder-white-space-notref.html: Added.
  • web-platform-tests/html/semantics/forms/the-textarea-element/placeholder-white-space.tentative-expected.html: Added.
  • web-platform-tests/html/semantics/forms/the-textarea-element/placeholder-white-space.tentative.html: Added.

LayoutTests:

4:37 PM Changeset in webkit [283524] by Simon Fraser
  • 16 edits in trunk/Source/WebCore

Use ScrollClamping in more places in scrolling code
https://bugs.webkit.org/show_bug.cgi?id=231140

Reviewed by Antti Koivisto.

Fold together two functions in ScrollingEffectsControllerClient with a ScrollClamping argument.
Also use ScrollClamping to replace bool constrainsScrollingToContentEdge() on ScrollableArea.

It's slightly annoying that ScrollClamping is a ScrollableArea state, but RenderMarquee has
no clamping by default.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollBy):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints): Deleted.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::adjustScrollPositionToBoundsIfNecessary):
(WebCore::ScrollAnimator::adjustScrollPositionIfNecessary const):
(WebCore::ScrollAnimator::immediateScrollBy):
(WebCore::ScrollAnimator::immediateScrollByWithoutContentEdgeConstraints): Deleted.

  • platform/ScrollAnimator.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::adjustScrollPositionWithinRange const):
(WebCore::ScrollView::setScrollOffset):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::ScrollableArea): Deleted.

  • platform/ScrollableArea.h: Undo the use of bitfields here because the memory saving

is not worth the code complexity.
(WebCore::ScrollableArea::currentScrollBehaviorStatus):
(WebCore::ScrollableArea::setScrollBehaviorStatus):
(WebCore::ScrollableArea::scrollClamping const):
(WebCore::ScrollableArea::setScrollClamping):
(WebCore::ScrollableArea::verticalScrollElasticity const):
(WebCore::ScrollableArea::horizontalScrollElasticity const):
(WebCore::ScrollableArea::scrollbarOverlayStyle const):
(WebCore::ScrollableArea::currentScrollType const):
(WebCore::ScrollableArea::setCurrentScrollType):
(WebCore::ScrollableArea::constrainsScrollingToContentEdge const): Deleted.
(WebCore::ScrollableArea::setConstrainsScrollingToContentEdge): Deleted.

  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::scrollAnimationDidUpdate):
(WebCore::ScrollingEffectsController::scrollToOffsetForAnimation): Deleted.

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::applyScrollDeltaWithStretching):
(WebCore::ScrollingEffectsController::updateRubberBandAnimatingState):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::RenderListBox):

  • rendering/RenderListBox.h: Minor rearrangement to optimize padding now that ScrollableArea is a little larger.
  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::RenderMarquee):

  • testing/Internals.cpp:

(WebCore::Internals::setScrollViewPosition):

4:23 PM Changeset in webkit [283523] by Ryan Haddad
  • 10 edits
    1 copy
    1 delete in trunk/LayoutTests

Cleaning up expectations for iOS 15.
https://bugs.webkit.org/show_bug.cgi?id=230968

Unreviewed test gardening.

We conisder "platform/ios" to represent iOS 15 at this point, so we should not have created a
new directory for it in r283500. This also moves a baseline that was added in r283520.

  • fast/forms/ios/accessory-bar-navigation-expected.txt:
  • fast/forms/ios/focus-input-in-fixed-expected.txt:
  • fast/forms/ios/focus-input-in-iframe-expected.txt:
  • fast/forms/ios/focus-input-via-button-expected.txt:
  • fast/forms/ios/focus-input-via-button-no-scaling-expected.txt:
  • fast/forms/ios/focus-long-textarea-expected.txt:
  • fast/forms/ios/zoom-after-input-tap-expected.txt:
  • fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt:
  • platform/ios-14/TestExpectations:
  • platform/ios-15/TestExpectations: Removed.
  • platform/ios-15/fast/forms/ios/accessory-bar-navigation-expected.txt: Removed.
  • platform/ios-15/fast/forms/ios/focus-input-in-fixed-expected.txt: Removed.
  • platform/ios-15/fast/forms/ios/focus-input-in-iframe-expected.txt: Removed.
  • platform/ios-15/fast/forms/ios/focus-input-via-button-expected.txt: Removed.
  • platform/ios-15/fast/forms/ios/focus-input-via-button-no-scaling-expected.txt: Removed.
  • platform/ios-15/fast/forms/ios/focus-long-textarea-expected.txt: Removed.
  • platform/ios-15/fast/forms/ios/zoom-after-input-tap-expected.txt: Removed.
  • platform/ios-15/fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt: Removed.
  • platform/ios/TestExpectations:
  • platform/ios/fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard-expected.txt: Renamed from LayoutTests/platform/ios-15/fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard-expected.txt.
4:15 PM Changeset in webkit [283522] by Chris Dumez
  • 72 edits
    2 adds in trunk

Add SPI to launch a service service worker in a WKWebView and expose service worker to injected bundle
https://bugs.webkit.org/show_bug.cgi?id=231045
<rdar://problem/83744069>

Reviewed by Geoff Garen.

Source/WebCore:

Add new [WKWebView loadServiceWorker:(NSURL *)] to load a service worker in a web view. When called,
it causes us to create a page with HTML start registers the service worker with the provided URL.

The service worker in question will differ slightly from usual service workers in that:

  • The service worker URL doesn't need to be HTTP/HTTPS. In particular, a custom scheme (with corresponding custom scheme handler) can be used.
  • The service worker will always run in the WKWebView's associated WebProcess (which can be controlled via WKWebViewConfiguration._relatedWebView).
  • The service worker will run on the main thead
  • The service worker is not persistent, meaning that it will not be saved to disk, unlike regular service workers.
  • The service worker's global object will be exposed to the injected bundle via a new serviceWorkerGlobalObjectIsAvailableForFrame function call on WKWebProcessPlugInLoadDelegate. The provided Frame will be the WKWebView's main frame.
  • The service worker will be unregistered & exit as soon as its WKWebView gets closed / deallocated.

To make the service worker more usable via the injected bundle API, the following changes were made too:

  • [WKWebProcessPlugInFrame lookUpFrameFromJSContext:] will return the WKWebView's main frame when passed in that view's service worker context.
  • A new [WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:(WKWebProcessPlugInScriptWorld *)] SPI was added to get the service worker's JS context from the view.

I added an API test that launches such a service worker, makes sure the injected bundle gets notified on
the main thread of the service worker global object and that it can script it. The test also makes sure
the _relatedWebView SPI works to force a service worker into another view's process. It also tests that
[WKWebProcessPlugInFrame lookUpFrameFromJSContext:] and [WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:(WKWebProcessPlugInScriptWorld *)]
work as expected. Finally, it makes sure the service worker properly exits when the view gets closed.

  • dom/Document.cpp:

(WebCore::Document::isSecureContext const):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitData):

  • loader/FrameLoaderClient.h:
  • page/Frame.cpp:

(WebCore::Frame::fromJSContext):

  • page/Frame.h:
  • page/Page.cpp:

(WebCore::Page::serviceWorkerGlobalObject):
(WebCore::Page::setServiceWorkerGlobalScope):

  • page/Page.h:

(WebCore::Page::isServiceWorkerPage const):
(WebCore::Page::markAsServiceWorkerPage):

  • platform/RegistrableDomain.h:

(WebCore::RegistrableDomain::RegistrableDomainHash::hash):
(WebCore::RegistrableDomain::RegistrableDomainHash::equal):
Registrable domains are not case sensitive. Yet its HashTraits was doing case sensitive checks.
The Service Worker code is using a HashMap whose key is a RegistrableDomain and my new API test
was initially failing simply because I used an upper case domain name in my URL. To make my
test pass, I decided to make the RegistrableDomain HashTraits case-insensitive, instead of using
a lowercase domain in my new test.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):

  • workers/service/ServiceWorkerContextData.cpp:

(WebCore::ServiceWorkerContextData::isolatedCopy const):
(WebCore::ServiceWorkerContextData::isolatedCopy):

  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::notifyServiceWorkerPageOfCreationIfNecessary):
(WebCore::ServiceWorkerGlobalScope::serviceWorkerPage):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::ServiceWorkerJobData::serviceWorkerPageIdentifier const):
(WebCore::ServiceWorkerJobData::isolatedCopy const):

  • workers/service/ServiceWorkerJobData.h:

(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):

  • workers/service/server/RegistrationStore.cpp:

(WebCore::RegistrationStore::updateRegistration):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::addRegistration):
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::installContextData):
(WebCore::SWServer::runServiceWorkerIfNecessary):
(WebCore::SWServer::runServiceWorker):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::removeContextConnection):
(WebCore::SWServer::createContextConnection):

  • workers/service/server/SWServer.h:

(WebCore::SWServer::shouldRunServiceWorkersOnMainThreadForTesting const):

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::runRegisterJob):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::SWServerRegistration):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::SWServerToContextConnection):

  • workers/service/server/SWServerToContextConnection.h:

(WebCore::SWServerToContextConnection::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::contextData const):
(WebCore::SWServerWorker::workerThreadMode const):
(WebCore::SWServerWorker::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

Add new [WKWebView loadServiceWorker:(NSURL *)] to load a service worker in a web view. When called,
it causes us to create a page with HTML start registers the service worker with the provided URL.

The service worker in question will differ slightly from usual service workers in that:

  • The service worker URL doesn't need to be HTTP/HTTPS. In particular, a custom scheme (with corresponding custom scheme handler) can be used.
  • The service worker will always run in the WKWebView's associated WebProcess (which can be controlled via WKWebViewConfiguration._relatedWebView).
  • The service worker will run on the main thead
  • The service worker is not persistent, meaning that it will not be saved to disk, unlike regular service workers.
  • The service worker's global object will be exposed to the injected bundle via a new serviceWorkerGlobalObjectIsAvailableForFrame function call on WKWebProcessPlugInLoadDelegate. The provided Frame will be the WKWebView's main frame.
  • The service worker will be unregistered & exit as soon as its WKWebView gets closed / deallocated.

To make the service worker more usable via the injected bundle API, the following changes were made too:

  • [WKWebProcessPlugInFrame lookUpFrameFromJSContext:] will return the WKWebView's main frame when passed in that view's service worker context.
  • A new [WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:(WKWebProcessPlugInScriptWorld *)] SPI was added to get the service worker's JS context from the view.

I added an API test that launches such a service worker, makes sure the injected bundle gets notified on
the main thread of the service worker global object and that it can script it. The test also makes sure
the _relatedWebView SPI works to force a service worker into another view's process. It also tests that
[WKWebProcessPlugInFrame lookUpFrameFromJSContext:] and [WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:(WKWebProcessPlugInScriptWorld *)]
work as expected. Finally, it makes sure the service worker properly exits when the view gets closed.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::swServerForSession):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadRequest:]):
(-[WKWebView loadFileURL:allowingReadAccessToURL:]):
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView _loadServiceWorker:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
(WebKit::WebPageProxy::loadServiceWorker):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::establishServiceWorkerContext):
(WebKit::WebProcessProxy::enableServiceWorkers):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:

(API::InjectedBundle::PageLoaderClient::serviceWorkerGlobalObjectIsAvailableForFrame):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h:
  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(serviceWorkerGlobalObjectIsAvailableForFrame):
(setUpPageLoaderClient):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::globalObjectIsAvailableForFrame):
(WebKit::InjectedBundlePageLoaderClient::serviceWorkerGlobalObjectIsAvailableForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::establishConnection):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchServiceWorkerGlobalObjectAvailable):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::jsContextForServiceWorkerWorld):
(WebKit::WebFrame::frameForContext):

  • WebProcess/WebPage/WebFrame.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

Source/WTF:

  • wtf/URL.cpp:

(WTF::protocolHostAndPortAreEqual):
Fix issue where protocolHostAndPortAreEqual() was doing a case-sensitive check. My new service worker
API test was initially failing because of this since it is using an upper-case domain name.

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

(-[ServiceWorkerSchemeHandler initWithBytes:]):
(-[ServiceWorkerSchemeHandler addMappingFromURLString:toData:]):
(-[ServiceWorkerSchemeHandler webView:startURLSchemeTask:]):
(-[ServiceWorkerSchemeHandler webView:stopURLSchemeTask:]):
(-[ServiceWorkerPageRemoteObject serviceWorkerGlobalObjectIsAvailable]):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerPagePlugIn.mm: Added.

(-[ServiceWorkerPagePlugIn webProcessPlugInBrowserContextController:serviceWorkerGlobalObjectIsAvailableForFrame:inScriptWorld:]):
(-[ServiceWorkerPagePlugIn webProcessPlugIn:didCreateBrowserContextController:]):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerPageProtocol.h: Added.
4:04 PM Changeset in webkit [283521] by Ben Nham
  • 2 edits in trunk/Source/WebCore

RemotePlayback missing forward declaration of Node
https://bugs.webkit.org/show_bug.cgi?id=231193

Unreviewed build fix.

The missing forward declaration was introduced in r279443 and can cause a
build failure when adding a new file to Sources.txt.

  • Modules/remoteplayback/RemotePlayback.h:
3:50 PM Changeset in webkit [283520] by Ayumi Kojima
  • 2 edits
    3 adds in trunk/LayoutTests

Cleaning up expectations for iOS 15.
https://bugs.webkit.org/show_bug.cgi?id=230968

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
  • platform/ios-15/fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard-expected.txt: Added.
3:45 PM Changeset in webkit [283519] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r283431.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]):

3:42 PM Changeset in webkit [283518] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r283431.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]):

3:41 PM Changeset in webkit [283517] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Follow-up: WTF::RetainPtr<> allows assignment of two pointer types that are not assignable
<https://webkit.org/b/230406>
<rdar://problem/83241893>

Unreviewed attempt to fix api-ios tests.

  • TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm:

(TestWebKitAPI::TEST):

  • Work around TestWTF.TypeCastsCocoa.checked_objc_cast test failures on iOS Simulator by using @autoreleasepool.
2:57 PM Changeset in webkit [283516] by Russell Epstein
  • 2 edits in branches/safari-612.2.9.1-branch/Source/WebKit

Cherry-pick r283490. rdar://problem/83856664

Vorbis decoder can't be instantiated - follow up on Bug 230742
https://bugs.webkit.org/show_bug.cgi?id=231154
rdar://problem/83825162

Fix typo in expression.

Reviewed by Tim Horton.

  • Scripts/process-entitlements.sh: Add missing bool keyword.

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

2:47 PM Changeset in webkit [283515] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk

[WebAuthn] Prefer internal user verification if available over pin entry.
https://bugs.webkit.org/show_bug.cgi?id=213903
<rdar://problem/65359269>

Patch by John Pascoe <J Pascoe> on 2021-10-04
Reviewed by Brent Fulgham.

Source/WebCore:

This adds an option to mock internal user verification in tests.

  • testing/MockWebAuthenticationConfiguration.h:

(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode):

  • testing/MockWebAuthenticationConfiguration.idl:

Source/WebKit:

  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:

(WebKit::MockHidConnection::feedReports):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::makeCredential):
(WebKit::CtapAuthenticator::getAssertion):
(WebKit::fido::toStatus): Deleted.
(WebKit::fido::isPinError): Deleted.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html: Added.
2:25 PM Changeset in webkit [283514] by commit-queue@webkit.org
  • 5 edits in trunk

[WebAuthn] Add SPI to change username of credential
https://bugs.webkit.org/show_bug.cgi?id=230956
<rdar://problem/83471755>

Patch by John Pascoe <J Pascoe> on 2021-10-04
Reviewed by Brent Fulgham.

Source/WebKit:

Adds a new method for changing the username of a given stored webauthn credential.

New API test: TestWebKitAPI.WebAuthenticationPanel.UpdateCredentialUsername

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]):

Tools:

API test coverage for updating the username of a webauthn credential.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

2:02 PM Changeset in webkit [283513] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Remove test expectations since 'crash' has been resolved.
https://bugs.webkit.org/show_bug.cgi?id=230245.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
12:58 PM Changeset in webkit [283512] by sbarati@apple.com
  • 7 edits
    1 add in trunk

IntrinsicGetterAccessCase implementation of proto needs to handle get_by_id_with_this
https://bugs.webkit.org/show_bug.cgi?id=229951
<rdar://problem/82787527>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/run-proto-intrinsic-getter-with-this-value-in-get-by-id-with-this.js: Added.

(assert):
(main.v37):
(main):

Source/JavaScriptCore:

The whole point of get_by_id_with_this is to have different
slot base values for |this| vs the slot base when invoking
getters. However, our intrinsic getter inlining wasn't respecting
this. This patch makes the proto intrinsic getter do the right
thing. For typed array intrinsic getters, if they have different
|this| value vs slot base, we chose not to inline them, because
the type checks are not on the |this| value, so they're not guaranteed
to be typed arrays. We can improve upon this in the future.

  • bytecode/IntrinsicGetterAccessCase.h:
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadPrototypeWithoutCheck):

  • jit/AssemblyHelpers.h:
  • jit/IntrinsicEmitter.cpp:

(JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter):
(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):

  • jit/Repatch.cpp:

(JSC::tryCacheGetBy):

12:48 PM Changeset in webkit [283511] by weinig@apple.com
  • 40 edits
    2 copies in trunk/Source

Split WebXR extension module IDLs into their own files and settings
https://bugs.webkit.org/show_bug.cgi?id=231149

Reviewed by Dean Jackson.

Source/WebCore:

Split WebXRInputSource+Gamepad.idl out of WebXRInputSource.idl and
WebXRSession+AR.idl out of WebXRSession.idl and make them depend on
new module specific settings WebXRGamepadsModuleEnabled and
WebXRAugmentedRealityModuleEnabled respectively.

Also adds spec links in the IDLs as I like to do.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webxr/WebXRBoundedReferenceSpace.idl:
  • Modules/webxr/WebXRFrame.idl:
  • Modules/webxr/WebXRInputSource+Gamepad.idl: Added.
  • Modules/webxr/WebXRInputSource.idl:
  • Modules/webxr/WebXRInputSourceArray.idl:
  • Modules/webxr/WebXRLayer.idl:
  • Modules/webxr/WebXRPose.idl:
  • Modules/webxr/WebXRReferenceSpace.idl:
  • Modules/webxr/WebXRRenderState.idl:
  • Modules/webxr/WebXRRigidTransform.idl:
  • Modules/webxr/WebXRSession+AR.idl: Added.
  • Modules/webxr/WebXRSession.idl:
  • Modules/webxr/WebXRSpace.idl:
  • Modules/webxr/WebXRSystem.idl:
  • Modules/webxr/WebXRView.idl:
  • Modules/webxr/WebXRViewerPose.idl:
  • Modules/webxr/WebXRViewport.idl:
  • Modules/webxr/WebXRWebGLLayer.idl:
  • Modules/webxr/XREnvironmentBlendMode.idl:
  • Modules/webxr/XREye.idl:
  • Modules/webxr/XRFrameRequestCallback.idl:
  • Modules/webxr/XRHandedness.idl:
  • Modules/webxr/XRInputSourceEvent.idl:
  • Modules/webxr/XRInputSourcesChangeEvent.idl:
  • Modules/webxr/XRInteractionMode.idl:
  • Modules/webxr/XRReferenceSpaceEvent.idl:
  • Modules/webxr/XRReferenceSpaceType.idl:
  • Modules/webxr/XRRenderStateInit.idl:
  • Modules/webxr/XRSessionEvent.idl:
  • Modules/webxr/XRSessionInit.idl:
  • Modules/webxr/XRSessionMode.idl:
  • Modules/webxr/XRTargetRayMode.idl:
  • Modules/webxr/XRVisibilityState.idl:
  • Modules/webxr/XRWebGLLayerInit.idl:
  • WebCore.xcodeproj/project.pbxproj:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Adds WebXRAugmentedRealityModuleEnabled and WebXRGamepadsModuleEnabled
to gate enabling the WebXR AR Module and the WebXR Gamepads Module on.

12:40 PM Changeset in webkit [283510] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Send necessary sandbox extensions to WebProcess in case WebRTC codecs run in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=231073

Reviewed by Eric Carlson.

Manually tested, make sure to send extensions like if audio/video capture happens in WebProcess.
This allows validating regressions due or not to GPUProcess.

  • UIProcess/WebPageProxy.cpp:
12:35 PM Changeset in webkit [283509] by Chris Dumez
  • 12 edits
    1 copy
    2 moves
    1 add
    2 deletes in trunk

Use isolated NSURLSessions for each first party registrable domain
https://bugs.webkit.org/show_bug.cgi?id=230750
<rdar://83159358>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing more checks.

  • web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt:

Source/WebCore:

Fix bug where service worker soft-update requests would have their "first-party-for-cookies"
field set to "https:" instead of a full origin (e.g. "https://localhost:8080"). This was
causing some service worker test failures now that we use different NSURLSession based on
the "first-party-for-cookies" field.

  • workers/service/server/SWServer.cpp:

(WebCore::originURL):

Source/WebKit:

Previously would use up to 10 isolated NSURLSessions only for domains marked as prevalent
by ITP *and* that the user interacts with as first party website. We now use different
isolated NSURLSession for each top-level registrable domain, not matter their ITP status.
This significantly improves privacy.

To avoid having too many NSURLSession, we clear the ones that haven't been used in the
last 10 minutes, every time we add a new one.

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::SessionSet::isolatedSession):

LayoutTests:

This test is now passing more checks on WebKit2 but still completely fails on WebKit1 so I am
adding a WK1-specific baseline.

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt.
12:34 PM Changeset in webkit [283508] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Make RuleSetBuilder a class
https://bugs.webkit.org/show_bug.cgi?id=231158

Reviewed by Alan Bujtas.

Improve encapsulation.

This patch also makes clients use RuleSetBuilder directly removing the two-way dependency
between RuleSet and RuleSetBuilder.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):
(WebCore::Style::RuleSet::shrinkToFit):
(WebCore::Style::RuleSet::addRulesFromSheet): Deleted.
(WebCore::Style::shrinkDynamicRules): Deleted.

  • style/RuleSet.h:

(WebCore::Style::RuleSet::DynamicMediaQueryRules::shrinkToFit):

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::RuleSetBuilder):
(WebCore::Style::m_resolver):
(WebCore::Style::RuleSetBuilder::~RuleSetBuilder):
(WebCore::Style::RuleSetBuilder::addRulesFromSheet):
(WebCore::Style::RuleSetBuilder::addChildRules):
(WebCore::Style::RuleSetBuilder::addStyleRule):
(WebCore::Style::RuleSetBuilder::pushCascadeLayer):
(WebCore::Style::RuleSetBuilder::popCascadeLayer):
(WebCore::Style::RuleSetBuilder::updateCascadeLayerOrder):
(WebCore::Style::RuleSetBuilder::addMutatingRulesToResolver):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::pushAndEvaluate):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::pop):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::didMutateResolver):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::addRuleIfNeeded):
(WebCore::Style::RuleSetMediaQueryCollector::pushAndEvaluate): Deleted.
(WebCore::Style::RuleSetMediaQueryCollector::pop): Deleted.
(WebCore::Style::RuleSetMediaQueryCollector::didMutateResolver): Deleted.
(WebCore::Style::RuleSetMediaQueryCollector::addRuleIfNeeded): Deleted.

MediaQueryCollector is now a private inner struct of RuleSetBuilder.

  • style/RuleSetBuilder.h:
  • style/StyleInvalidator.cpp:

(WebCore::Style::m_dirtiesAllStyle):

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::Style::ScopeRuleSets::initializeUserStyle):
(WebCore::Style::ScopeRuleSets::collectRulesFromUserStyleSheets):
(WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::addToDefaultStyle):
(WebCore::Style::UserAgentStyle::initDefaultStyleSheet):

12:31 PM Changeset in webkit [283507] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

process-entitlements should fail if a subcommand fails
https://bugs.webkit.org/show_bug.cgi?id=231155

Reviewed by Anders Carlsson.

  • Scripts/process-entitlements.sh:

See bug 231154, which fixes a mistake in r283156 which made one of the
PlistBuddy invocations from process-entitlements fail, but did not
result in a failing build. PlistBuddy does correctly return a non-zero
return value in this case, so we should just tell the shell to propagate
that upwards.

11:31 AM Changeset in webkit [283506] by Russell Epstein
  • 8 edits in branches/safari-612.2.9.1-branch/Source

Versioning.

WebKit-7612.2.9.1.4

11:30 AM Changeset in webkit [283505] by Russell Epstein
  • 8 edits in branches/safari-612.2.9.0-branch/Source

Versioning.

WebKit-7612.2.9.0.4

10:38 AM Changeset in webkit [283504] by achristensen@apple.com
  • 16 edits in trunk/Source/WebKit

Enable PCM debug mode per WebsiteDataStore instead of process-global
https://bugs.webkit.org/show_bug.cgi?id=231096

Reviewed by Kate Cheney.

This will make it so we don't need to restart the network process in order to enable or disable debug mode.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcess::privateClickMeasurementDebugModeEnabled const): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::setPrivateClickMeasurementDebugMode):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::privateClickMeasurementDebugModeEnabled const):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:

(WebKit::PCM::ClientImpl::debugModeEnabled const):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setPrivateClickMeasurementDebugMode):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::experimentalFeatureEnabled):
(WebKit::WebsiteDataStore::platformSetNetworkParameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setPrivateClickMeasurementDebugMode):

9:46 AM Changeset in webkit [283503] by Russell Epstein
  • 2 edits in branches/safari-613.1.4-branch/Source/WebCore

Unreviewed maccatalyst build fix.

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSessionIOS::setHostProcessAttribution):

9:40 AM Changeset in webkit [283502] by Russell Epstein
  • 8 edits in branches/safari-613.1.4-branch/Source

Versioning.

WebKit-7613.1.4

9:40 AM Changeset in webkit [283501] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7613.1.5

9:39 AM Changeset in webkit [283500] by Ayumi Kojima
  • 4 edits
    11 adds in trunk/LayoutTests

Cleaning up expectations for iOS 15.
https://bugs.webkit.org/show_bug.cgi?id=230968

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
  • platform/ios-15/fast/forms/ios/accessory-bar-navigation-expected.txt: Added.
  • platform/ios-15/fast/forms/ios/focus-input-in-fixed-expected.txt: Added.
  • platform/ios-15/fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
  • platform/ios-15/fast/forms/ios/focus-input-via-button-expected.txt: Added.
  • platform/ios-15/fast/forms/ios/focus-input-via-button-no-scaling-expected.txt: Added.
  • platform/ios-15/fast/forms/ios/focus-long-textarea-expected.txt: Added.
  • platform/ios-15/fast/forms/ios/zoom-after-input-tap-expected.txt: Added.
  • platform/ios-15/fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt: Added.
  • platform/ios/TestExpectations:
  • platform/ipad/TestExpectations:
9:37 AM Changeset in webkit [283499] by Russell Epstein
  • 1 copy in branches/safari-613.1.4-branch

New branch.

9:00 AM Changeset in webkit [283498] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

Unreviewed maccatalyst build fix.

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSessionIOS::setHostProcessAttribution):

8:00 AM Changeset in webkit [283497] by Lauro Moura
  • 2 edits in trunk/LayoutTests

Make preload referrer-img.py compatible with Python 3.9
https://bugs.webkit.org/show_bug.cgi?id=231099

Reviewed by Jonathan Bedard.

Python 3.9 removed[1] the deprecated base64.decodestring. We should use
base64.decodebytes instead (available since 3.1).

[1] https://bugs.python.org/issue39351

  • http/wpt/preload/resources/referrer-img.py: Replace deprecated method.
7:50 AM Changeset in webkit [283496] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Fix LTS build after 242443@main

Unreviewed build fix.

  • rendering/RenderBlockFlow.cpp:
7:26 AM Changeset in webkit [283495] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Send EWS exception emails to bot watchers instead of Aakash

Unreviewed.

  • CISupport/ews-build/master.cfg:
6:57 AM Changeset in webkit [283494] by svillar@igalia.com
  • 6 edits
    2 adds in trunk/LayoutTests/imported/w3c

[css-flexbox] Resync WPT tests
https://bugs.webkit.org/show_bug.cgi?id=231164

Reviewed by Rob Buis.

Imported some tests after being fixed upstream. Also fetched new ones.

  • web-platform-tests/css/css-flexbox/parsing/flex-grow-computed-expected.txt:
  • web-platform-tests/css/css-flexbox/parsing/flex-grow-computed.html:
  • web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed-expected.txt:
  • web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed.html:
  • web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/text-as-flexitem-size-001.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:
6:16 AM Changeset in webkit [283493] by Alan Bujtas
  • 4 edits in trunk

'overflow-wrap: anywhere' should be considered when calculating min-content intrinsic sizes.
https://bugs.webkit.org/show_bug.cgi?id=231152

Reviewed by Javier Fernandez.

Source/WebCore:

As opposed to overflow-wrap: 'break-word', 'anywhere' should be taken into account when computing the preferred width.

"An otherwise unbreakable sequence of characters may be broken at an arbitrary point...
Soft wrap opportunities introduced by anywhere are considered when calculating min-content intrinsic sizes."

https://drafts.csswg.org/css-text-3/#overflow-wrap-property

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):

LayoutTests:

5:14 AM Changeset in webkit [283492] by Ziran Sun
  • 11 edits
    40 adds in trunk/LayoutTests

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

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-005-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-005.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-006-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-006.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-007-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-007.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-017-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-017.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-023-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-023.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-024-expected.xht: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-024.html: Added.
  • web-platform-tests/css/css-grid/abspos/w3c-import.log:
  • web-platform-tests/css/css-grid/alignment/grid-inline-baseline-expected.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-inline-baseline.html: Added.
  • web-platform-tests/css/css-grid/alignment/w3c-import.log:
  • web-platform-tests/css/css-grid/empty-grid-within-flexbox-expected.xht: Added.
  • web-platform-tests/css/css-grid/empty-grid-within-flexbox.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-minmax-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-minmax.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-dynamic-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-dynamic.html: Added.
  • web-platform-tests/css/css-grid/grid-items/percentage-margin-dynamic-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
  • web-platform-tests/css/css-grid/grid-items/percentage-margin-dynamic.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-014-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-014.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-015-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-015.html: Added.
  • web-platform-tests/css/css-grid/grid-items/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-model/grid-item-hit-test-expected.txt: Added.
  • web-platform-tests/css/css-grid/grid-model/grid-item-hit-test.html: Added.
  • web-platform-tests/css/css-grid/grid-model/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-with-dynamic-img-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
  • web-platform-tests/css/css-grid/grid-with-dynamic-img.html: Added.
  • web-platform-tests/css/css-grid/grid-with-orthogonal-child-within-flexbox-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
  • web-platform-tests/css/css-grid/grid-with-orthogonal-child-within-flexbox.html: Added.
  • web-platform-tests/css/css-grid/grid-within-flexbox-indefinite-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
  • web-platform-tests/css/css-grid/grid-within-flexbox-indefinite.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-size-dynamic-block-size-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-size-dynamic-block-size.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-template-flexible-rerun-track-sizing-expected.xht: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-template-flexible-rerun-track-sizing.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/w3c-import.log:
  • web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-expected.xht: Added.
  • web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows.html: Added.
  • web-platform-tests/css/css-grid/placement/w3c-import.log:
  • web-platform-tests/css/css-grid/w3c-import.log:

LayoutTests:

4:04 AM Changeset in webkit [283491] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Mark more font-palette tests as failing. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=231165

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-04

  • platform/glib/TestExpectations:
1:07 AM Changeset in webkit [283490] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKit

Vorbis decoder can't be instantiated - follow up on Bug 230742
https://bugs.webkit.org/show_bug.cgi?id=231154
rdar://problem/83825162

Fix typo in expression.

Reviewed by Tim Horton.

  • Scripts/process-entitlements.sh: Add missing bool keyword.
12:48 AM Changeset in webkit [283489] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Regression (r283238)[ MacOS wk1 ] fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=231022

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-04
Reviewed by Youenn Fablet.

Originally the implementation would always return red frame, and the test would pass.
r283238 changed the implementation to not return a sample if there is not a display buffer,
as logically such cannot be used as a sample.
This broke the test case since the CanvasCaptureMediaStreamTrack would try to capture
the canvas display buffer during next runloop iteration (0s timeout) after each modification.
This does not work, as the display buffer is composed during "prepare for display"
phase.

Add CanvasBase observers to observe that display buffer has been prepared, and capture
the media sample after that observer has fired.

The test would work for wk2 due to timing related differences, preparation would have
typically run before the canvas capture 0s timeout.

Fixes fast/mediastream/captureStream/canvas3d.html for wk1.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::startProducingData):
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasDisplayBufferPrepared):

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
  • html/CanvasBase.cpp:

(WebCore::CanvasBase::addDisplayBufferObserver):
(WebCore::CanvasBase::removeDisplayBufferObserver):
(WebCore::CanvasBase::notifyObserversCanvasDisplayBufferPrepared):

  • html/CanvasBase.h:

(WebCore::CanvasBase::hasDisplayBufferObservers const):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::prepareForDisplay):
Move the "prepare only when the owner element is in the tree" logic to
its correct place to the caller, e.g. to the element itself.

Oct 3, 2021:

11:37 PM Changeset in webkit [283488] by Antti Koivisto
  • 5 edits
    2 adds in trunk/Source/WebCore

Move RuleSet builder to a file of its own
https://bugs.webkit.org/show_bug.cgi?id=231137

Reviewed by Alan Bujtas.

There is quite a bit of code for it.

There is lots of room for refactoring and cleanups here. This patch does none of it.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):
(WebCore::Style::RuleSet::addRulesFromSheet):
(WebCore::Style::RuleSet::Builder::addChildRules): Deleted.
(WebCore::Style::RuleSet::Builder::addRulesFromSheet): Deleted.
(WebCore::Style::RuleSet::Builder::~Builder): Deleted.
(WebCore::Style::RuleSet::Builder::addStyleRule): Deleted.
(WebCore::Style::RuleSet::Builder::registerLayers): Deleted.
(WebCore::Style::RuleSet::Builder::pushCascadeLayer): Deleted.
(WebCore::Style::RuleSet::Builder::popCascadeLayer): Deleted.
(WebCore::Style::RuleSet::Builder::updateCascadeLayerOrder): Deleted.
(WebCore::Style::RuleSet::Builder::addMutatingRulesToResolver): Deleted.
(WebCore::Style::RuleSet::MediaQueryCollector::pushAndEvaluate): Deleted.
(WebCore::Style::RuleSet::MediaQueryCollector::pop): Deleted.
(WebCore::Style::RuleSet::MediaQueryCollector::didMutateResolver): Deleted.
(WebCore::Style::RuleSet::MediaQueryCollector::addRuleIfNeeded): Deleted.

MediaQueryCollector (an implementation detail of the Builder) moves too.

  • style/RuleSet.h:
  • style/RuleSetBuilder.cpp: Added.

(WebCore::Style::RuleSetBuilder::~RuleSetBuilder):
(WebCore::Style::RuleSetBuilder::addChildRules):
(WebCore::Style::RuleSetBuilder::addRulesFromSheet):
(WebCore::Style::RuleSetBuilder::addStyleRule):
(WebCore::Style::RuleSetBuilder::registerLayers):
(WebCore::Style::RuleSetBuilder::pushCascadeLayer):
(WebCore::Style::RuleSetBuilder::popCascadeLayer):
(WebCore::Style::RuleSetBuilder::updateCascadeLayerOrder):
(WebCore::Style::RuleSetBuilder::addMutatingRulesToResolver):
(WebCore::Style::RuleSetMediaQueryCollector::pushAndEvaluate):
(WebCore::Style::RuleSetMediaQueryCollector::pop):
(WebCore::Style::RuleSetMediaQueryCollector::didMutateResolver):
(WebCore::Style::RuleSetMediaQueryCollector::addRuleIfNeeded):

  • style/RuleSetBuilder.h: Added.
10:37 PM Changeset in webkit [283487] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[GTK] REGRESSION(r283304): All GTK4 layout tests are aborting
https://bugs.webkit.org/show_bug.cgi?id=231153

Reviewed by Alexey Proskuryakov.

Revert back to the previous NOP behavior of bindAccessibilityTree()
for GTK4, leaving the assert for the debug mode with an informative
message in the log.

Covered by existing tests.

  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::bindAccessibilityTree):

9:34 PM Changeset in webkit [283486] by Alan Bujtas
  • 4 edits in trunk

[LFC][IFC] Do not take hanging whitespace sequence into account while finding expansion opportunities
https://bugs.webkit.org/show_bug.cgi?id=231132

Reviewed by Antti Koivisto.

Source/WebCore:

Ignore hanging whitespace for expansion opportunities.
This patch fixes imported/w3c/web-platform-tests/css/css-text/white-space/textarea-pre-wrap-014.html

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):

LayoutTests:

6:07 PM Changeset in webkit [283485] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] HangingTrailingContent should cache width/length
https://bugs.webkit.org/show_bug.cgi?id=231128

Reviewed by Antti Koivisto.

Compute the length of the hanging trailing whitespace sequence.
This is in preparation for fixing imported/w3c/web-platform-tests/css/css-text/white-space/textarea-pre-wrap-014.html

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::resetTrailingContent):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
(WebCore::Layout::Line::HangingTrailingContent::add):
(WebCore::Layout::Line::HangingTrailingContent::HangingTrailingContent): Deleted.
(WebCore::Layout::Line::HangingTrailingContent::width const): Deleted.

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::HangingTrailingContent::length const):
(WebCore::Layout::Line::HangingTrailingContent::width const):
(WebCore::Layout::Line::HangingTrailingContent::reset):

4:09 PM Changeset in webkit [283484] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

WebXRSession's m_environmentBlendMode and m_interactionMode are never initialized
https://bugs.webkit.org/show_bug.cgi?id=231144

Reviewed by Dean Jackson.

The m_environmentBlendMode and m_interactionMode members of WebXRSession were
not being initialized to anything and therefor were giving random data. This
is not really testable, as the result is just that the tests no longer flake.

  • Modules/webxr/WebXRSession.h:
4:03 PM Changeset in webkit [283483] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebCore

Build fix: Attribute IOSurfaces created by camera and decoders to responsible WebProcess
<https://bugs.webkit.org/show_bug.cgi?id=231075>
<rdar://problem/83767168>

Unreviewed build fix.

Source/WebCore:

  • platform/graphics/cocoa/IOSurface.mm:
  • Remove IOSurfaceSPI.h header already included by IOSurface.h. This should force this source file to be rebuilt as well.

Source/WebCore/PAL:

  • pal/spi/cocoa/IOSurfaceSPI.h:

(IOSurfaceMemoryLedgerTags):

  • Define enums for both HAVE(IOSURFACE_SET_OWNERSHIP) and HAVE(IOSURFACE_SET_OWNERSHIP_IDENTITY).
4:00 PM Changeset in webkit [283482] by don.olmstead@sony.com
  • 14 edits in trunk/Source

Non-unified build fixes, early October 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=231143

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • jit/BaselineJITCode.cpp:

Source/WebCore:

  • Modules/filesystemaccess/FileSystemHandle.cpp:
  • Modules/push-api/PushMessageData.h:
  • html/track/InbandTextTrack.cpp:
  • inspector/agents/InspectorCanvasAgent.h:
  • loader/CrossOriginOpenerPolicy.cpp:
  • rendering/LegacyLineLayout.cpp:
  • rendering/RenderBlockFlow.cpp:

Source/WebKit:

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextTerminateGPUProcess):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
2:57 PM Changeset in webkit [283481] by Alan Bujtas
  • 6 edits in trunk

Incorrect preferred width computation when trimmable leading whitespace is present
https://bugs.webkit.org/show_bug.cgi?id=231139

Reviewed by Antti Koivisto.

Source/WebCore:

stripFrontSpaces should be reset to the default value whenever we are at the beginning of the line, while computing the preferred trimmed width.
This is already done for line break boxes (<br>) but not when the force line break comes from a text content with
preserved linebreak ("\n").

See WPT progressions.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

  • rendering/RenderText.cpp:

(WebCore::RenderText::trimmedPreferredWidths):

  • rendering/RenderText.h:

LayoutTests:

  • TestExpectations: IFC already supports these cases. Preferred width computation produced an incorrect shrink-fit width.
2:29 PM Changeset in webkit [283480] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Build fix: GPU Process microphone attribution SPI adoption
<https://bugs.webkit.org/show_bug.cgi?id=231034>
<rdar://problem/83732537>

  • pal/spi/cocoa/AVFoundationSPI.h:

(-[AVAudioSession setHostProcessAttribution:error:]):

  • Add SPI declaration for open source bots.
2:03 PM Changeset in webkit [283479] by Lauro Moura
  • 2 edits in trunk/Source/JavaScriptCore

Remove control reaches end of non-void function warning

Unreviewed. Warning introduced in r283139.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::isConstantOwnedByUnlinkedCodeBlock const):

2:02 PM Changeset in webkit [283478] by basuke.suzuki@sony.com
  • 3 edits in trunk/Source/WebKit

[PlayStation] Pass logging channel parameter to WebProcess from environment variable
https://bugs.webkit.org/show_bug.cgi?id=230726
<rdar://problem/83740947>

Reviewed by Fujii Hironori.

Added release log configuration environment variables to PlayStation port.

  • UIProcess/playstation/WebProcessPoolPlayStation.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/playstation/WebProcessPlayStation.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

12:32 PM Changeset in webkit [283477] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Line functions can compute the "extra horizontal space"
https://bugs.webkit.org/show_bug.cgi?id=231127

Reviewed by Antti Koivisto.

This is in preparation for making applyRunExpansion hanging whitespace aware.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::removeCollapsibleContent):
(WebCore::Layout::Line::applyRunExpansion):
(WebCore::Layout::Line::visuallyCollapseHangingOverflow):

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):

12:31 PM Changeset in webkit [283476] by ddkilzer@apple.com
  • 16 edits
    2 adds in trunk

WTF::RetainPtr<> allows assignment of two pointer types that are not assignable
<https://webkit.org/b/230406>
<rdar://problem/83241893>

Reviewed by Darin Adler.

Source/WebKit:

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(transformTrustToData):

  • Change return type to match object.

(encodeError):

  • Use bridge_cast() to fix assignment.

(transformDataToTrust):

  • Change return type to match object.

(decodeError):

  • Use bridge_id_cast() to fix assignment.
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • Use bridge_id_cast() to fix assignment.
  • UIProcess/mac/WebDataListSuggestionsDropdownMac.h:
  • Use correct name of class that actually exists.

Source/WebKitLegacy/mac:

  • Plugins/WebBasePluginPackage.mm:

(+[WebBasePluginPackage pluginWithPath:]):

  • Use explicit type with RetainPtr<> to match return type.

Source/WTF:

  • wtf/RetainPtr.h:

(WTF::RetainPtr::RetainPtr):
(WTF::RetainPtr::checkType): Add.

  • Add type check for move constructor.
  • wtf/cocoa/TypeCastsCocoa.h:
  • Change #include to #import.

(WTF_CF_TO_NS_BRIDGE_TRANSFER): Add.
(WTF_CF_TO_NS_BRIDGE_TRANSFER): Add.

  • Helper macros for bridge_cast() and bridge_id_cast().

(WTF_DECLARE_CF_NS_BRIDGE_CAST): Add.

  • Macro used to define bridge_cast() functions for all known toll-free-bridged types.

(WTF::bridge_cast): Add.

  • Helper macro for toll-free-bridge casting from a known CF type to and from their Objective-C NS type. Prevents ref churn for rvale RetainPtr<> objects.

(WTF::bridge_id_cast): Add.

  • Helper macro for casting from any CFTypeRef to id. Prevents ref churn for rvalue RetainPtr<> objects.

(WTF::checked_objc_cast):

  • Simplified to match dynamic_objc_cast<> implementation in RetainPtr.h.
  • wtf/cocoa/VectorCocoa.h:

(WTF::createNSArray):

  • Change return type to match object.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dump):

  • Use bridge_cast() to fix assignment.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Add RetainPtrARC.mm and TypeCastsCocoaARC.mm to the project.
  • TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm:
  • Update for dual compilation with MRR and with ARC. Change -retainCount methods to CFGetRetainCount().
  • Add @autoreleasepool blocks around groups of tests to find over-released bugs sooner (for future changes).
  • Add more CFGetRetainCount() to catch unexpected auto-released objects as well as leaks.

(TestWebKitAPI::helloWorldCStringLength): Add.
(TestWebKitAPI::TEST):

  • Add tests for bridge_cast() and bridge_id_cast().
  • Remove invalid tests after changing RetainPtr<> move constructor to check types.
  • TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoaARC.mm: Add.
  • Run tests in TypeCastsCocoa.mm with ARC enabled.
  • TestWebKitAPI/Tests/WTF/ns/RetainPtr.mm:

(TestWebKitAPI::TEST):

  • Update for dual compilation with MRR and with ARC. Change -retainCount methods to CFGetRetainCount().
  • Make it possible to name tests differently for MRR vs. ARC using RETAIN_PTR_TEST_NAME macro.
  • TestWebKitAPI/Tests/WTF/ns/RetainPtrARC.mm: Add.
  • Run tests in RetainPtr.mm with ARC enabled.
  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

(readFile):

  • Use bridge_cast() to fix assignment.
  • Drive-by fix to keep NSData out of autoreleasePool.
11:48 AM Changeset in webkit [283475] by Alan Coon
  • 1 copy in tags/Safari-612.2.9.1.3

Tag Safari-612.2.9.1.3.

11:46 AM Changeset in webkit [283474] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Moving hanging whitespace sequence handling to Line
https://bugs.webkit.org/show_bug.cgi?id=231126

Reviewed by Antti Koivisto.

Let the Line handle the whitespace hanging. Line::HangingTrailingContent will eventually gain more functionality.
This is also in preparation for fixing imported/w3c/web-platform-tests/css/css-text/white-space/textarea-pre-wrap-014.html

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::visuallyCollapseHangingOverflow):
(WebCore::Layout::Line::HangingTrailingContent::HangingTrailingContent):
(WebCore::Layout::Line::HangingTrailingContent::width const):

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::hangingWhitespaceWidth const):
(WebCore::Layout::Line::Run::shouldTrailingWhitespaceHang const):
(WebCore::Layout::Line::Run::isOverflowWhitespaceHanging const): Deleted. shouldTrailingWhitespaceHang is a more descriptive name.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::horizontalAlignmentOffset):
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::hangingGlyphWidth): Deleted.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):

  • layout/formattingContexts/inline/InlineLineBuilder.h:
11:41 AM Changeset in webkit [283473] by Alan Coon
  • 1 copy in tags/Safari-612.2.9.0.3

Tag Safari-612.2.9.0.3.

11:30 AM Changeset in webkit [283472] by Alan Coon
  • 1 copy in tags/Safari-612.2.9.2.2

Tag Safari-612.2.9.2.2.

11:28 AM Changeset in webkit [283471] by Alan Coon
  • 1 copy in tags/Safari-612.2.9.3.2

Tag Safari-612.2.9.3.2.

10:22 AM Changeset in webkit [283470] by Simon Fraser
  • 7 edits in trunk/Source

WebCore::Length incorrectly uses memcpy() for copy constructors/operator and IPC encoding/decoding
https://bugs.webkit.org/show_bug.cgi?id=230744

Reviewed by David Kilzer.
Source/WebCore:

Copy-constructing Length by memcpy is sketchy; replace with code that initializes the appropriate
fields based on type, taking care to deref() and ref() the calc handle.

Expose isFloat() for encoding.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::consumeValueIfCategory): Add a bit of calc logging.

  • platform/Length.cpp:

(WebCore::Length::Length):

  • platform/Length.h:

(WebCore::Length::Length):
(WebCore::Length::operator=):
(WebCore::Length::isFloat const):

Source/WebKit:

Safe encoding/decoding of Length requires that we encode the enum and fields separately,
and don't allow calc types (there isn't enough context in the receiving process to resolve
calc).

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Length>::encode):
(IPC::ArgumentCoder<Length>::decode):

  • Shared/WebCoreArgumentCoders.h:
10:19 AM Changeset in webkit [283469] by basuke.suzuki@sony.com
  • 8 edits in trunk

Enable release log to stderr
https://bugs.webkit.org/show_bug.cgi?id=230725
<rdar://problem/83740529>

Reviewed by Michael Catanzaro.

.:

Introduced new flags, USE_LOG_STDERR for release logging to stderr.

  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

SQLiteDatabase uses hard-coded %{public} format specifiers. Replace them with defined
macro.

No new tests because there is no behavior change.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::close):
(WebCore::SQLiteDatabase::prepareStatementSlow):
(WebCore::SQLiteDatabase::prepareStatement):
(WebCore::SQLiteDatabase::prepareHeapStatementSlow):
(WebCore::SQLiteDatabase::prepareHeapStatement):

Source/WTF:

Define new compiler definitions, USE_LOG_STDERR for release logging. We don't have
modern logging backend so that dumping out to stdout/stderr is still very valuable.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
  • wtf/Logger.h:

(WTF::Logger::log):
(WTF::Logger::logVerbose):

10:10 AM Changeset in webkit [283468] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

Some layout tests with Japanese glyphs fail if Japanese is included in the system "Preferred Languages" settings
https://bugs.webkit.org/show_bug.cgi?id=231112

Reviewed by Simon Fraser.

Simply set the default locale to en-US. Tests can still override it.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

10:02 AM Changeset in webkit [283467] by Alan Coon
  • 1 edit in branches/safari-611.4.2.0-branch/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp

Apply patch. rdar://problem/81175635

10:02 AM Changeset in webkit [283466] by Alan Coon
  • 8 edits
    8 adds in branches/safari-611.4.2.0-branch

Cherry-pick r281431. rdar://problem/81175635

This reverts r283414.

8:52 AM Changeset in webkit [283465] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r283335): rubber-banding no longer locks to an axis
https://bugs.webkit.org/show_bug.cgi?id=231131

Reviewed by Tim Horton.

Source/WebCore:

r283335 introduced a bug where pulling down to rubber-band would result in sideways
motion even when the gesture was mostly vertical.

ScrollingEffectsController::modifyScrollDeltaForStretching() has some axis-locking behavior
that was broken by r283335, so restore the old behavior.

Test: fast/scrolling/mac/rubberband-axis-locking.html

  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::modifyScrollDeltaForStretching):
(WebCore::isHorizontalSide): Deleted.
(WebCore::isVerticalSide): Deleted.

LayoutTests:

  • fast/scrolling/mac/rubberband-axis-locking-expected.txt: Added.
  • fast/scrolling/mac/rubberband-axis-locking.html: Added.
6:59 AM Changeset in webkit [283464] by Antti Koivisto
  • 33 edits
    2 adds in trunk/Source/WebCore

[LFC][Integration] More run->box renaming and other iterator cleanups
https://bugs.webkit.org/show_bug.cgi?id=231135

Reviewed by Alan Bujtas.

Also move TextBoxIterator to a file of its own.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::localCaretRectForCharacterOffset):

  • dom/Position.cpp:

(WebCore::hasInlineRun):
(WebCore::Position::upstream const):
(WebCore::Position::downstream const):
(WebCore::searchAheadForBetterMatch):
(WebCore::Position::inlineRunAndOffset const):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::deleteInsignificantText):

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextRun):
(WebCore::TextIterator::handleTextNodeFirstLetter):

  • editing/TextIterator.h:
  • layout/integration/InlineIteratorBox.cpp:

(WebCore::InlineIterator::BoxIterator::BoxIterator):
(WebCore::InlineIterator::BoxIterator::operator== const):
(WebCore::InlineIterator::BoxIterator::atEnd const):
(WebCore::InlineIterator::Box::line const):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLine):
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLine):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLineIgnoringLineBreak):
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLineIgnoringLineBreak):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLineInLogicalOrder):
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLineInLogicalOrder):
(WebCore::InlineIterator::boxFor):
(WebCore::InlineIterator::Box::modernPath const):
(WebCore::InlineIterator::Box::legacyPath const):
(WebCore::InlineIterator::TextBox::nextTextRun const): Deleted.
(WebCore::InlineIterator::TextBox::nextTextRunInTextOrder const): Deleted.
(WebCore::InlineIterator::TextBox::selectionRect const): Deleted.
(WebCore::InlineIterator::TextBox::isCombinedText const): Deleted.
(WebCore::InlineIterator::TextBox::fontCascade const): Deleted.
(WebCore::InlineIterator::TextBoxIterator::TextBoxIterator): Deleted.
(WebCore::InlineIterator::TextBoxIterator::traverseNextTextRun): Deleted.
(WebCore::InlineIterator::TextBoxIterator::traverseNextTextRunInTextOrder): Deleted.
(WebCore::InlineIterator::firstTextRunFor): Deleted.
(WebCore::InlineIterator::firstTextRunInTextOrderFor): Deleted.
(WebCore::InlineIterator::textRunFor): Deleted.
(WebCore::InlineIterator::textRunsFor): Deleted.
(WebCore::InlineIterator::runFor): Deleted.

  • layout/integration/InlineIteratorBox.h:

(WebCore::InlineIterator::BoxIterator::BoxIterator):
(WebCore::InlineIterator::BoxIterator::operator* const):
(WebCore::InlineIterator::BoxIterator::operator-> const):
(WebCore::InlineIterator::Box::legacyInlineBox const):
(WebCore::InlineIterator::Box::inlineBox const):
(WebCore::InlineIterator::TextBox::renderer const): Deleted.
(WebCore::InlineIterator::TextBox::legacyInlineBox const): Deleted.
(WebCore::InlineIterator::TextBoxIterator::TextBoxIterator): Deleted.
(WebCore::InlineIterator::TextBoxIterator::operator++): Deleted.
(WebCore::InlineIterator::TextBoxIterator::operator* const): Deleted.
(WebCore::InlineIterator::TextBoxIterator::operator-> const): Deleted.
(WebCore::InlineIterator::TextBoxIterator::get const): Deleted.
(WebCore::InlineIterator::TextRunRange::TextRunRange): Deleted.
(WebCore::InlineIterator::TextRunRange::begin const): Deleted.
(WebCore::InlineIterator::TextRunRange::end const): Deleted.
(WebCore::InlineIterator::TextBox::hasHyphen const): Deleted.
(WebCore::InlineIterator::TextBox::TextBox): Deleted.
(WebCore::InlineIterator::TextBox::text const): Deleted.
(WebCore::InlineIterator::TextBox::start const): Deleted.
(WebCore::InlineIterator::TextBox::end const): Deleted.
(WebCore::InlineIterator::TextBox::length const): Deleted.
(WebCore::InlineIterator::TextBox::offsetForPosition const): Deleted.
(WebCore::InlineIterator::TextBox::positionForOffset const): Deleted.
(WebCore::InlineIterator::TextBox::selectableRange const): Deleted.
(WebCore::InlineIterator::TextBox::createTextRun const): Deleted.
(isType): Deleted.

  • layout/integration/InlineIteratorBoxLegacyPath.h:

(WebCore::InlineIterator::BoxLegacyPath::BoxLegacyPath):
(WebCore::InlineIterator::BoxLegacyPath::traverseNextTextBox):
(WebCore::InlineIterator::BoxLegacyPath::traverseNextTextBoxInTextOrder):
(WebCore::InlineIterator::BoxLegacyPath::operator== const):
(WebCore::InlineIterator::BoxLegacyPath::traverseNextInlineBoxInCacheOrder):
(WebCore::InlineIterator::BoxLegacyPath::traversePreviousInlineBoxInCacheOrder):
(WebCore::InlineIterator::BoxIteratorLegacyPath::BoxIteratorLegacyPath): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::isText const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::rect const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::isHorizontal const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::dirOverride const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::isLineBreak const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::minimumCaretOffset const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::maximumCaretOffset const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::bidiLevel const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::hasHyphen const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::text const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::start const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::end const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::length const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::offsetForPosition const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::positionForOffset const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::selectableRange const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::createTextRun const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::renderer const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::traverseNextTextRun): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::traverseNextTextRunInTextOrder): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::traverseNextOnLine): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::traversePreviousOnLine): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::traverseNextOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::traversePreviousOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::operator== const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::atEnd const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::legacyInlineBox const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::rootInlineBox const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::inlineTextBox const): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::initializeLogicalOrderCacheForLine): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::traverseNextInlineBoxInCacheOrder): Deleted.
(WebCore::InlineIterator::BoxIteratorLegacyPath::traversePreviousInlineBoxInCacheOrder): Deleted.

  • layout/integration/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::BoxModernPath):
(WebCore::InlineIterator::BoxModernPath::traverseNextTextBox):
(WebCore::InlineIterator::BoxModernPath::traverseNextTextBoxInTextOrder):
(WebCore::InlineIterator::BoxModernPath::operator== const):
(WebCore::InlineIterator::BoxIteratorModernPath::BoxIteratorModernPath): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::isText const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::rect const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::isHorizontal const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::dirOverride const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::isLineBreak const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::minimumCaretOffset const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::maximumCaretOffset const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::bidiLevel const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::hasHyphen const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::text const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::start const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::end const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::length const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::offsetForPosition const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::positionForOffset const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::selectableRange const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::createTextRun const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::renderer const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::traverseNextTextRun): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::traverseNextTextRunInTextOrder): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::traverseNextOnLine): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::traversePreviousOnLine): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::traverseNextOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::traversePreviousOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::operator== const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::atEnd const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::box const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::inlineContent const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::traverseNextLeaf): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::traversePreviousLeaf): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::setAtEnd): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::boxes const): Deleted.
(WebCore::InlineIterator::BoxIteratorModernPath::line const): Deleted.

  • layout/integration/InlineIteratorLineLegacyPath.h:

(WebCore::InlineIterator::LineIteratorLegacyPath::firstRun const):
(WebCore::InlineIterator::LineIteratorLegacyPath::lastRun const):
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalStartRun const):
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalEndRun const):

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::firstRun const):
(WebCore::InlineIterator::LineIteratorModernPath::lastRun const):
(WebCore::InlineIterator::LineIteratorModernPath::logicalStartRun const):
(WebCore::InlineIterator::LineIteratorModernPath::logicalEndRun const):

  • layout/integration/InlineIteratorTextBox.cpp: Added.

(WebCore::InlineIterator::TextBox::nextTextBox const):
(WebCore::InlineIterator::TextBox::nextTextBoxInTextOrder const):
(WebCore::InlineIterator::TextBox::selectionRect const):
(WebCore::InlineIterator::TextBox::isCombinedText const):
(WebCore::InlineIterator::TextBox::fontCascade const):
(WebCore::InlineIterator::TextBoxIterator::TextBoxIterator):
(WebCore::InlineIterator::TextBoxIterator::traverseNextTextBox):
(WebCore::InlineIterator::TextBoxIterator::traverseNextTextBoxInTextOrder):
(WebCore::InlineIterator::firstTextBoxFor):
(WebCore::InlineIterator::firstTextBoxInTextOrderFor):
(WebCore::InlineIterator::textBoxFor):
(WebCore::InlineIterator::textBoxesFor):

  • layout/integration/InlineIteratorTextBox.h: Added.

(WebCore::InlineIterator::TextBox::renderer const):
(WebCore::InlineIterator::TextBox::legacyInlineBox const):
(WebCore::InlineIterator::TextBoxIterator::TextBoxIterator):
(WebCore::InlineIterator::TextBoxIterator::operator++):
(WebCore::InlineIterator::TextBoxIterator::operator* const):
(WebCore::InlineIterator::TextBoxIterator::operator-> const):
(WebCore::InlineIterator::TextBoxIterator::get const):
(WebCore::InlineIterator::TextBoxRange::TextBoxRange):
(WebCore::InlineIterator::TextBoxRange::begin const):
(WebCore::InlineIterator::TextBoxRange::end const):
(WebCore::InlineIterator::TextBox::hasHyphen const):
(WebCore::InlineIterator::TextBox::TextBox):
(WebCore::InlineIterator::TextBox::text const):
(WebCore::InlineIterator::TextBox::start const):
(WebCore::InlineIterator::TextBox::end const):
(WebCore::InlineIterator::TextBox::length const):
(WebCore::InlineIterator::TextBox::offsetForPosition const):
(WebCore::InlineIterator::TextBox::positionForOffset const):
(WebCore::InlineIterator::TextBox::selectableRange const):
(WebCore::InlineIterator::TextBox::createTextRun const):
(isType):

  • layout/integration/LayoutIntegrationCoverage.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::textBoxesFor const):
(WebCore::LayoutIntegration::LineLayout::boxFor const):
(WebCore::LayoutIntegration::LineLayout::textRunsFor const): Deleted.
(WebCore::LayoutIntegration::LineLayout::runFor const): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/CaretRectComputation.cpp:
  • rendering/LegacyInlineTextBox.h:
  • rendering/LegacyLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getLeadingCorner const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::collectSelectionGeometries):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::linesBoundingBox const):
(WebCore::RenderLineBreak::absoluteRects const):
(WebCore::RenderLineBreak::absoluteQuads const):
(WebCore::RenderLineBreak::collectSelectionGeometries):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::positionForPoint):

  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteRects const):
(WebCore::RenderText::collectSelectionGeometries):
(WebCore::collectAbsoluteQuads):
(WebCore::RenderText::absoluteQuadsForRange const):
(WebCore::RenderText::positionForPoint):
(WebCore::RenderText::firstRunLocation const):
(WebCore::RenderText::linesBoundingBox const):
(WebCore::RenderText::collectSelectionGeometriesForLineBoxes):
(WebCore::RenderText::caretMinOffset const):
(WebCore::RenderText::caretMaxOffset const):
(WebCore::RenderText::countRenderedCharacterOffsetsUntil const):
(WebCore::containsOffset):
(WebCore::RenderText::hasRenderedText const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::write):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::TextBoxPainter):
(WebCore::TextBoxPainter::paintDecoration):
(WebCore::TextBoxPainter::calculateUnionOfAllDocumentMarkerBounds):

  • rendering/TextBoxPainter.h:
  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

  • rendering/TextDecorationPainter.h:

(WebCore::TextDecorationPainter::setTextBox):
(WebCore::TextDecorationPainter::setTextBoxIterator): Deleted.

  • rendering/style/RenderStyle.cpp:
  • style/InlineTextBoxStyle.cpp:
12:16 AM Changeset in webkit [283463] by timothy_horton@apple.com
  • 398 edits in trunk/Source/WebCore

Setting and RuntimeEnabledFeature names in IDL files should match those used elsewhere
https://bugs.webkit.org/show_bug.cgi?id=231129

Rubber-stamped by Sam Weinig.

No new tests; no functional change.

For ease of searching the project, the Setting/RuntimeEnabledFeature names inside
IDL files should match the names used in C++ code (specifically, they shouldn't
magically elide the -Enabled suffix, so that if you search for XFeatureEnabled,
you don't miss the IDL uses).

  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/ApplePaySetup.idl:
  • Modules/applepay/ApplePaySetupFeature.idl:
  • Modules/async-clipboard/Clipboard.idl:
  • Modules/async-clipboard/ClipboardItem.idl:
  • Modules/async-clipboard/Navigator+Clipboard.idl:
  • Modules/beacon/Navigator+Beacon.idl:
  • Modules/cache/DOMCache.idl:
  • Modules/cache/DOMCacheStorage.idl:
  • Modules/cache/WindowOrWorkerGlobalScope+Caches.idl:
  • Modules/contact-picker/ContactsManager.idl:
  • Modules/contact-picker/Navigator+Contacts.idl:
  • Modules/credentialmanagement/BasicCredential.idl:
  • Modules/credentialmanagement/CredentialsContainer.idl:
  • Modules/credentialmanagement/Navigator+Credentials.idl:
  • Modules/encryptedmedia/MediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeyStatusMap.idl:
  • Modules/encryptedmedia/MediaKeySystemAccess.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/encryptedmedia/Navigator+EME.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl:
  • Modules/entriesapi/DOMFileSystem.idl:
  • Modules/entriesapi/FileSystemDirectoryEntry.idl:
  • Modules/entriesapi/FileSystemDirectoryReader.idl:
  • Modules/entriesapi/FileSystemEntry.idl:
  • Modules/entriesapi/FileSystemFileEntry.idl:
  • Modules/entriesapi/HTMLInputElement+EntriesAPI.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/filesystemaccess/FileSystemDirectoryHandle.idl:
  • Modules/filesystemaccess/FileSystemFileHandle.idl:
  • Modules/filesystemaccess/FileSystemHandle.idl:
  • Modules/filesystemaccess/StorageManager+FileSystemAccess.idl:
  • Modules/gamepad/Gamepad.idl:
  • Modules/gamepad/GamepadButton.idl:
  • Modules/gamepad/GamepadEvent.idl:
  • Modules/gamepad/Navigator+Gamepad.idl:
  • Modules/geolocation/GeolocationCoordinates.idl:
  • Modules/highlight/Highlight.idl:
  • Modules/highlight/HighlightRegister.idl:
  • Modules/mediacapabilities/AudioConfiguration.idl:
  • Modules/mediacapabilities/MediaCapabilities.idl:
  • Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl:
  • Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl:
  • Modules/mediacapabilities/MediaCapabilitiesInfo.idl:
  • Modules/mediacapabilities/MediaDecodingConfiguration.idl:
  • Modules/mediacapabilities/MediaEncodingConfiguration.idl:
  • Modules/mediacapabilities/Navigator+MediaCapabilities.idl:
  • Modules/mediacapabilities/VideoConfiguration.idl:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediarecorder/BlobEvent.idl:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediarecorder/MediaRecorderErrorEvent.idl:
  • Modules/mediasession/MediaMetadataInit.idl:
  • Modules/mediasession/MediaMetadataPlaylistMixin.idl:
  • Modules/mediasession/MediaSessionActionDetails.idl:
  • Modules/mediasession/MediaSessionCoordinator.idl:
  • Modules/mediasession/MediaSessionCoordinatorMixin.idl:
  • Modules/mediasession/MediaSessionPlaylistMixin.idl:
  • Modules/mediasession/Navigator+MediaSession.idl:
  • Modules/mediasource/AudioTrack+MediaSource.idl:
  • Modules/mediasource/DOMURL+MediaSource.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediasource/SourceBufferList.idl:
  • Modules/mediasource/TextTrack+MediaSource.idl:
  • Modules/mediasource/VideoPlaybackQuality.idl:
  • Modules/mediasource/VideoTrack+MediaSource.idl:
  • Modules/mediastream/MediaDevices.idl:
  • Modules/mediastream/Navigator+MediaDevices.idl:
  • Modules/mediastream/RTCAnswerOptions.idl:
  • Modules/mediastream/RTCCertificate.idl:
  • Modules/mediastream/RTCConfiguration.idl:
  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCDTMFToneChangeEvent.idl:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCDataChannelEvent.idl:
  • Modules/mediastream/RTCDtlsTransport.idl:
  • Modules/mediastream/RTCDtlsTransportState.idl:
  • Modules/mediastream/RTCEncodedAudioFrame.idl:
  • Modules/mediastream/RTCEncodedVideoFrame.idl:
  • Modules/mediastream/RTCError.idl:
  • Modules/mediastream/RTCErrorEvent.idl:
  • Modules/mediastream/RTCIceCandidate.idl:
  • Modules/mediastream/RTCIceCandidateInit.idl:
  • Modules/mediastream/RTCIceConnectionState.idl:
  • Modules/mediastream/RTCIceGatheringState.idl:
  • Modules/mediastream/RTCIceServer.idl:
  • Modules/mediastream/RTCIceTransport.idl:
  • Modules/mediastream/RTCIceTransportState.idl:
  • Modules/mediastream/RTCOfferAnswerOptions.idl:
  • Modules/mediastream/RTCOfferOptions.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl:
  • Modules/mediastream/RTCPeerConnectionIceEvent.idl:
  • Modules/mediastream/RTCPeerConnectionState.idl:
  • Modules/mediastream/RTCPriorityType.idl:
  • Modules/mediastream/RTCRtcpParameters.idl:
  • Modules/mediastream/RTCRtpCapabilities.idl:
  • Modules/mediastream/RTCRtpCodecCapability.idl:
  • Modules/mediastream/RTCRtpCodecParameters.idl:
  • Modules/mediastream/RTCRtpCodingParameters.idl:
  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpDecodingParameters.idl:
  • Modules/mediastream/RTCRtpEncodingParameters.idl:
  • Modules/mediastream/RTCRtpFecParameters.idl:
  • Modules/mediastream/RTCRtpHeaderExtensionParameters.idl:
  • Modules/mediastream/RTCRtpParameters.idl:
  • Modules/mediastream/RTCRtpReceiver+Transform.idl:
  • Modules/mediastream/RTCRtpReceiver.idl:
  • Modules/mediastream/RTCRtpRtxParameters.idl:
  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpSFrameTransformErrorEvent.idl:
  • Modules/mediastream/RTCRtpScriptTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransformer.idl:
  • Modules/mediastream/RTCRtpSendParameters.idl:
  • Modules/mediastream/RTCRtpSender+Transform.idl:
  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/RTCRtpSynchronizationSource.idl:
  • Modules/mediastream/RTCRtpTransceiver.idl:
  • Modules/mediastream/RTCRtpTransceiverDirection.idl:
  • Modules/mediastream/RTCSctpTransport.idl:
  • Modules/mediastream/RTCSctpTransportState.idl:
  • Modules/mediastream/RTCSdpType.idl:
  • Modules/mediastream/RTCSessionDescription.idl:
  • Modules/mediastream/RTCSignalingState.idl:
  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/mediastream/RTCTrackEvent.idl:
  • Modules/mediastream/RTCTransformEvent.idl:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/PaymentAddress.idl:
  • Modules/paymentrequest/PaymentMethodChangeEvent.idl:
  • Modules/paymentrequest/PaymentRequest.idl:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.idl:
  • Modules/paymentrequest/PaymentResponse.idl:
  • Modules/permissions/Navigator+Permissions.idl:
  • Modules/permissions/PermissionDescriptor.idl:
  • Modules/permissions/PermissionStatus.idl:
  • Modules/permissions/Permissions.idl:
  • Modules/pictureinpicture/Document+PictureInPicture.idl:
  • Modules/pictureinpicture/DocumentOrShadowRoot+PictureInPicture.idl:
  • Modules/pictureinpicture/EnterPictureInPictureEvent.idl:
  • Modules/pictureinpicture/HTMLVideoElement+PictureInPicture.idl:
  • Modules/pictureinpicture/PictureInPictureWindow.idl:
  • Modules/push-api/PushEvent.idl:
  • Modules/push-api/PushMessageData.idl:
  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:
  • Modules/remoteplayback/HTMLMediaElement+RemotePlayback.idl:
  • Modules/remoteplayback/RemotePlayback.idl:
  • Modules/remoteplayback/RemotePlaybackAvailabilityCallback.idl:
  • Modules/speech/SpeechRecognition.idl:
  • Modules/speech/SpeechRecognitionAlternative.idl:
  • Modules/speech/SpeechRecognitionErrorEvent.idl:
  • Modules/speech/SpeechRecognitionEvent.idl:
  • Modules/speech/SpeechRecognitionResult.idl:
  • Modules/speech/SpeechRecognitionResultList.idl:
  • Modules/storage/StorageManager.idl:
  • Modules/streams/TransformStream.idl:
  • Modules/streams/TransformStreamDefaultController.idl:
  • Modules/webaudio/AnalyserNode.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioParamMap.idl:
  • Modules/webaudio/AudioProcessingEvent.idl:
  • Modules/webaudio/AudioWorklet.idl:
  • Modules/webaudio/AudioWorkletNode.idl:
  • Modules/webaudio/AudioWorkletNodeOptions.idl:
  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/BiquadFilterNode.idl:
  • Modules/webaudio/ChannelMergerNode.idl:
  • Modules/webaudio/ChannelSplitterNode.idl:
  • Modules/webaudio/ConstantSourceNode.idl:
  • Modules/webaudio/ConstantSourceOptions.idl:
  • Modules/webaudio/ConvolverNode.idl:
  • Modules/webaudio/DelayNode.idl:
  • Modules/webaudio/DynamicsCompressorNode.idl:
  • Modules/webaudio/GainNode.idl:
  • Modules/webaudio/IIRFilterNode.idl:
  • Modules/webaudio/MediaElementAudioSourceNode.idl:
  • Modules/webaudio/MediaStreamAudioDestinationNode.idl:
  • Modules/webaudio/MediaStreamAudioSourceNode.idl:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webaudio/OscillatorNode.idl:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/PeriodicWave.idl:
  • Modules/webaudio/StereoPannerNode.idl:
  • Modules/webaudio/WaveShaperNode.idl:
  • Modules/webauthn/AuthenticatorAssertionResponse.idl:
  • Modules/webauthn/AuthenticatorAttestationResponse.idl:
  • Modules/webauthn/AuthenticatorResponse.idl:
  • Modules/webauthn/PublicKeyCredential.idl:
  • Modules/webdatabase/Database.idl:
  • Modules/webdatabase/SQLError.idl:
  • Modules/webdatabase/SQLResultSet.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/websockets/WebSocket.idl:
  • Modules/webxr/Navigator+WebXR.idl:
  • Modules/webxr/WebXRBoundedReferenceSpace.idl:
  • Modules/webxr/WebXRFrame.idl:
  • Modules/webxr/WebXRInputSource.idl:
  • Modules/webxr/WebXRInputSourceArray.idl:
  • Modules/webxr/WebXRLayer.idl:
  • Modules/webxr/WebXRPose.idl:
  • Modules/webxr/WebXRReferenceSpace.idl:
  • Modules/webxr/WebXRRenderState.idl:
  • Modules/webxr/WebXRRigidTransform.idl:
  • Modules/webxr/WebXRSession.idl:
  • Modules/webxr/WebXRSpace.idl:
  • Modules/webxr/WebXRSystem.idl:
  • Modules/webxr/WebXRView.idl:
  • Modules/webxr/WebXRViewerPose.idl:
  • Modules/webxr/WebXRViewport.idl:
  • Modules/webxr/WebXRWebGLLayer.idl:
  • Modules/webxr/XREnvironmentBlendMode.idl:
  • Modules/webxr/XREye.idl:
  • Modules/webxr/XRHandedness.idl:
  • Modules/webxr/XRInputSourceEvent.idl:
  • Modules/webxr/XRInputSourcesChangeEvent.idl:
  • Modules/webxr/XRInteractionMode.idl:
  • Modules/webxr/XRReferenceSpaceEvent.idl:
  • Modules/webxr/XRReferenceSpaceType.idl:
  • Modules/webxr/XRRenderStateInit.idl:
  • Modules/webxr/XRSessionEvent.idl:
  • Modules/webxr/XRSessionInit.idl:
  • Modules/webxr/XRSessionMode.idl:
  • Modules/webxr/XRTargetRayMode.idl:
  • Modules/webxr/XRVisibilityState.idl:
  • Modules/webxr/XRWebGLLayerInit.idl:
  • accessibility/AccessibilityRole.idl:
  • accessibility/AriaAttributes.idl:
  • animation/KeyframeEffect.idl:
  • animation/WebAnimation.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/test/TestConditionalIncludes.idl:
  • bindings/scripts/test/TestConditionallyReadWrite.idl:
  • bindings/scripts/test/TestDefaultToJSON.idl:
  • bindings/scripts/test/TestEnabledBySetting.idl:
  • bindings/scripts/test/TestEnabledBySettingSupplemental.idl:
  • bindings/scripts/test/TestEnabledForContext.idl:
  • bindings/scripts/test/TestGlobalObject.idl:
  • bindings/scripts/test/TestMixinInterface.idl:
  • bindings/scripts/test/TestNamespaceObject.idl:
  • bindings/scripts/test/TestNode.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestPartialNamespaceObject.idl:
  • bindings/scripts/test/TestSupplemental.idl:
  • css/CSSCounterStyleRule.idl:
  • css/CSSPaintCallback.idl:
  • css/CSSPaintSize.idl:
  • css/CSSProperties.json:
  • css/CSSRule.idl:
  • css/DOMCSSCustomPropertyDescriptor.idl:
  • css/DOMCSSNamespace+CSSNumericFactory.idl:
  • css/DOMCSSNamespace+CSSPainting.idl:
  • css/DOMCSSNamespace+CSSPropertiesandValues.idl:
  • css/DOMCSSNamespace.idl:
  • css/ElementCSSInlineStyle.idl:
  • css/makeprop.pl:
  • css/typedom/CSSKeywordValue.idl:
  • css/typedom/CSSNumericValue.idl:
  • css/typedom/CSSOMVariableReferenceValue.idl:
  • css/typedom/CSSStyleImageValue.idl:
  • css/typedom/CSSStyleValue.idl:
  • css/typedom/CSSUnitValue.idl:
  • css/typedom/CSSUnparsedValue.idl:
  • css/typedom/StylePropertyMap.idl:
  • css/typedom/StylePropertyMapReadOnly.idl:
  • css/typedom/numeric/CSSMathInvert.idl:
  • css/typedom/numeric/CSSMathMax.idl:
  • css/typedom/numeric/CSSMathMin.idl:
  • css/typedom/numeric/CSSMathNegate.idl:
  • css/typedom/numeric/CSSMathProduct.idl:
  • css/typedom/numeric/CSSMathSum.idl:
  • css/typedom/numeric/CSSMathValue.idl:
  • css/typedom/numeric/CSSNumericArray.idl:
  • css/typedom/numeric/CSSNumericBaseType.idl:
  • css/typedom/transform/CSSMatrixComponent.idl:
  • css/typedom/transform/CSSPerspective.idl:
  • css/typedom/transform/CSSRotate.idl:
  • css/typedom/transform/CSSScale.idl:
  • css/typedom/transform/CSSSkew.idl:
  • css/typedom/transform/CSSSkewX.idl:
  • css/typedom/transform/CSSSkewY.idl:
  • css/typedom/transform/CSSTransformComponent.idl:
  • css/typedom/transform/CSSTransformValue.idl:
  • css/typedom/transform/CSSTranslate.idl:
  • dom/Attr.idl:
  • dom/BeforeLoadEvent.idl:
  • dom/BroadcastChannel.idl:
  • dom/DataTransfer.idl:
  • dom/DataTransferItem.idl:
  • dom/DataTransferItemList.idl:
  • dom/DeviceMotionEvent.idl:
  • dom/DeviceOrientationEvent.idl:
  • dom/Document+Fullscreen.idl:
  • dom/Document+StorageAccess.idl:
  • dom/Document+UndoMananger.idl:
  • dom/Element+Fullscreen.idl:
  • dom/Element.idl:
  • dom/ElementContentEditable.idl:
  • dom/GlobalEventHandlers.idl:
  • dom/IdleDeadline.idl:
  • dom/InputEvent.idl:
  • dom/TextDecoderStream.idl:
  • dom/TextDecoderStreamDecoder.idl:
  • dom/TextEncoderStream.idl:
  • dom/TextEncoderStreamEncoder.idl:
  • fileapi/File.idl:
  • html/HTMLAnchorElement.idl:
  • html/HTMLAreaElement.idl:
  • html/HTMLAttachmentElement.idl:
  • html/HTMLButtonElement.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLDataListElement.idl:
  • html/HTMLDialogElement.idl:
  • html/HTMLElement.idl:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLKeygenElement.idl:
  • html/HTMLLinkElement.idl:
  • html/HTMLMediaElement+AudioOutput.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLMenuItemElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOutputElement.idl:
  • html/HTMLScriptElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTextAreaElement.idl:
  • html/ImageBitmap.idl:
  • html/ImageData.idl:
  • html/ImageDataSettings.idl:
  • html/MediaEncryptedEvent.idl:
  • html/OffscreenCanvas.idl:
  • html/WebKitMediaKeyError.idl:
  • html/canvas/CanvasPath.idl:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/CanvasRenderingContext2DSettings.idl:
  • html/canvas/ImageBitmapRenderingContext.idl:
  • html/canvas/OffscreenCanvasRenderingContext2D.idl:
  • html/canvas/PaintRenderingContext2D.idl:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLTransformFeedback.idl:
  • html/canvas/WebGLVertexArrayObject.idl:
  • html/track/AudioTrack.idl:
  • html/track/TextTrack.idl:
  • html/track/TextTrackCue.idl:
  • html/track/VideoTrack.idl:
  • page/DOMSelection.idl:
  • page/DOMWindow+RequestIdleCallback.idl:
  • page/DOMWindow+VisualViewport.idl:
  • page/IntersectionObserver.idl:
  • page/IntersectionObserverEntry.idl:
  • page/Navigator+IsLoggedIn.idl:
  • page/NavigatorServiceWorker.idl:
  • page/NavigatorShare.idl:
  • page/NavigatorStorage.idl:
  • page/PerformanceNavigationTiming.idl:
  • page/PerformancePaintTiming.idl:
  • page/PerformanceResourceTiming.idl:
  • page/PerformanceServerTiming.idl:
  • page/ResizeObserver.idl:
  • page/ResizeObserverEntry.idl:
  • page/UndoItem.idl:
  • page/UndoManager.idl:
  • page/VisualViewport.idl:
  • page/WindowOrWorkerGlobalScope.idl:
  • testing/FakeXRBoundsPoint.idl:
  • testing/FakeXRButtonStateInit.idl:
  • testing/FakeXRInputSourceInit.idl:
  • testing/FakeXRRigidTransformInit.idl:
  • testing/FakeXRViewInit.idl:
  • testing/WebFakeXRDevice.idl:
  • testing/WebFakeXRInputController.idl:
  • testing/WebXRTest.idl:
  • testing/XRSimulateUserActivationFunction.idl:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/SharedWorker.idl:
  • workers/SharedWorkerGlobalScope.idl:
  • workers/service/ExtendableEvent.idl:
  • workers/service/ExtendableMessageEvent.idl:
  • workers/service/FetchEvent.idl:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.idl:
  • workers/service/ServiceWorkerClients.idl:
  • workers/service/ServiceWorkerContainer.idl:
  • workers/service/ServiceWorkerGlobalScope.idl:
  • workers/service/ServiceWorkerRegistration.idl:
  • workers/service/ServiceWorkerWindowClient.idl:
  • worklets/PaintWorkletGlobalScope.idl:

Oct 2, 2021:

9:41 PM Changeset in webkit [283462] by commit-queue@webkit.org
  • 10 edits in trunk/Tools

Migrate some tests from TCPServer to HTTPServer
https://bugs.webkit.org/show_bug.cgi?id=231130

Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-02
Reviewed by Chris Dumez.

The former runs logic on a non-main thread and has a destructor that waits for all threads to join,
which often causes timeouts in tests. This is progress towards removing TCPServer, which has been
replaced by HTTPServer.

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/PDFLinkReferrer.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UploadDirectory.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):
(respondToRangeRequests):

9:04 PM Changeset in webkit [283461] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

[JSC] Update test262 config.yaml since OSS WebKit now uses ICU 64.2 header
https://bugs.webkit.org/show_bug.cgi?id=231121

Reviewed by Mark Lam.

  • test262/config.yaml:
7:13 PM Changeset in webkit [283460] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] DateTimeFormat.resolvedOptions shouldn't return an object with other date/time properties if dateStyle or timeStyle are set
https://bugs.webkit.org/show_bug.cgi?id=231041

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-date-time-format-date-time-style-basic.js:

(shouldBe.JSON.stringify.o.resolvedOptions):
(shouldBe):
(shouldBe.o.format): Deleted.

Source/JavaScriptCore:

When "dateStyle" or "timestyle" option is specified in Intl.DateTimeFormat, we should not expose detailed
resolved format information in resolvedOptions, since specifying these options is not what the user of
this Intl.DateTimeFormat intended. This is specified in the spec[1] step 5-d.

[1]: https://tc39.es/ecma402/#sec-intl.datetimeformat.prototype.resolvedoptions

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::resolvedOptions const):

7:12 PM Changeset in webkit [283459] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Enable Intl.DisplayNames without ICU version check
https://bugs.webkit.org/show_bug.cgi?id=231122

Reviewed by Ross Kirsling.

Now every port requires ICU 61.2 or later. Since Intl.DisplayNames requires ICU 61, we can enable it without ICU version check.
This simplifies Intl.DisplayNames code.

  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::initializeDisplayNames):
(JSC::IntlDisplayNames::of const):

  • runtime/IntlDisplayNames.h:
  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation):

7:11 PM Changeset in webkit [283458] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix warnings in perl script
https://bugs.webkit.org/show_bug.cgi?id=231124

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2021-10-02
Reviewed by Simon Fraser.

Fix for warnings when running script.

  • css/makevalues.pl:
6:36 PM Changeset in webkit [283457] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Replace WKProcessPoolWeakObserver (Direct) category with (direct) property attribute
<https://webkit.org/b/231119>

Reviewed by Anders Carlsson.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(-[WKProcessPoolWeakObserver initWithWeakPtr:]):

  • Merge WKProcessPoolWeakObserver (Direct) category into primary interface, and use the (direct) property attribute instead.
5:24 PM Changeset in webkit [283456] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (r275455): ASSERTION FAILED: process->hasOneRef() seen with TestWebKitAPI.WKProcessPool.WarmInitialProcess
https://bugs.webkit.org/show_bug.cgi?id=231106

Reviewed by Geoffrey Garen.

r275455 added a dispatch_async() which captures a Ref<> to a WebProcessProxy. This may cause the WebProcessProxy to
outlive its WebProcessPool (prewarmed WebProcessProxies to not ref their WebProcessPool), which is not supported.
We could fix the crash by also capturing a Ref<> to the WebProcessPool in the lambda. However, in this particular
instance, it does not seem useful to extend the lifetime of the WebProcessProxy / WebProcessPool so I opted to use
a WeakPtr.

No new tests, covered by existing API test crashing in debug.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

3:54 PM Changeset in webkit [283455] by Russell Epstein
  • 7 edits in branches/safari-612.2.9.3-branch/Source

Cherry-pick r283444. rdar://problem/83784775

Remove JSC hack after r283410
https://bugs.webkit.org/show_bug.cgi?id=230261

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/PropertySlot.h:

Source/WebCore:

We revert a hack for accessors in JSC since this is not necessary.

  • bindings/scripts/CodeGeneratorJS.pm: (GetJSCAttributesForAttribute):
  • bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjDOMConstructor::construct): (WebCore::jsTestObj_searchGetter): (WebCore::JSC_DEFINE_CUSTOM_GETTER): (WebCore::setJSTestObj_searchSetter): (WebCore::JSC_DEFINE_CUSTOM_SETTER):
  • bindings/scripts/test/TestObj.idl:

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

3:53 PM Changeset in webkit [283454] by Russell Epstein
  • 3 edits in branches/safari-612.2.9.3-branch/Source/WebCore/bindings/scripts

Revert "Apply patch. rdar://problem/83784775"

This reverts commit r283426.

3:51 PM Changeset in webkit [283453] by Russell Epstein
  • 7 edits in branches/safari-612.2.9.2-branch/Source

Cherry-pick r283444. rdar://problem/83784741

Remove JSC hack after r283410
https://bugs.webkit.org/show_bug.cgi?id=230261

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/PropertySlot.h:

Source/WebCore:

We revert a hack for accessors in JSC since this is not necessary.

  • bindings/scripts/CodeGeneratorJS.pm: (GetJSCAttributesForAttribute):
  • bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjDOMConstructor::construct): (WebCore::jsTestObj_searchGetter): (WebCore::JSC_DEFINE_CUSTOM_GETTER): (WebCore::setJSTestObj_searchSetter): (WebCore::JSC_DEFINE_CUSTOM_SETTER):
  • bindings/scripts/test/TestObj.idl:

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

3:51 PM Changeset in webkit [283452] by Russell Epstein
  • 3 edits in branches/safari-612.2.9.2-branch/Source/WebCore/bindings/scripts

Revert "Apply patch. rdar://problem/83784741"

This reverts commit r283422.

3:51 PM Changeset in webkit [283451] by Russell Epstein
  • 7 edits in branches/safari-612.2.9.1-branch/Source

Cherry-pick r283444. rdar://problem/83784764

Remove JSC hack after r283410
https://bugs.webkit.org/show_bug.cgi?id=230261

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/PropertySlot.h:

Source/WebCore:

We revert a hack for accessors in JSC since this is not necessary.

  • bindings/scripts/CodeGeneratorJS.pm: (GetJSCAttributesForAttribute):
  • bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjDOMConstructor::construct): (WebCore::jsTestObj_searchGetter): (WebCore::JSC_DEFINE_CUSTOM_GETTER): (WebCore::setJSTestObj_searchSetter): (WebCore::JSC_DEFINE_CUSTOM_SETTER):
  • bindings/scripts/test/TestObj.idl:

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

3:51 PM Changeset in webkit [283450] by Russell Epstein
  • 3 edits in branches/safari-612.2.9.1-branch/Source/WebCore/bindings/scripts

Revert "Apply patch. rdar://problem/83784764"

This reverts commit r283421.

3:45 PM Changeset in webkit [283449] by Russell Epstein
  • 7 edits in branches/safari-612.2.9.0-branch/Source

Cherry-pick r283444. rdar://problem/83784757

Remove JSC hack after r283410
https://bugs.webkit.org/show_bug.cgi?id=230261

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/PropertySlot.h:

Source/WebCore:

We revert a hack for accessors in JSC since this is not necessary.

  • bindings/scripts/CodeGeneratorJS.pm: (GetJSCAttributesForAttribute):
  • bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjDOMConstructor::construct): (WebCore::jsTestObj_searchGetter): (WebCore::JSC_DEFINE_CUSTOM_GETTER): (WebCore::setJSTestObj_searchSetter): (WebCore::JSC_DEFINE_CUSTOM_SETTER):
  • bindings/scripts/test/TestObj.idl:

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

3:44 PM Changeset in webkit [283448] by Russell Epstein
  • 3 edits in branches/safari-612.2.9.0-branch/Source/WebCore/bindings/scripts

Revert "Apply patch. rdar://problem/83784757"

This reverts commit r283424.

3:18 PM Changeset in webkit [283447] by commit-queue@webkit.org
  • 1 edit
    6 adds in trunk/LayoutTests/imported/w3c

WPTs for hypot,sqrt,pow calc functions
https://bugs.webkit.org/show_bug.cgi?id=231053

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2021-10-02
Reviewed by Simon Fraser.

  • web-platform-tests/css/css-values/hypot-pow-sqrt-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/hypot-pow-sqrt-computed.html: Added.
  • web-platform-tests/css/css-values/hypot-pow-sqrt-invalid-expected.txt: Added.
  • web-platform-tests/css/css-values/hypot-pow-sqrt-invalid.html: Added.
  • web-platform-tests/css/css-values/hypot-pow-sqrt-serialize-expected.txt: Added.
  • web-platform-tests/css/css-values/hypot-pow-sqrt-serialize.html: Added.
2:24 PM Changeset in webkit [283446] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, add reported test to our stress tests
https://bugs.webkit.org/show_bug.cgi?id=230827

While we cannot reproduce the issue successfully, adding it to our stress tests to ensure that this will never happen.

  • stress/intl-datetimeformat.js:
1:30 PM Changeset in webkit [283445] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable HAVE_ICU_U_DATE_INTERVAL_FORMAT_FORMAT_RANGE_TO_PARTS on Darwin OSS build
https://bugs.webkit.org/show_bug.cgi?id=231120

Reviewed by Ross Kirsling.

We now assume that ICU is 64.2 or later in Darwin since Mojave WebKit build is no longer supported.
We enable HAVE_ICU_U_DATE_INTERVAL_FORMAT_FORMAT_RANGE_TO_PARTS on Darwin OSS build.

  • runtime/IntlDateTimeFormat.h:
12:15 PM Changeset in webkit [283444] by ysuzuki@apple.com
  • 7 edits in trunk/Source

Remove JSC hack after r283410
https://bugs.webkit.org/show_bug.cgi?id=230261

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertyDescriptor):

  • runtime/PropertySlot.h:

Source/WebCore:

We revert a hack for accessors in JSC since this is not necessary.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetJSCAttributesForAttribute):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObj_searchGetter):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::setJSTestObj_searchSetter):
(WebCore::JSC_DEFINE_CUSTOM_SETTER):

  • bindings/scripts/test/TestObj.idl:
7:01 AM Changeset in webkit [283443] by Antti Koivisto
  • 35 edits
    8 moves in trunk/Source/WebCore

[LFC][Integration] Move inline iterators to InlineIterator namespace and rename Run* to Box*
https://bugs.webkit.org/show_bug.cgi?id=231118

Reviewed by Alan Bujtas.

Improve naming and namespacing of the iterator types.

Iterator types move from LayoutIntegration to InlineIterator namespace.

Also the iterator and the iterated type is named from Run to Box for accuracy and
the confusing word Path is dropped (since there are no name conflits in the new namespace).

This patch does not yet change any accessors or variable names to match the run->box renaming.

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

(WebCore::AXObjectCache::localCaretRectForCharacterOffset):

  • dom/Position.cpp:

(WebCore::hasInlineRun):
(WebCore::Position::upstream const):
(WebCore::Position::downstream const):
(WebCore::searchAheadForBetterMatch):
(WebCore::Position::inlineRunAndOffset const):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::deleteInsignificantText):

  • editing/InlineRunAndOffset.h:
  • editing/RenderedPosition.cpp:

(WebCore::RenderedPosition::RenderedPosition):
(WebCore::RenderedPosition::previousLeafOnLine const):
(WebCore::RenderedPosition::nextLeafOnLine const):

  • editing/RenderedPosition.h:

(WebCore::RenderedPosition::line const):

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextRun):
(WebCore::TextIterator::handleTextNodeFirstLetter):

  • editing/TextIterator.h:
  • editing/VisiblePosition.cpp:
  • editing/VisibleUnits.cpp:

(WebCore::isTextOrLineBreakRun):
(WebCore::previousTextOrLineBreakRun):
(WebCore::nextTextOrLineBreakRun):
(WebCore::startTextOrLineBreakRun):
(WebCore::endTextOrLineBreakRun):
(WebCore::logicallyPreviousRun):
(WebCore::logicallyNextRun):
(WebCore::wordBreakIteratorForMinOffsetBoundary):
(WebCore::wordBreakIteratorForMaxOffsetBoundary):
(WebCore::visualWordPosition):
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):

  • layout/integration/InlineIteratorBox.cpp: Renamed from Source/WebCore/layout/integration/LayoutIntegrationRunIterator.cpp.

(WebCore::InlineIterator::BoxIterator::BoxIterator):
(WebCore::InlineIterator::BoxIterator::operator== const):
(WebCore::InlineIterator::BoxIterator::atEnd const):
(WebCore::InlineIterator::Box::nextOnLine const):
(WebCore::InlineIterator::Box::previousOnLine const):
(WebCore::InlineIterator::Box::nextOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::Box::previousOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::Box::line const):
(WebCore::InlineIterator::Box::style const):
(WebCore::InlineIterator::TextBox::nextTextRun const):
(WebCore::InlineIterator::TextBox::nextTextRunInTextOrder const):
(WebCore::InlineIterator::TextBox::selectionRect const):
(WebCore::InlineIterator::TextBox::isCombinedText const):
(WebCore::InlineIterator::TextBox::fontCascade const):
(WebCore::InlineIterator::Box::selectionState const):
(WebCore::InlineIterator::TextBoxIterator::TextBoxIterator):
(WebCore::InlineIterator::TextBoxIterator::traverseNextTextRun):
(WebCore::InlineIterator::TextBoxIterator::traverseNextTextRunInTextOrder):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLine):
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLine):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLineIgnoringLineBreak):
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLineIgnoringLineBreak):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLineInLogicalOrder):
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLineInLogicalOrder):
(WebCore::InlineIterator::firstTextRunFor):
(WebCore::InlineIterator::firstTextRunInTextOrderFor):
(WebCore::InlineIterator::textRunFor):
(WebCore::InlineIterator::runFor):
(WebCore::InlineIterator::Box::modernPath const):
(WebCore::InlineIterator::Box::legacyPath const):

  • layout/integration/InlineIteratorBox.h: Renamed from Source/WebCore/layout/integration/LayoutIntegrationRunIterator.h.

(WebCore::InlineIterator::TextBox::renderer const):
(WebCore::InlineIterator::TextBox::legacyInlineBox const):
(WebCore::InlineIterator::BoxIterator::BoxIterator):
(WebCore::InlineIterator::BoxIterator::operator!= const):
(WebCore::InlineIterator::BoxIterator::operator* const):
(WebCore::InlineIterator::BoxIterator::operator-> const):
(WebCore::InlineIterator::TextBoxIterator::TextBoxIterator):
(WebCore::InlineIterator::TextBoxIterator::operator++):
(WebCore::InlineIterator::TextBoxIterator::operator* const):
(WebCore::InlineIterator::TextBoxIterator::operator-> const):
(WebCore::InlineIterator::TextBoxIterator::get const):
(WebCore::InlineIterator::TextRunRange::TextRunRange):
(WebCore::InlineIterator::TextRunRange::begin const):
(WebCore::InlineIterator::Box::Box):
(WebCore::InlineIterator::Box::isText const):
(WebCore::InlineIterator::Box::rect const):
(WebCore::InlineIterator::Box::isHorizontal const):
(WebCore::InlineIterator::Box::dirOverride const):
(WebCore::InlineIterator::Box::isLineBreak const):
(WebCore::InlineIterator::Box::minimumCaretOffset const):
(WebCore::InlineIterator::Box::maximumCaretOffset const):
(WebCore::InlineIterator::Box::bidiLevel const):
(WebCore::InlineIterator::Box::renderer const):
(WebCore::InlineIterator::Box::legacyInlineBox const):
(WebCore::InlineIterator::Box::inlineBox const):
(WebCore::InlineIterator::TextBox::hasHyphen const):
(WebCore::InlineIterator::TextBox::TextBox):
(WebCore::InlineIterator::TextBox::text const):
(WebCore::InlineIterator::TextBox::start const):
(WebCore::InlineIterator::TextBox::end const):
(WebCore::InlineIterator::TextBox::length const):
(WebCore::InlineIterator::TextBox::offsetForPosition const):
(WebCore::InlineIterator::TextBox::positionForOffset const):
(WebCore::InlineIterator::TextBox::selectableRange const):
(WebCore::InlineIterator::TextBox::createTextRun const):
(isType):

  • layout/integration/InlineIteratorBoxLegacyPath.h: Renamed from Source/WebCore/layout/integration/LayoutIntegrationRunIteratorLegacyPath.h.

(WebCore::InlineIterator::BoxIteratorLegacyPath::BoxIteratorLegacyPath):
(WebCore::InlineIterator::BoxIteratorLegacyPath::operator== const):
(WebCore::InlineIterator::BoxIteratorLegacyPath::traverseNextInlineBoxInCacheOrder):
(WebCore::InlineIterator::BoxIteratorLegacyPath::traversePreviousInlineBoxInCacheOrder):

  • layout/integration/InlineIteratorBoxModernPath.h: Renamed from Source/WebCore/layout/integration/LayoutIntegrationRunIteratorModernPath.h.

(WebCore::InlineIterator::BoxIteratorModernPath::BoxIteratorModernPath):
(WebCore::InlineIterator::BoxIteratorModernPath::operator== const):
(WebCore::InlineIterator::BoxIteratorModernPath::boxes const):
(WebCore::InlineIterator::BoxIteratorModernPath::line const):

  • layout/integration/InlineIteratorLine.cpp: Renamed from Source/WebCore/layout/integration/LayoutIntegrationLineIterator.cpp.

(WebCore::InlineIterator::LineIterator::LineIterator):
(WebCore::InlineIterator::Line::next const):
(WebCore::InlineIterator::Line::previous const):
(WebCore::InlineIterator::Line::firstRun const):
(WebCore::InlineIterator::Line::lastRun const):
(WebCore::InlineIterator::Line::logicalStartRun const):
(WebCore::InlineIterator::Line::logicalEndRun const):
(WebCore::InlineIterator::Line::logicalStartRunWithNode const):
(WebCore::InlineIterator::Line::logicalEndRunWithNode const):
(WebCore::InlineIterator::Line::closestRunForPoint const):
(WebCore::InlineIterator::Line::closestRunForLogicalLeftPosition const):
(WebCore::InlineIterator::Line::blockDirectionPointInLine const):
(WebCore::InlineIterator::Line::selectionTopAdjustedForPrecedingBlock const):
(WebCore::InlineIterator::Line::selectionHeightAdjustedForPrecedingBlock const):
(WebCore::InlineIterator::Line::selectionState const):
(WebCore::InlineIterator::Line::firstSelectedBox const):
(WebCore::InlineIterator::Line::lastSelectedBox const):

  • layout/integration/InlineIteratorLine.h: Renamed from Source/WebCore/layout/integration/LayoutIntegrationLineIterator.h.

(WebCore::InlineIterator::LineIterator::operator* const):
(WebCore::InlineIterator::LineIterator::operator-> const):
(WebCore::InlineIterator::Line::Line):
(WebCore::InlineIterator::Line::top const):
(WebCore::InlineIterator::Line::bottom const):
(WebCore::InlineIterator::Line::selectionTop const):
(WebCore::InlineIterator::Line::selectionTopForHitTesting const):
(WebCore::InlineIterator::Line::selectionBottom const):
(WebCore::InlineIterator::Line::selectionHeight const):
(WebCore::InlineIterator::Line::lineBoxTop const):
(WebCore::InlineIterator::Line::lineBoxBottom const):
(WebCore::InlineIterator::Line::selectionRect const):
(WebCore::InlineIterator::Line::y const):
(WebCore::InlineIterator::Line::contentLogicalLeft const):
(WebCore::InlineIterator::Line::contentLogicalRight const):
(WebCore::InlineIterator::Line::contentLogicalWidth const):
(WebCore::InlineIterator::Line::logicalHeight const):
(WebCore::InlineIterator::Line::isHorizontal const):
(WebCore::InlineIterator::Line::baselineType const):
(WebCore::InlineIterator::Line::containingBlock const):
(WebCore::InlineIterator::Line::legacyRootInlineBox const):
(WebCore::InlineIterator::Line::isFirst const):

  • layout/integration/InlineIteratorLineLegacyPath.h: Renamed from Source/WebCore/layout/integration/LayoutIntegrationLineIteratorLegacyPath.h.

(WebCore::InlineIterator::LineIteratorLegacyPath::firstRun const):
(WebCore::InlineIterator::LineIteratorLegacyPath::lastRun const):
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalStartRun const):
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalEndRun const):

  • layout/integration/InlineIteratorLineModernPath.h: Renamed from Source/WebCore/layout/integration/LayoutIntegrationLineIteratorModernPath.h.

(WebCore::InlineIterator::LineIteratorModernPath::LineIteratorModernPath):
(WebCore::InlineIterator::LineIteratorModernPath::firstRun const):
(WebCore::InlineIterator::LineIteratorModernPath::lastRun const):
(WebCore::InlineIterator::LineIteratorModernPath::logicalStartRun const):
(WebCore::InlineIterator::LineIteratorModernPath::logicalEndRun const):
(WebCore::InlineIterator::LineIteratorModernPath::lines const):
(WebCore::InlineIterator::LineIteratorModernPath::line const):

  • layout/integration/LayoutIntegrationInlineContent.cpp:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::textRunsFor const):
(WebCore::LayoutIntegration::LineLayout::runFor const):
(WebCore::LayoutIntegration::LineLayout::firstLine const):
(WebCore::LayoutIntegration::LineLayout::lastLine const):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::TextBoxIterator::TextBoxIterator):
(WebCore::TextBoxIterator::operator==):
(WebCore::TextBoxIterator::operator!=):
(WebCore::GraphicsContext::drawBidiText):
(WebCore::TextRunIterator::TextRunIterator): Deleted.
(WebCore::TextRunIterator::offset const): Deleted.
(WebCore::TextRunIterator::increment): Deleted.
(WebCore::TextRunIterator::atEnd const): Deleted.
(WebCore::TextRunIterator::current const): Deleted.
(WebCore::TextRunIterator::direction const): Deleted.
(WebCore::TextRunIterator::operator==): Deleted.
(WebCore::TextRunIterator::operator!=): Deleted.

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForLinePosition):
(WebCore::computeCaretRectForText):

  • rendering/LegacyInlineTextBox.h:
  • rendering/LegacyLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustForBorderFit const):
(WebCore::RenderBlockFlow::adjustSelectionTopForPrecedingBlock const):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::positionForRun):
(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):

  • rendering/RenderBox.cpp:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getLeadingCorner const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::collectSelectionGeometries):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::linesBoundingBox const):
(WebCore::RenderLineBreak::absoluteRects const):
(WebCore::RenderLineBreak::absoluteQuads const):
(WebCore::RenderLineBreak::collectSelectionGeometries):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::positionForPoint):

  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteRects const):
(WebCore::RenderText::collectSelectionGeometries):
(WebCore::boundariesForTextRun):
(WebCore::ellipsisRectForTextRun):
(WebCore::collectAbsoluteQuads):
(WebCore::localQuadForTextRun):
(WebCore::RenderText::absoluteQuadsForRange const):
(WebCore::lineDirectionPointFitsInBox):
(WebCore::createVisiblePositionForBox):
(WebCore::createVisiblePositionAfterAdjustingOffsetForBiDi):
(WebCore::RenderText::positionForPoint):
(WebCore::RenderText::firstRunLocation const):
(WebCore::RenderText::linesBoundingBox const):
(WebCore::RenderText::collectSelectionGeometriesForLineBoxes):
(WebCore::RenderText::caretMinOffset const):
(WebCore::RenderText::caretMaxOffset const):
(WebCore::RenderText::countRenderedCharacterOffsetsUntil const):
(WebCore::containsOffset):
(WebCore::RenderText::hasRenderedText const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::write):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::TextBoxPainter):
(WebCore::TextBoxPainter::paintDecoration):
(WebCore::textPosition):
(WebCore::TextBoxPainter::calculateUnionOfAllDocumentMarkerBounds):
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds):

  • rendering/TextBoxPainter.h:
  • rendering/TextDecorationPainter.h:

(WebCore::TextDecorationPainter::setTextBoxIterator):
(WebCore::TextDecorationPainter::setTextRunIterator): Deleted.

  • style/InlineTextBoxStyle.cpp:

(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):
(WebCore::computeUnderlineOffset):
(WebCore::visualOverflowForDecorations):

  • style/InlineTextBoxStyle.h:
6:51 AM Changeset in webkit [283442] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Pass in the correct style when adding a run to Line
https://bugs.webkit.org/show_bug.cgi?id=231100

Reviewed by Antti Koivisto.

This is in preparation for supporting first-line style.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::commitPartialContent):
(WebCore::Layout::LineBuilder::rebuildLine):

6:40 AM Changeset in webkit [283441] by cathiechen
  • 4 edits in trunk/Source/WebCore

[Performance] Optimize RenderLayer::establishesTopLayer
https://bugs.webkit.org/show_bug.cgi?id=231016

Reviewed by Simon Fraser.

This patch added isInTopLayerOrBackdrop to reduce the times of calling renderer().element() in RenderLayer::establishesTopLayer.
And isInTopLayerOrBackdrop can be shared in Adjuster.

  • dom/Element.h:

(WebCore::isInTopLayerOrBackdrop):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::establishesTopLayer const):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):
(WebCore::Style::Adjuster::adjustDisplayContentsStyle const):

6:34 AM Changeset in webkit [283440] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Do not reuse the overflowing width on the next line when first line style is different
https://bugs.webkit.org/show_bug.cgi?id=231107

Reviewed by Antti Koivisto.

Let's compute the leading text content width at the next line (instead of reusing the overflowing trailing width), when the first line style is present and font-cascades differ.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::handleInlineContent):

5:38 AM Changeset in webkit [283439] by Ziran Sun
  • 7 edits in trunk

[css-grid] Accommodate spanning items crossing flexible tracks
https://bugs.webkit.org/show_bug.cgi?id=230252

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Three tests are passing and the test expectation files are updated.

  • web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001-expected.txt:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-002-expected.txt:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-003-expected.txt:

Source/WebCore:

CSS spec has added one more step at https://drafts.csswg.org/css-grid/#algo-spanning-flex-items
for resolving intrinsic track sizes. Basically, increasing sizes to accommodate spanning items
crossing flexible tracks instead of ignoring their contents completely.

This patch is an import of obrufau's work in chromium. Initial CL is at
https://chromium-review.googlesource.com/c/chromium/src/+/1492337/16..20.
The performance issue caused by the patch were fixed at https://bugs.webkit.org/show_bug.cgi?id=207852
for webkit and https://bugs.chromium.org/p/chromium/issues/detail?id=1021929 for chromium.
This change also addresses web compat issue raised at https://github.com/w3c/csswg-drafts/issues/4783.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::initialGrowthLimit const):
(WebCore::GridTrackSizingAlgorithm::spanningItemCrossesFlexibleSizedTracks const):
(WebCore::GridTrackSizingAlgorithm::increaseSizesToAccommodateSpanningItems):
(WebCore::getSizeDistributionWeight):
(WebCore::distributeItemIncurredIncreaseToTrack):
(WebCore::distributeItemIncurredIncreases):
(WebCore::GridTrackSizingAlgorithm::distributeSpaceToTracks const):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
(WebCore::GridTrackSizingAlgorithm::resolveIntrinsicTrackSizes):

  • rendering/GridTrackSizingAlgorithm.h:

(WebCore::GridTrackSizingAlgorithmStrategy::distributeSpaceToTracks const):

4:57 AM Changeset in webkit [283438] by youenn@apple.com
  • 22 edits
    1 add in trunk

Add support for ServiceWorkerGlobalScope push event handler
https://bugs.webkit.org/show_bug.cgi?id=231008
<rdar://problem/83710760>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/push-api/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

Implement https://w3c.github.io/push-api/#receiving-a-push-message step 6.
In particular we ensure that if any waitUntil promise rejects, the push event is considered to fail.
This status should then be sent back to the emiter of the push message to decide whether to acknowledge the message, retry it or discard it.

We keep push API completion handler in a map to ensure we respond to them even if the service worker gets terminated while processing the push event.

Add necessary internals API to enable testing within the service worker itself.

Covered by added subtests in http/wpt/service-workers/pushEvent.any.serviceworker.html.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.h:
  • testing/ServiceWorkerInternals.cpp:
  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:
  • workers/service/context/SWContextManager.cpp:
  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:
  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:
  • workers/service/context/ServiceWorkerThreadProxy.h:

LayoutTests:

  • http/wpt/push-api/pushEvent.any.js:
  • http/wpt/push-api/pushEvent.any.serviceworker-expected.txt:
2:07 AM Changeset in webkit [283437] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk/Source

[GLib] Media session manager unable to handle more than one session
https://bugs.webkit.org/show_bug.cgi?id=230250

Patch by Philippe Normand <pnormand@igalia.com> on 2021-10-02
Reviewed by Adrian Perez de Castro.

Source/WebCore:

Each session now maintains its own connection to the D-Bus session, allowing to safely
expose the corresponding MPRIS objecs on the bus. Most of the D-Bus and GVariant handling
has been refactored to the new MediaSessionGLib module.

  • platform/SourcesGLib.txt:
  • platform/audio/glib/MediaSessionGLib.cpp: Added.

(WebCore::getCommand):
(WebCore::handleMethodCall):
(WebCore::getMprisProperty):
(WebCore::handleGetProperty):
(WebCore::handleSetProperty):
(WebCore::MediaSessionGLib::create):
(WebCore::MediaSessionGLib::MediaSessionGLib):
(WebCore::MediaSessionGLib::~MediaSessionGLib):
(WebCore::MediaSessionGLib::nameLost):
(WebCore::MediaSessionGLib::emitPositionChanged):
(WebCore::MediaSessionGLib::updateNowPlaying):
(WebCore::MediaSessionGLib::getMetadataAsGVariant):
(WebCore::MediaSessionGLib::getPlaybackStatusAsGVariant):
(WebCore::MediaSessionGLib::emitPropertiesChanged):
(WebCore::MediaSessionGLib::playbackStatusChanged):
(WebCore::MediaSessionGLib::getActiveSessionPosition):

  • platform/audio/glib/MediaSessionGLib.h: Added.

(WebCore::MediaSessionGLib::manager const):

  • platform/audio/glib/MediaSessionManagerGLib.cpp:

(WebCore::PlatformMediaSessionManager::create):
(WebCore::MediaSessionManagerGLib::MediaSessionManagerGLib):
(WebCore::MediaSessionManagerGLib::addSession):
(WebCore::MediaSessionManagerGLib::removeSession):
(WebCore::MediaSessionManagerGLib::sessionStateChanged):
(WebCore::MediaSessionManagerGLib::clientCharacteristicsChanged):
(WebCore::MediaSessionManagerGLib::updateNowPlayingInfo):

  • platform/audio/glib/MediaSessionManagerGLib.h:

(WebCore::MediaSessionManagerGLib::mprisInterface const):

Source/WTF:

  • wtf/glib/GRefPtr.h: Forward-declare GDBusConnection.
2:04 AM Changeset in webkit [283436] by commit-queue@webkit.org
  • 3 edits in trunk

[GTK][WPE] Enable bwrap launcher build on bots
https://bugs.webkit.org/show_bug.cgi?id=230969

Patch by Philippe Normand <pnormand@igalia.com> on 2021-10-02
Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Oct 1, 2021:

11:51 PM Changeset in webkit [283435] by commit-queue@webkit.org
  • 11 edits in trunk

Unreviewed, reverting r283293.
https://bugs.webkit.org/show_bug.cgi?id=231116

changing print() broke a lot of random things

Reverted changeset:

"Print values in a nicer way in the jsc shell"
https://bugs.webkit.org/show_bug.cgi?id=230931
https://commits.webkit.org/r283293

11:22 PM Changeset in webkit [283434] by commit-queue@webkit.org
  • 22 edits
    2 deletes in trunk

Allow NaN, infinity, and -infinity in calc
https://bugs.webkit.org/show_bug.cgi?id=231044

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2021-10-01
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize-expected.txt:
  • web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize.html:
  • web-platform-tests/css/css-values/exp-log-serialize-expected.txt:
  • web-platform-tests/css/css-values/exp-log-serialize.html:
  • web-platform-tests/css/css-values/round-mod-rem-serialize.html:
  • web-platform-tests/css/css-values/signs-abs-serialize-expected.txt:
  • web-platform-tests/css/css-values/signs-abs-serialize.html:
  • web-platform-tests/css/css-values/sin-cos-tan-serialize-expected.txt:
  • web-platform-tests/css/css-values/sin-cos-tan-serialize.html:

Source/WebCore:

Modified existing serialization tests.

Added support for NaN, infinity and -infinity keywords in calc. Involved removing checks for
inputs that would result in these values and introduction of new CSSKeywords for these three
constants. Spec for this: https://drafts.csswg.org/css-values-4/#calc-error-constants.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::formatNumberValue const):

  • css/CSSValueKeywords.in:
  • css/CSSValuePool.cpp:

(WebCore::CSSValuePool::createValue):

  • css/calc/CSSCalcExpressionNodeParser.cpp:

(WebCore::getConstantTable):

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::determineCategory):
(WebCore::CSSCalcOperationNode::createLog):
(WebCore::CSSCalcOperationNode::createStep):
(WebCore::CSSCalcOperationNode::createRound):

  • css/calc/CSSCalcPrimitiveValueNode.cpp:

(WebCore::CSSCalcPrimitiveValueNode::invert):

9:38 PM Changeset in webkit [283433] by ysuzuki@apple.com
  • 94 edits
    7 adds in trunk/Source/WTF

Upgrade in-tree OSS ICU header to 64.2 because macOS Mojave build will be dropped
https://bugs.webkit.org/show_bug.cgi?id=231104

Reviewed by Myles C. Maxfield.

WebKit no longer supports macOS Mojave build. This means that we can upgrade in-tree ICU header,
which is only used when OSS WebKit is built. ICU 64.2 is ICU shipped in macOS Catalina.

  • icu/LICENSE:
  • icu/README:
  • icu/unicode/alphaindex.h:
  • icu/unicode/brkiter.h:
  • icu/unicode/bytestream.h:

(StringByteSink::StringByteSink):

  • icu/unicode/calendar.h:
  • icu/unicode/caniter.h:
  • icu/unicode/casemap.h:
  • icu/unicode/char16ptr.h:

(Char16Ptr::Char16Ptr):
(Char16Ptr::~Char16Ptr):
(Char16Ptr::get const):
(ConstChar16Ptr::ConstChar16Ptr):
(ConstChar16Ptr::~ConstChar16Ptr):
(ConstChar16Ptr::get const):
(toUCharPtr):
(toOldUCharPtr):

  • icu/unicode/coll.h:
  • icu/unicode/compactdecimalformat.h:
  • icu/unicode/currpinf.h:

(CurrencyPluralInfo::operator!= const):

  • icu/unicode/currunit.h:
  • icu/unicode/datefmt.h:
  • icu/unicode/dcfmtsym.h:
  • icu/unicode/decimfmt.h:
  • icu/unicode/docmain.h:
  • icu/unicode/dtintrv.h:
  • icu/unicode/dtitvfmt.h:
  • icu/unicode/dtitvinf.h:
  • icu/unicode/dtptngen.h:
  • icu/unicode/edits.h:
  • icu/unicode/enumset.h:
  • icu/unicode/filteredbrk.h:
  • icu/unicode/fmtable.h:
  • icu/unicode/formattedvalue.h: Added.
  • icu/unicode/gender.h:
  • icu/unicode/icuplug.h:
  • icu/unicode/listformatter.h:
  • icu/unicode/localebuilder.h: Added.
  • icu/unicode/localpointer.h:

(LocalPointer::LocalPointer):
(LocalPointer::operator std::unique_ptr<T> ):
(LocalArray::LocalArray):
(LocalArray::operator std::unique_ptr<T[]> ):

  • icu/unicode/locdspnm.h:
  • icu/unicode/locid.h:

(Locale::toLanguageTag const):
(Locale::getKeywords const):
(Locale::getUnicodeKeywords const):
(Locale::getKeywordValue const):
(Locale::getUnicodeKeywordValue const):

  • icu/unicode/measfmt.h:
  • icu/unicode/measunit.h:
  • icu/unicode/messagepattern.h:
  • icu/unicode/msgfmt.h:
  • icu/unicode/normalizer2.h:
  • icu/unicode/nounit.h:
  • icu/unicode/numberformatter.h:
  • icu/unicode/numberrangeformatter.h: Added.
  • icu/unicode/numfmt.h:
  • icu/unicode/numsys.h:
  • icu/unicode/parsepos.h:
  • icu/unicode/platform.h:
  • icu/unicode/plurfmt.h:
  • icu/unicode/plurrule.h:
  • icu/unicode/ptypes.h:
  • icu/unicode/rbbi.h:
  • icu/unicode/rbnf.h:
  • icu/unicode/regex.h:
  • icu/unicode/region.h:
  • icu/unicode/reldatefmt.h:
  • icu/unicode/simpleformatter.h:
  • icu/unicode/smpdtfmt.h:
  • icu/unicode/stringoptions.h:
  • icu/unicode/stringtriebuilder.h:
  • icu/unicode/timezone.h:
  • icu/unicode/translit.h:
  • icu/unicode/tzfmt.h:
  • icu/unicode/ubidi.h:
  • icu/unicode/ubiditransform.h:
  • icu/unicode/ucal.h:
  • icu/unicode/uchar.h:
  • icu/unicode/ucnv.h:
  • icu/unicode/ucol.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/ucpmap.h: Added.
  • icu/unicode/ucptrie.h: Added.
  • icu/unicode/ucurr.h:
  • icu/unicode/udat.h:
  • icu/unicode/udateintervalformat.h:
  • icu/unicode/udatpg.h:
  • icu/unicode/uenum.h:
  • icu/unicode/uformattedvalue.h: Added.
  • icu/unicode/ugender.h:
  • icu/unicode/ulistformatter.h:
  • icu/unicode/umachine.h:
  • icu/unicode/umutablecptrie.h: Added.
  • icu/unicode/uniset.h:
  • icu/unicode/unistr.h:
  • icu/unicode/unum.h:
  • icu/unicode/unumberformatter.h:
  • icu/unicode/unumsys.h:
  • icu/unicode/uobject.h:
  • icu/unicode/upluralrules.h:
  • icu/unicode/uregex.h:
  • icu/unicode/ureldatefmt.h:
  • icu/unicode/urename.h:
  • icu/unicode/ures.h:
  • icu/unicode/uscript.h:
  • icu/unicode/usearch.h:
  • icu/unicode/uset.h:
  • icu/unicode/uspoof.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utext.h:
  • icu/unicode/utf16.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utypes.h:
  • icu/unicode/uvernum.h:
8:21 PM Changeset in webkit [283432] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GLIB] Fix build on Ubuntu 20.04 after 242376@main

Unreviewed build fix.

  • dom/Position.cpp: Add missing header.
7:48 PM Changeset in webkit [283431] by Chris Dumez
  • 85 edits in trunk

Drop support for macOS < 10.15
https://bugs.webkit.org/show_bug.cgi?id=231085

Reviewed by Darin Adler.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

Source/WebCore:

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::platformVersionName const):

  • platform/network/cocoa/CookieCocoa.mm:

Source/WebCore/PAL:

  • pal/cocoa/AVFoundationSoftLink.mm:
  • pal/spi/cocoa/AVFoundationSPI.h:
  • pal/spi/mac/NSMenuSPI.h:
  • pal/spi/mac/NSViewSPI.h:

Source/WebKit:

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingArchivingDelegate archiver:willEncodeObject:]):

  • Shared/Cocoa/CoreTextHelpers.mm:

(WebKit::fontWithAttributes):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createNetworkExtensionsSandboxExtensions):

  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:]):
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:stopAtLayerBackedViews:]): Deleted.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:
  • wtf/PlatformUse.h:

Tools:

  • TestRunnerShared/spi/AppKitTestSPI.h:
  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:
  • TestWebKitAPI/config.h:
7:35 PM Changeset in webkit [283430] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Use DYLD_FRAMEWORK_PATH instead of DYLD_VERSIONED_FRAMEWORK_PATH on Safari Big Sur
https://bugs.webkit.org/show_bug.cgi?id=231058

Patch by Remy Demarest <rdemarest@apple.com> on 2021-10-01
Reviewed by David Kilzer.

Modify the DYLD environment variable that is used when compiling with staged frameworks.
We want to use DYLD_VERSIONED_FRAMEWORK_PATH to define the search path of the frameworks
for DYLD because this makes launching Safari and its child processes faster. However,
on Apple Silicon Big Sur using that environment variable does not work and results in Safari
loading frameworks from the System folder rather than from the StagedFrameworks/Safari
folder, this is because dyld on M1 does not look up that variable properly. To make sure
we actually load the frameworks from the desired location, we need to use DYLD_FRAMEWORK_PATH
instead, this makes dyld perform more stat() calls than usual to link the frameworks hence
why we prefer the other variable, but this is the only way to workaround the issue in
Big Sur on M1. In Monterey and above, this bug will be fixed in dyld so we only need this
variable before macOS 11.

Override OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH_YES based on SDK and architecture to use
DYLD_FRAMEWORK_PATH instead of DYLD_VERSIONED_FRAMEWORK_PATH when building for macOS 11 and arm64.

  • Configurations/BaseTarget.xcconfig:
6:04 PM Changeset in webkit [283429] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Add a delay between successive iOS simulator boots (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=226376

Unreviewed infrastrucutre fix.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager._boot_device): Increase delay to support iOS 15.

5:53 PM Changeset in webkit [283428] by Jonathan Bedard
  • 8 edits in trunk/Tools

[webkitscmpy] Get pull-request by number
https://bugs.webkit.org/show_bug.cgi?id=231039
<rdar://problem/83740215>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:

(GitHub.request): Add pull-request access by number.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.PRGenerator.PullRequest): Shared JSON pull-request generator.
(BitBucket.PRGenerator.get): Get pull-request by number.
(BitBucket.PRGenerator.find): Use shared pull-request generator.
(BitBucket.PRGenerator.create): Ditto.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.PRGenerator.PullRequest): Shared JSON pull-request generator.
(GitHub.PRGenerator.get): Get pull-request by number.
(GitHub.PRGenerator.find): Use shared pull-request generator.
(GitHub.PRGenerator.create):

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:

(Scm.PRGenerator.get):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

(TestNetworkPullRequestGitHub): Added.

5:22 PM Changeset in webkit [283427] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Implement HTTPS proxy in HTTPServer
https://bugs.webkit.org/show_bug.cgi?id=231109

Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-01
Reviewed by Geoff Garen.

Previously we used TCPServer for this, which is picky about the exact number of connections, requests, and replies.
If everything isn't perfect, it hangs in the TCPServer destructor.
It also doesn't run the server logic on the main thread.
This will allow migration to HTTPServer, the replacement for TCPServer.

  • TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::proxyDefinition):
(TestWebKitAPI::HTTPServer::listenerParameters):
(TestWebKitAPI::HTTPServer::respondWithOK):
(TestWebKitAPI::HTTPServer::request const):

4:52 PM Changeset in webkit [283426] by Alan Coon
  • 3 edits in branches/safari-612.2.9.3-branch/Source/WebCore/bindings/scripts

Apply patch. rdar://problem/83784775

4:52 PM Changeset in webkit [283425] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Remove reference to od-server-name from sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=231098
<rdar://problem/67766415>

Reviewed by Per Arne Vollan.

The code that used to read the od-server-name property was removed in Big Sur,
so WebKit no longer needs to allow reading that property in its sandbox profiles.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
4:48 PM Changeset in webkit [283424] by Alan Coon
  • 3 edits in branches/safari-612.2.9.0-branch/Source/WebCore/bindings/scripts

Apply patch. rdar://problem/83784757

4:48 PM Changeset in webkit [283423] by Alan Coon
  • 16 edits in branches/safari-612.2.9.0-branch

Cherry-pick r283410. rdar://problem/83784757

Disable new incumbent-window until it is fully implemented
https://bugs.webkit.org/show_bug.cgi?id=230261
<rdar://problem/83099726>

Reviewed by Chris Dumez and Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-incumbent-expected.txt:

Source/JavaScriptCore:

  • interpreter/CallFrame.cpp: (JSC::CallFrame::globalObjectOfClosestCodeBlock):
  • runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/PropertySlot.h:

Source/WebCore:

This patch disables new incumbent-window until it is fully implemented to avoid compatibility issue.

  • bindings/js/JSDOMConvertCallbacks.h: (WebCore::Converter<IDLCallbackFunction<T>>::convert): (WebCore::Converter<IDLCallbackInterface<T>>::convert):
  • bindings/js/JSDOMGlobalObject.cpp: (WebCore::callerGlobalObject): (WebCore::legacyActiveGlobalObjectForAccessor):
  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::incumbentDOMWindow): (WebCore::legacyActiveDOMWindowForAccessor):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/scripts/CodeGeneratorJS.pm: (GetJSCAttributesForAttribute): (GenerateCallWith):
  • page/Location.idl:

LayoutTests:

  • http/tests/security/frameNavigation/context-for-location-href-gopd-expected.txt:

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

4:47 PM Changeset in webkit [283422] by Alan Coon
  • 3 edits in branches/safari-612.2.9.2-branch/Source/WebCore/bindings/scripts

Apply patch. rdar://problem/83784741

4:36 PM Changeset in webkit [283421] by Alan Coon
  • 3 edits in branches/safari-612.2.9.1-branch/Source/WebCore/bindings/scripts

Apply patch. rdar://problem/83784764

4:26 PM Changeset in webkit [283420] by Alan Coon
  • 16 edits in branches/safari-612.2.9.1-branch

Cherry-pick r283410. rdar://problem/83784764

Disable new incumbent-window until it is fully implemented
https://bugs.webkit.org/show_bug.cgi?id=230261
<rdar://problem/83099726>

Reviewed by Chris Dumez and Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-incumbent-expected.txt:

Source/JavaScriptCore:

  • interpreter/CallFrame.cpp: (JSC::CallFrame::globalObjectOfClosestCodeBlock):
  • runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/PropertySlot.h:

Source/WebCore:

This patch disables new incumbent-window until it is fully implemented to avoid compatibility issue.

  • bindings/js/JSDOMConvertCallbacks.h: (WebCore::Converter<IDLCallbackFunction<T>>::convert): (WebCore::Converter<IDLCallbackInterface<T>>::convert):
  • bindings/js/JSDOMGlobalObject.cpp: (WebCore::callerGlobalObject): (WebCore::legacyActiveGlobalObjectForAccessor):
  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::incumbentDOMWindow): (WebCore::legacyActiveDOMWindowForAccessor):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/scripts/CodeGeneratorJS.pm: (GetJSCAttributesForAttribute): (GenerateCallWith):
  • page/Location.idl:

LayoutTests:

  • http/tests/security/frameNavigation/context-for-location-href-gopd-expected.txt:

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

4:26 PM Changeset in webkit [283419] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS wk2 Release ] http/tests/loading/preload-slow-loading.py is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231088

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:20 PM Changeset in webkit [283418] by Alan Coon
  • 16 edits in branches/safari-612.2.9.2-branch

Cherry-pick r283410. rdar://problem/83784741

Disable new incumbent-window until it is fully implemented
https://bugs.webkit.org/show_bug.cgi?id=230261
<rdar://problem/83099726>

Reviewed by Chris Dumez and Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-incumbent-expected.txt:

Source/JavaScriptCore:

  • interpreter/CallFrame.cpp: (JSC::CallFrame::globalObjectOfClosestCodeBlock):
  • runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/PropertySlot.h:

Source/WebCore:

This patch disables new incumbent-window until it is fully implemented to avoid compatibility issue.

  • bindings/js/JSDOMConvertCallbacks.h: (WebCore::Converter<IDLCallbackFunction<T>>::convert): (WebCore::Converter<IDLCallbackInterface<T>>::convert):
  • bindings/js/JSDOMGlobalObject.cpp: (WebCore::callerGlobalObject): (WebCore::legacyActiveGlobalObjectForAccessor):
  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::incumbentDOMWindow): (WebCore::legacyActiveDOMWindowForAccessor):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/scripts/CodeGeneratorJS.pm: (GetJSCAttributesForAttribute): (GenerateCallWith):
  • page/Location.idl:

LayoutTests:

  • http/tests/security/frameNavigation/context-for-location-href-gopd-expected.txt:

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

4:18 PM Changeset in webkit [283417] by Alan Coon
  • 8 edits in branches/safari-612.2.9.2-branch/Source

Versioning.

WebKit-7612.2.9.2.2

4:15 PM Changeset in webkit [283416] by Alan Coon
  • 8 edits in branches/safari-612.2.9.3-branch/Source

Versioning.

WebKit-7612.2.9.3.2

4:13 PM Changeset in webkit [283415] by Alan Coon
  • 1 edit in branches/safari-611.4.2.0-branch/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp

Revert r283382. rdar://problem/81175635

4:13 PM Changeset in webkit [283414] by Alan Coon
  • 8 edits
    8 deletes in branches/safari-611.4.2.0-branch

Revert r281431. rdar://problem/81175635

This reverts r283385.

4:13 PM Changeset in webkit [283413] by Alan Coon
  • 1 edit in branches/safari-611.4.2.0-branch/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp

Revert r283400. rdar://problem/81175635

4:06 PM Changeset in webkit [283412] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS Release & macOS wk2 ] http/tests/misc/repeat-open-cancel.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=231097

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
3:57 PM Changeset in webkit [283411] by Alan Coon
  • 16 edits in branches/safari-612.2.9.3-branch

Cherry-pick r283410. rdar://problem/83784775

Disable new incumbent-window until it is fully implemented
https://bugs.webkit.org/show_bug.cgi?id=230261
<rdar://problem/83099726>

Reviewed by Chris Dumez and Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-incumbent-expected.txt:

Source/JavaScriptCore:

  • interpreter/CallFrame.cpp: (JSC::CallFrame::globalObjectOfClosestCodeBlock):
  • runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/PropertySlot.h:

Source/WebCore:

This patch disables new incumbent-window until it is fully implemented to avoid compatibility issue.

  • bindings/js/JSDOMConvertCallbacks.h: (WebCore::Converter<IDLCallbackFunction<T>>::convert): (WebCore::Converter<IDLCallbackInterface<T>>::convert):
  • bindings/js/JSDOMGlobalObject.cpp: (WebCore::callerGlobalObject): (WebCore::legacyActiveGlobalObjectForAccessor):
  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::incumbentDOMWindow): (WebCore::legacyActiveDOMWindowForAccessor):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/scripts/CodeGeneratorJS.pm: (GetJSCAttributesForAttribute): (GenerateCallWith):
  • page/Location.idl:

LayoutTests:

  • http/tests/security/frameNavigation/context-for-location-href-gopd-expected.txt:

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

3:12 PM Changeset in webkit [283410] by ysuzuki@apple.com
  • 17 edits in trunk

Disable new incumbent-window until it is fully implemented
https://bugs.webkit.org/show_bug.cgi?id=230261
<rdar://problem/83099726>

Reviewed by Chris Dumez and Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-incumbent-expected.txt:

Source/JavaScriptCore:

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::globalObjectOfClosestCodeBlock):

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertyDescriptor):

  • runtime/PropertySlot.h:

Source/WebCore:

This patch disables new incumbent-window until it is fully implemented to avoid compatibility issue.

  • bindings/js/JSDOMConvertCallbacks.h:

(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::callerGlobalObject):
(WebCore::legacyActiveGlobalObjectForAccessor):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::incumbentDOMWindow):
(WebCore::legacyActiveDOMWindowForAccessor):

  • bindings/js/JSDOMWindowBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetJSCAttributesForAttribute):
(GenerateCallWith):

  • page/Location.idl:

LayoutTests:

  • http/tests/security/frameNavigation/context-for-location-href-gopd-expected.txt:
3:07 PM Changeset in webkit [283409] by Russell Epstein
  • 14 edits in branches/safari-612-branch

Cherry-pick r281725. rdar://problem/83776284

.:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • Source/Makefile:
  • Source/cmake/WinTools.make:

Source/JavaScriptCore:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

Source/WebCore:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

  • WebCore.vcxproj/WebCore.proj:

Source/WebInspectorUI:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • WebInspectorUI.vcxproj/WebInspectorUI.make:
  • WebInspectorUI.vcxproj/WebInspectorUI.proj:

Source/WebKitLegacy:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

  • WebKitLegacy.vcxproj/WebKitLegacy.proj:

Source/WTF:
Land Windows build fixes from safari-612.1.29.14-branch
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • WTF.vcxproj/WTF.proj:

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

3:03 PM Changeset in webkit [283408] by Russell Epstein
  • 1 copy in tags/Safari-613.1.3

Tag Safari-613.1.3.

2:51 PM Changeset in webkit [283407] by Lauro Moura
  • 14 edits in trunk/LayoutTests

[GLIB] A few more rebaselines

Unreviewed test gardening.

svg/zoom/page manually tested and working on GTK.

  • platform/gtk/TestExpectations:
  • platform/gtk/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt:
  • platform/gtk/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.txt:
  • platform/gtk/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • platform/wpe/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
  • platform/wpe/svg/hixie/intrinsic/003-expected.txt:
  • platform/wpe/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt:
  • platform/wpe/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.txt:
  • platform/wpe/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
2:47 PM Changeset in webkit [283406] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-bvec2.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229472

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:34 PM Changeset in webkit [283405] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/css/css-multicol/multicol-gap-percentage-001.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231103

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:33 PM Changeset in webkit [283404] by Russell Epstein
  • 14 edits in branches/safari-612.2.9.1-branch

Cherry-pick r281725. rdar://problem/83782432

.:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • Source/Makefile:
  • Source/cmake/WinTools.make:

Source/JavaScriptCore:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

Source/WebCore:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

  • WebCore.vcxproj/WebCore.proj:

Source/WebInspectorUI:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • WebInspectorUI.vcxproj/WebInspectorUI.make:
  • WebInspectorUI.vcxproj/WebInspectorUI.proj:

Source/WebKitLegacy:
Land Windows build fixes from safari-612.1.29.14-branch.
https://bugs.webkit.org/show_bug.cgi?id=229627.

Reviewed by Per Arne Vollan.

  • WebKitLegacy.vcxproj/WebKitLegacy.proj:

Source/WTF:
Land Windows build fixes from safari-612.1.29.14-branch
https://bugs.webkit.org/show_bug.cgi?id=229627

Reviewed by Per Arne Vollan.

  • WTF.vcxproj/WTF.proj:

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

2:28 PM Changeset in webkit [283403] by commit-queue@webkit.org
  • 7 edits
    4 deletes in trunk/Source

WebKitLegacy's module map files don't get installed
https://bugs.webkit.org/show_bug.cgi?id=230736

Patch by Ian Anderson <iana@apple.com> on 2021-10-01
Reviewed by David Kilzer.

Revert r271607 because it doesn't work and isn't the right approach.

Source/WebKit:

  • mac/MigrateHeadersFromWebKitLegacy.make:

Source/WebKitLegacy:

  • Modules/WebKitLegacy_iOS.private.modulemap: Removed.
  • Modules/WebKitLegacy_macOS.private.modulemap: Removed.
  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:
  • History/WebBackForwardListPrivate.h:
  • Misc/WebKitLegacy_Private.h: Removed.
  • Misc/WebKitLegacy_iOS_Private.h: Removed.
  • Misc/WebKitLegacy_macOS_Private.h: Removed.
2:24 PM Changeset in webkit [283402] by Chris Dumez
  • 6 edits
    3 adds in trunk

GC may not know about memory used by AudioBufferSourceNode's buffer
https://bugs.webkit.org/show_bug.cgi?id=230966

Reviewed by Darin Adler.

Source/WebCore:

AudioBufferSourceNode has a 'buffer' attribute settable by JavaScript of type AudioBuffer.
An AudioBuffer may use a significant amount of memory and AudioBuffer.idl contains [ReportExtraMemoryCost]
extended attribute to report this memory to the GC. However, there is an issue if JS constructs a large
AudioBuffer, then sets it on an AudioBufferSourceNode and then the JSAudioBuffer wrapper gets garbage
collected. At this point, GC thinks it recovered the extra memory reported by the JSAudioBuffer but this
is not true since that AudioBuffer (and its internal memory) are still kept alive by AudioBufferSourceNode /
JSAudioBufferSourceNode. To address this issue, the proposal in this patch is to have JSAudioBufferSourceNode
mark its buffer when visiting childen during GC. As a result, the JSAudioBuffer wrapper will stay alive (and
report extra memory use) as long as its associated JSAudioBufferSourceNode wrapper is still alive.

Test: webaudio/AudioBufferSource/audiobuffersource-buffer-gc.html

  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Sources.txt:
  • bindings/js/JSAudioBufferSourceNodeCustom.cpp: Added.

(WebCore::JSAudioBufferSourceNode::visitAdditionalChildren):

LayoutTests:

Add layout test coverage.

  • webaudio/AudioBufferSource/audiobuffersource-buffer-gc-expected.txt: Added.
  • webaudio/AudioBufferSource/audiobuffersource-buffer-gc.html: Added.
2:14 PM Changeset in webkit [283401] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk1 ] printing/css2.1/page-break-after-000.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231102

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:08 PM Changeset in webkit [283400] by Alan Coon
  • 1 edit in branches/safari-611.4.2.0-branch/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp

Apply patch. rdar://problem/81175635

2:07 PM Changeset in webkit [283399] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS wk2 Release ] http/tests/loading/preload-slow-loading.py is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231088

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:00 PM Changeset in webkit [283398] by mmaxfield@apple.com
  • 12 edits
    1 copy
    60 adds in trunk

base-palette can accept "light" or "dark"
https://bugs.webkit.org/show_bug.cgi?id=230792
<rdar://problem/83530228>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

These are being upstreamed at https://github.com/web-platform-tests/wpt/pull/31044.

  • web-platform-tests/css/css-fonts/font-palette-10-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-10.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-11-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-11.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-12-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-12.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-13-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-13.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-14-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-14.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-15-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-15.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-16-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-16.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-17-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-17.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-18-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-18.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-19-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-19.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-2-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-2.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-20-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-20.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-21-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-21.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-22-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-22.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-23-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-23.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-24-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-24.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-25-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-25.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-26-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-26.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-27-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-27.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-28-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-28.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-29-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-29.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-3-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-3.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-30-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-30.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-31-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-31.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-4-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-4.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-5-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-5.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-6-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-6.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-7-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-7.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-8-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-8.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-9-expected-mismatch.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-9.html: Added.
  • web-platform-tests/css/css-fonts/font-palette-expected.html:
  • web-platform-tests/css/css-fonts/font-palette.html:
  • web-platform-tests/css/css-fonts/resources/Ahem-COLR-palettes-no-light-dark.ttf: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/resources/Ahem-COLR-palettes.ttf.
  • web-platform-tests/css/css-fonts/resources/Ahem-COLR-palettes.ttf:

Source/WebCore:

The spec was changed in
https://github.com/w3c/csswg-drafts/commit/1c74611151b452930609627a0de2412c0cb86175
to add this functionality. Luckily, the additional functionality doesn't
require any Core Text change.

The old grammar was "<<integer [0, ∞]>> | <<string>>". The new grammar is
"light | dark | <<integer [0, ∞]>> | <<string>>". Before "light" and
"dark" existed, we were representing this by Variant<int64_t, AtomString>. Now that
"light" and "dark" exist, this is being expanded so the form

struct FontPaletteIndex {

enum class Type {

Light,
Dark,
Integer,
String

} type;
unsigned integer;
AtomString string;

};

This seems to be in accordance with WebKit style, instead of doing something like
class FontPaletteLight { }; class FontPaletteDark { };
using FontPaletteIndex = Variant<FontPaletteLight, FontPaletteDark, unsigned, AtomString>;

Tests: imported/w3c/web-platform-tests/css/css-fonts/font-palette-10.html

imported/w3c/web-platform-tests/css/css-fonts/font-palette-11.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-12.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-13.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-14.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-15.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-16.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-17.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-18.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-19.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-2.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-20.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-21.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-22.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-23.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-24.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-25.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-26.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-27.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-28.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-29.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-3.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-30.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-31.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-4.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-5.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-6.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-7.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-8.html
imported/w3c/web-platform-tests/css/css-fonts/font-palette-9.html

  • css/CSSFontPaletteValuesRule.cpp:

(WebCore::CSSFontPaletteValuesRule::basePalette const):
(WebCore::CSSFontPaletteValuesRule::cssText const):

  • css/StyleRule.cpp:

(WebCore::StyleRuleFontPaletteValues::StyleRuleFontPaletteValues):

  • css/StyleRule.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeFontPaletteValuesRule):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBasePaletteDescriptor):

  • platform/graphics/FontPaletteValues.h:

(WebCore::FontPaletteIndex::FontPaletteIndex):
(WebCore::FontPaletteIndex::operator bool const):
(WebCore::FontPaletteIndex::operator== const):
(WebCore::FontPaletteIndex::operator!= const):
(WebCore::add):
(WebCore::FontPaletteValues::FontPaletteValues):
(WebCore::FontPaletteValues::basePalette const):
(WebCore::FontPaletteValues::operator bool const):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::addLightPalette):
(WebCore::addDarkPalette):
(WebCore::addAttributesForCustomFontPalettes):
(WebCore::addAttributesForFontPalettes):

1:45 PM Changeset in webkit [283397] by Chris Dumez
  • 10 edits
    2 copies
    2 moves
    1 delete in trunk

Unreviewed, reverting r283274.

Broke HSTS.CrossOriginRedirect API test

Reverted changeset:

"Use isolated NSURLSessions for each first party registrable
domain"
https://bugs.webkit.org/show_bug.cgi?id=230750
https://commits.webkit.org/r283274

1:35 PM Changeset in webkit [283396] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit

Remove special treatment for /private/var/db/dyld on older macOS
https://bugs.webkit.org/show_bug.cgi?id=231092
<rdar://problem/66580290>

Reviewed by Per Arne Vollan.

The dyld shared cache moved to /System/Library/dyld in Big Sur. We should remove access to the
old location from Big Sur (and beyond) since it isn't needed anymore.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
1:32 PM Changeset in webkit [283395] by Simon Fraser
  • 3 edits in trunk/LayoutTests

Fix flaky test: fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html
https://bugs.webkit.org/show_bug.cgi?id=231093

Reviewed by Alan Bujtas.

This test dumped overlay scrollbar state, but that state is timing-dependent since
AppKit changes it via animations. Rather than printing the full state, just
print the expanded and enabled states, since those are the states necessary for
the test to pass.

  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered-expected.txt:
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html:
1:32 PM Changeset in webkit [283394] by Kate Cheney
  • 11 edits in trunk/Source

GPU Process microphone attribution SPI adoption
https://bugs.webkit.org/show_bug.cgi?id=231034
<rdar://problem/83732537>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests. Tested manually by inspecting APR JSON files.

  • platform/audio/AudioSession.h:
  • platform/audio/ios/AudioSessionIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSessionIOS::setHostProcessAttribution):

Source/WebCore/PAL:

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

Adopt SPI for App Privacy Report that attributes mic capture to the
host app.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::audioSessionProxy):

  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:

(WebKit::RemoteAudioSessionProxyManager::addProxy):

  • GPUProcess/media/RemoteAudioSessionProxyManager.h:
  • Scripts/process-entitlements.sh:
1:25 PM Changeset in webkit [283393] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Further cleanup of macOS rubberbanding code
https://bugs.webkit.org/show_bug.cgi?id=231087

Reviewed by Alan Bujtas.

Split chunks of rubber-banding logic into their own functions for clarity,
separating the "compute the delta" and "apply the delta" parts.

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::handleWheelEvent):
(WebCore::ScrollingEffectsController::modifyScrollDeltaForStretching):
(WebCore::ScrollingEffectsController::applyScrollDeltaWithStretching):

1:20 PM Changeset in webkit [283392] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

REGRESSION(r283047): PerformanceTests/Layout/line-layout-simple.html regressed by ~10%
https://bugs.webkit.org/show_bug.cgi?id=231089

Reviewed by Antti Koivisto.

Let's just hold on to the applicable RenderStyle instead of constructing a dedicated Style structure.
Note that the expected style for line breaking is not necessarily the style of the inline item (e.g. in case of an atomic inline box, it's the parent inline box's style).

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::isWrappingAllowed):
(WebCore::Layout::InlineContentBreaker::shouldKeepEndOfLineWhitespace const):
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/formattingContexts/inline/InlineContentBreaker.h:

(WebCore::Layout::InlineContentBreaker::ContinuousContent::Run::Run):
(WebCore::Layout::logicalWidth): Deleted.

12:46 PM Changeset in webkit [283391] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitcorepy] Add TaskPool (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=220547
<rdar://problem/73043887>

Unreviewed pip install modification.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version, add tblib.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version,].
12:38 PM Changeset in webkit [283390] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add a dedicated function to set the line break box's vertical geometry
https://bugs.webkit.org/show_bug.cgi?id=231080

Reviewed by Antti Koivisto.

Line break boxes should use the parent inline box's font-metrics when computing vertical geometry.
It also makes the code read better as we don't use a function called "setInitialVerticalGeometryForInlineBox()" to set vertical geometry on a non-inline box (line break box).

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::computedHeightAndLayoutBounds):
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForLineBreakBox const):
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
12:06 PM Changeset in webkit [283389] by commit-queue@webkit.org
  • 13 edits in trunk/Source/JavaScriptCore

[JSC][32bit] Fix build after unlinked baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=230803

Patch by Xan López <Xan Lopez> on 2021-10-01
Reviewed by Saam Barati.

This is enough to make things build, but pretty much nothing works
yet. Will fix in a follow-up, this way we at least give people a
chance at not introducing more build regressions.

(With some code by Mikhail R. Gadelha and Geza Lore)

  • CMakeLists.txt:
  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branch32):
(JSC::MacroAssemblerARMv7::branchAdd32):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchAdd32):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::addressOfMaxArgumentCountIncludingThis):

  • jit/JIT.h:
  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITInlines.h:

(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::emitValueProfilingSiteIfProfiledOpcode):
(JSC::JIT::emitArrayProfilingSiteWithCell):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_loop_hint):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitVarInjectionCheck):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitHasPrivateSlow):
(JSC::JIT::emitSlow_op_has_private_name):
(JSC::JIT::emitSlow_op_has_private_brand):
(JSC::JIT::emitResolveClosure):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emitPutGlobalVariableIndirect):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
(JSC::JIT::emitVarInjectionCheck): Deleted.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
12:01 PM Changeset in webkit [283388] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

Regression (r282210/r282211): [ macOS wk2 ] css3/filters/blur-various-radii.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=231090

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:51 AM Changeset in webkit [283387] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Remove CodeBlock::m_numberOfNonArgumentValueProfiles since we can get the same value from UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=231066

Reviewed by Robin Morisset.

Since UnlinkedCodeBlock has UnlinkedValueProfile FixedVector, we can get CodeBlock::m_numberOfNonArgumentValueProfiles
from UnlinkedCodeBlock. So CodeBlock does not need to keep it in its member.
We also reorder some fields to shrink sizeof(CodeBlock) after this change.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finishCreation):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numberOfNonArgumentValueProfiles):
(JSC::CodeBlock::totalNumberOfValueProfiles):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::numberOfValueProfiles const):
(JSC::UnlinkedCodeBlock::numberOfArrayProfiles const):

11:41 AM Changeset in webkit [283386] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Protect WebFrame during invalidatePolicyListener()
https://bugs.webkit.org/show_bug.cgi?id=229981
<rdar://problem/82807413>

Reviewed by Alex Christensen.

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::invalidatePolicyListeners): Protect the WebFrame while
policy handlers are run.

11:31 AM Changeset in webkit [283385] by Alan Coon
  • 8 edits
    8 adds in branches/safari-611.4.2.0-branch

Cherry-pick r281431. rdar://problem/81175635

Report correct blocked URI in CSP violation report
https://bugs.webkit.org/show_bug.cgi?id=226316
<rdar://problem/78552912>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect.html

http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects.html

Currently for a blocked redirection we report the blocked URI as the
target URL. This is not up to spec and we should actually report the
requested URL.

  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::redirectReceived): (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
  • loader/DocumentThreadableLoader.h:
  • page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowConnectToSource const): (WebCore::ContentSecurityPolicy::reportViolation const):
  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Currently for a blocked redirection we report the blocked URI as the
target URL. This is not up to spec and we should actually report the
requested URL.

  • NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::check): (WebKit::NetworkLoadChecker::checkRedirection): (WebKit::NetworkLoadChecker::checkRequest): (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):
  • NetworkProcess/NetworkLoadChecker.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect.html: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects.html: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added. WebKitLegacy and Win have different console logging.

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

11:18 AM Changeset in webkit [283384] by Alan Coon
  • 8 edits in branches/safari-612.2.9.0-branch/Source

Versioning.

WebKit-7612.2.9.0.3

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

Move ephemeral PCM storage from PCM manager to NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=231025

Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-01
Reviewed by Kate Cheney.

With the daemon, we want the network process to hang on to an ephemeral PCM instead of the daemon,
which is responsible for many network processes. When attribution happens we insert the PCM then
attribute it like we did before, but from the NetworkSession instead of from the PCM manager.

Functionality covered by existing tests.
This just reduces state in the daemon. All the other state in the PCM manager is only used for tests.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::storePrivateClickMeasurement):
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::setPrivateClickMeasurementEphemeralMeasurementForTesting):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::insertPrivateClickMeasurement):
(WebKit::PrivateClickMeasurementManager::migratePrivateClickMeasurementFromLegacyStorage):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::clear):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp:

(WebKit::PCM::messageTypeSendsReply):
(WebKit::PCM::decodeMessageAndSendToManager):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:

(WebKit::PCM::ManagerProxy::storeUnattributed):
(WebKit::PCM::ManagerProxy::setEphemeralMeasurementForTesting): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp:

(WebKit::PCM::Store::insertPrivateClickMeasurement):
(WebKit::PCM::Store::attributePrivateClickMeasurement):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h:
11:07 AM Changeset in webkit [283382] by Alan Coon
  • 1 edit in branches/safari-611.4.2.0-branch/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp

Apply patch. rdar://problem/81175635

11:06 AM Changeset in webkit [283381] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231084

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:58 AM Changeset in webkit [283380] by Alan Coon
  • 8 edits in branches/safari-612.2.9.1-branch/Source

Versioning.

WebKit-7612.2.9.1.3

10:38 AM Changeset in webkit [283379] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Reset test expectations regarding bMalloc issue causing flaky crashes on wk1 Debug.
https://bugs.webkit.org/show_bug.cgi?id=230245.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:34 AM Changeset in webkit [283378] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

[macOS] Remove obsolete sandbox rule
https://bugs.webkit.org/show_bug.cgi?id=231067

Reviewed by Brent Fulgham.

Remove sandbox rule that is no longer compiled on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:30 AM Changeset in webkit [283377] by youenn@apple.com
  • 18 edits
    13 adds in trunk

Add support for PushEvent
https://bugs.webkit.org/show_bug.cgi?id=231007
<rdar://problem/83707470>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/push-api/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

Implement PushEvent and PushMessageData as per specification.
https://w3c.github.io/push-api/#pushevent-interface and
https://w3c.github.io/push-api/#pushmessagedata-interface.

We model PushMessageData as a Vector<uint8_t> following the spec which tells us that it has an associated byte sequence.

Put them behind a runtime flag, off by default.

Test: http/wpt/push-api/pushEvent.any.serviceworker.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/push-api/PushEvent.cpp: Added.
  • Modules/push-api/PushEvent.h: Added.
  • Modules/push-api/PushEvent.idl: Added.
  • Modules/push-api/PushEventInit.h: Added.
  • Modules/push-api/PushEventInit.idl: Added.
  • Modules/push-api/PushMessageData.cpp: Added.
  • Modules/push-api/PushMessageData.h: Added.
  • Modules/push-api/PushMessageData.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.in:
  • page/RuntimeEnabledFeatures.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Skip tests in WK1.

  • http/wpt/push-api/pushEvent.any.js: Added.
  • http/wpt/push-api/pushEvent.any.serviceworker-expected.txt: Added.
  • http/wpt/push-api/pushEvent.any.serviceworker.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo-wk1/TestExpectations:
10:20 AM Changeset in webkit [283376] by Chris Dumez
  • 8 edits in trunk

Drop legacy USE(LEGACY_CFNETWORK_DOWNLOADS) code paths
https://bugs.webkit.org/show_bug.cgi?id=231081

Reviewed by Alex Christensen.

Drop legacy USE(LEGACY_CFNETWORK_DOWNLOADS) code paths, as we no longer support Mac OS 14 Mojave.

Source/WebKit:

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):
(WebKit::Download::platformCancelNetworkLoad):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView resumeDownloadFromResumeData:completionHandler:]):

Source/WTF:

  • wtf/PlatformUse.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
10:07 AM Changeset in webkit [283375] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Make sandbox rules for debug syscalls stricter
https://bugs.webkit.org/show_bug.cgi?id=230985
<rdar://49531420>

Reviewed by Brent Fulgham.

Make sandbox rules for debug syscalls stricter in the WebContent process on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
9:48 AM Changeset in webkit [283374] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

Send Launch Services database to GPU process
https://bugs.webkit.org/show_bug.cgi?id=225151
<rdar://74749122>

Reviewed by Brent Fulgham.

Send Launch Services database to the GPU process after it has finished launching, like we do for WebContent processes.
The Launch Services database is represented as an XPC object, and needs to be sent over a dedicated XPC channel.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didFinishLaunching):
(WebKit::GPUProcessProxy::addSession):

  • UIProcess/Network/NetworkProcessProxyCocoa.mm:

(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setWebsiteDataStore):
(WebKit::WebProcessProxy::didFinishLaunching):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllProcesses):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess): Deleted.
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllWebProcesses): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
9:27 AM Changeset in webkit [283373] by Jonathan Bedard
  • 6 edits in trunk/Tools

[webkitscmpy] Linkify http urls in pull-requests
https://bugs.webkit.org/show_bug.cgi?id=230655

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:

(PullRequest):
(PullRequest.escape_html): Escape any html and linkify http urls.
(PullRequest.unescape_html): Unescape escaped html and strip links from http urls.
(PullRequest.create_body): Use <pre> and escape html in commit messages.
(PullRequest.parse_body): Match both <pre> and `, escape html if <pre> was used.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.PRGenerator.create): Opt out of linkifying http in comment body.
(BitBucket.PRGenerator.update): Ditto.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
9:21 AM Changeset in webkit [283372] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[ iOS Mac wk2 Debug ] imported/w3c/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231083.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
9:19 AM Changeset in webkit [283371] by fpizlo@apple.com
  • 36 edits
    1 add
    1 delete in trunk/Source/bmalloc

[libpas] Change the names of libpas heap runtime configs to something simpler (intrinsic, primitive, typed, and flex) and add comments describing what they are (update to 32abc1fd5489e01aa1c504ae4654967047d3f072)
https://bugs.webkit.org/show_bug.cgi?id=231040

Reviewed by Saam Barati.

At some point a long time ago, libpas had sensible names for heap runtime configs: primitive
and typed. Then I added the "objc" category, not realizing that I was really adding support for
flexible array members. And then I added "intrinsic_primitive", but wow, what a mouthful.

This changes the heap names to:

intrinsic: singleton heaps for primitive data, like the normal fastMalloc heap
primitive: isoheaps for primitive data
typed: isoheaps for fixed-size types
flex: isoheaps for types with flexible array members

Also adds comments explaining the exact behaviors of these heaps.

Also exposes isoheaped array allocation through the bmalloc_heap API. That's not yet exposed
via the IsoHeap API, but the idea is that it will be -- just need to figure out a clean way to
do it.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/bmalloc.cpp:

(bmalloc::api::enableMiniMode):

  • libpas/common.sh:
  • libpas/src/chaos/Chaos.cpp:

(main):

  • libpas/src/libpas/bmalloc_heap.c:

(bmalloc_try_iso_allocate_array):
(bmalloc_iso_allocate_array):
(bmalloc_try_iso_allocate_array_with_alignment):
(bmalloc_iso_allocate_array_with_alignment):

  • libpas/src/libpas/bmalloc_heap.h:
  • libpas/src/libpas/bmalloc_heap_config.c:
  • libpas/src/libpas/bmalloc_heap_inlines.h:

(bmalloc_try_reallocate_inline):
(bmalloc_reallocate_inline):
(bmalloc_try_iso_allocate_array_inline):
(bmalloc_try_iso_allocate_array_with_alignment_inline):
(bmalloc_iso_allocate_array_inline):
(bmalloc_iso_allocate_array_with_alignment_inline):

  • libpas/src/libpas/hotbit_heap.c:
  • libpas/src/libpas/hotbit_heap_config.c:
  • libpas/src/libpas/hotbit_heap_inlines.h:

(hotbit_try_reallocate_inline):

  • libpas/src/libpas/iso_heap.c:

(iso_try_allocate_for_flex):
(iso_try_allocate_for_objc): Deleted.

  • libpas/src/libpas/iso_heap.h:
  • libpas/src/libpas/iso_heap_config.c:
  • libpas/src/libpas/iso_heap_inlines.h:

(iso_try_reallocate_common_primitive_inline):
(iso_reallocate_common_primitive_inline):
(iso_try_allocate_for_flex_inline):
(iso_try_allocate_for_objc_inline): Deleted.

  • libpas/src/libpas/iso_heap_innards.h:
  • libpas/src/libpas/iso_test_heap.c:
  • libpas/src/libpas/iso_test_heap_config.c:
  • libpas/src/libpas/jit_heap.c:
  • libpas/src/libpas/minalign32_heap.c:
  • libpas/src/libpas/minalign32_heap_config.c:
  • libpas/src/libpas/pagesize64k_heap.c:
  • libpas/src/libpas/pagesize64k_heap_config.c:
  • libpas/src/libpas/pas_heap_config_utils.h:
  • libpas/src/libpas/pas_heap_config_utils_inlines.h:
  • libpas/src/libpas/pas_internal_config.h:
  • libpas/src/libpas/pas_large_heap.c:

(pas_large_heap_construct):

  • libpas/src/libpas/pas_try_allocate.h:
  • libpas/src/libpas/pas_try_allocate_array.h:
  • libpas/src/libpas/pas_try_allocate_intrinsic.h: Added.

(pas_try_allocate_intrinsic_impl_medium_slow_case):
(pas_try_allocate_intrinsic_impl_inline_only):

  • libpas/src/libpas/pas_try_allocate_intrinsic_primitive.h: Removed.
  • libpas/src/libpas/pas_try_allocate_primitive.h:
  • libpas/src/libpas/pas_try_reallocate.h:

(pas_try_reallocate_intrinsic_allocate_callback):
(pas_try_reallocate_intrinsic):
(pas_try_reallocate_intrinsic_primitive_allocate_callback): Deleted.
(pas_try_reallocate_intrinsic_primitive): Deleted.

  • libpas/src/libpas/thingy_heap.c:

(thingy_try_reallocate_primitive):

  • libpas/src/libpas/thingy_heap_config.c:
  • libpas/src/test/IsoHeapChaosTests.cpp:

(addIsoHeapChaosTests):

  • libpas/src/test/TestHarness.cpp:
8:35 AM Changeset in webkit [283370] by Russell Epstein
  • 15 edits in branches/safari-613.1.3-branch

Revert "Enable RTCRtpScriptTransform by default"

This reverts commit r282523.

8:34 AM Changeset in webkit [283369] by youenn@apple.com
  • 7 edits in trunk/Source

Attribute IOSurfaces created by camera and decoders to responsible WebProcess
https://bugs.webkit.org/show_bug.cgi?id=231075

Reviewed by Chris Dumez.

Source/WebCore:

Manually tested.

  • platform/graphics/RemoteVideoSample.h:

Source/WebKit:

Make sure to mark camera and decoder generated IOSurfaces as owned by the responsible WebProcess.

  • GPUProcess/GPUConnectionToWebProcess.cpp:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
8:28 AM Changeset in webkit [283368] by youenn@apple.com
  • 3 edits in trunk/LayoutTests/imported/w3c

Rebase WebRTC perfect negotiation tests
https://bugs.webkit.org/show_bug.cgi?id=231018

Unreviewed, rebasing tests.

  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare-linear.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare.https-expected.txt:
8:12 AM Changeset in webkit [283367] by Antti Koivisto
  • 20 edits
    2 moves in trunk/Source/WebCore

Rename InlineIterator to LegacyInlineIterator
https://bugs.webkit.org/show_bug.cgi?id=231077

Reviewed by Alan Bujtas.

It is only used by the legacy line layout.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Position.cpp:
  • layout/integration/LayoutIntegrationCoverage.cpp:
  • rendering/LegacyInlineIterator.cpp: Renamed from Source/WebCore/rendering/InlineIterator.cpp.

(WebCore::LegacyInlineIterator::surrogateTextDirection const):

  • rendering/LegacyInlineIterator.h: Renamed from Source/WebCore/rendering/InlineIterator.h.

(WebCore::LegacyInlineIterator::LegacyInlineIterator):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::nextInlineRendererSkippingEmpty):
(WebCore::firstInlineRendererSkippingEmpty):

Rename this to not say "bidi".

(WebCore::LegacyInlineIterator::fastIncrementInTextNode):
(WebCore::LegacyInlineIterator::incrementByCodePointInTextNode):
(WebCore::LegacyInlineIterator::setOffset):
(WebCore::LegacyInlineIterator::setRefersToEndOfPreviousNode):
(WebCore::LegacyInlineIterator::increment):
(WebCore::LegacyInlineIterator::fastDecrement):
(WebCore::LegacyInlineIterator::atEnd const):
(WebCore::LegacyInlineIterator::characterAt const):
(WebCore::LegacyInlineIterator::current const):
(WebCore::LegacyInlineIterator::previousInSameNode const):
(WebCore::LegacyInlineIterator::direction const):
(WebCore::numberOfIsolateAncestors):
(WebCore::InlineBidiResolver::appendRunInternal):

  • rendering/LegacyLineLayout.cpp:

(WebCore::determineDirectionality):
(WebCore::LegacyLineLayout::appendRunsForObject):
(WebCore::constructBidiRunsForSegment):
(WebCore::LegacyLineLayout::createLineBoxesFromBidiRuns):
(WebCore::LegacyLineLayout::layoutRunsAndFloats):
(WebCore::LegacyLineLayout::restartLayoutRunsAndFloatsInRange):
(WebCore::LegacyLineLayout::layoutRunsAndFloatsInRange):
(WebCore::LegacyLineLayout::determineStartPosition):
(WebCore::LegacyLineLayout::determineEndPosition):
(WebCore::LegacyLineLayout::matchedEndLine):

  • rendering/LegacyLineLayout.h:
  • rendering/LegacyRootInlineBox.h:
  • rendering/RenderBlock.cpp:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderInline.cpp:

(WebCore::isEmptyInline):

  • rendering/RenderInline.h:
  • rendering/RenderTreeAsText.cpp:
  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::lineBreak):
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::handleBR):
(WebCore::shouldSkipWhitespaceAfterStartObject):
(WebCore::BreakingContext::handleReplaced):
(WebCore::iteratorIsBeyondEndOfRenderCombineText):
(WebCore::ensureCharacterGetsLineBox):
(WebCore::tryHyphenating):
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::trailingSpacesHang):
(WebCore::checkWhitespaceCollapsingTransitions):
(WebCore::BreakingContext::handleEndOfLine):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::skipTrailingWhitespace):
(WebCore::LineBreaker::nextLineBreak):

  • rendering/line/LineBreaker.h:
  • rendering/line/LineInlineHeaders.h:

(WebCore::skipNonBreakingSpace):
(WebCore::requiresLineBox):

  • rendering/line/TrailingObjects.cpp:

(WebCore::TrailingObjects::updateWhitespaceCollapsingTransitionsForTrailingBoxes):

  • rendering/line/TrailingObjects.h:
  • rendering/updating/RenderTreeBuilderList.cpp:

(WebCore::generatesLineBoxesForInlineChild):

7:23 AM Changeset in webkit [283366] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC][GLib] Fix typo in WrapperMap creation methods
https://bugs.webkit.org/show_bug.cgi?id=231076

Patch by Olivier Blin <Olivier Blin> on 2021-10-01
Reviewed by Michael Catanzaro.

  • API/glib/JSCContext.cpp:

(jscContextGetOrCreateJSWrapper):
(jscContextCreateContextWithJSWrapper):

  • API/glib/JSCWrapperMap.cpp:

(JSC::WrapperMap::createJSWrapper):
(JSC::WrapperMap::createContextWithJSWrapper):
(JSC::WrapperMap::createJSWrappper): Deleted.
(JSC::WrapperMap::createContextWithJSWrappper): Deleted.

  • API/glib/JSCWrapperMap.h:
6:41 AM Changeset in webkit [283365] by Antti Koivisto
  • 8 edits
    1 add in trunk/Source/WebCore

Move InlineWalker to a file of its own and make it use RenderIterator
https://bugs.webkit.org/show_bug.cgi?id=231069

Reviewed by Alan Bujtas.

It is confusing and overly complicated.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • rendering/InlineIterator.h:

(WebCore::bidiNextSkippingEmptyInlines):
(WebCore::bidiNextShared): Deleted.

There is no need to share anything here.

(WebCore::bidiNextIncludingEmptyInlines): Deleted.
(WebCore::bidiFirstIncludingEmptyInlines): Deleted.
(WebCore::InlineWalker::InlineWalker): Deleted.
(WebCore::InlineWalker::root): Deleted.
(WebCore::InlineWalker::current): Deleted.
(WebCore::InlineWalker::atEndOfInline): Deleted.

None of the clients cared about the functionality where the iterator would stop at the end of a RenderInline.

(WebCore::InlineWalker::atEnd const): Deleted.
(WebCore::InlineWalker::advance): Deleted.

  • rendering/InlineWalker.h: Added.

(WebCore::InlineWalker::InlineWalker):
(WebCore::InlineWalker::current):
(WebCore::InlineWalker::atEnd const):
(WebCore::InlineWalker::advance):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::layoutLineBoxes):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::simplifiedNormalFlowLayout):

  • rendering/RenderIterator.h:

(WebCore::RenderIterator::operator bool const):
(WebCore::RenderConstIterator::operator bool const):
(WebCore::RenderIterator<T>::traverseNextSkippingChildren):
(WebCore::RenderConstIterator<T>::traverseNextSkippingChildren):

6:19 AM Changeset in webkit [283364] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add Kimmo Kinnunen as reviewer
https://bugs.webkit.org/show_bug.cgi?id=231072

Unreviewed.

Add myself as a reviewer

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-01

  • Scripts/webkitpy/common/config/contributors.json:
6:12 AM Changeset in webkit [283363] by Sam Sneddon
  • 9 edits
    14 deletes in trunk/Tools

Remove most deprecated webkit-patch commands
https://bugs.webkit.org/show_bug.cgi?id=231032

Reviewed by Jonathan Bedard.

This removes all currently deprecated commands except for
rebaseline-server (to be decided about) and land-cowhand (see
https://bugs.webkit.org/show_bug.cgi?id=227980).

This undoubtedly leaves dead code elsewhere in webkitpy, but tidying that is a task for the
future (due to dynamic typing, determining what is or is not dead is non-trivial).

  • Scripts/webkitpy/tool/bot/retrylogic_unittest.py:

(MockJSCEarlyWarningSystem):
Rewrite to directly be a EarlyWarningSystemTaskDelegate subclass.
(MockJSCEarlyWarningSystem.init):
(MockJSCEarlyWarningSystem.group):

  • Scripts/webkitpy/tool/commands/init.py:
  • Scripts/webkitpy/tool/commands/adduserstogroups.py: Removed.
  • Scripts/webkitpy/tool/commands/analyzechangelog.py: Removed.
  • Scripts/webkitpy/tool/commands/analyzechangelog_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/applywatchlistlocal.py:
  • Scripts/webkitpy/tool/commands/bugfortest.py: Removed.
  • Scripts/webkitpy/tool/commands/bugsearch.py: Removed.
  • Scripts/webkitpy/tool/commands/download.py:

(Update): Deleted.
(Build): Deleted.
(Build._prepare_state): Deleted.
(CheckPatchRelevance): Deleted.
(LandCowboy): Deleted.
(LandCowboy._prepare_state): Deleted.
(BuildAttachment): Deleted.
(ApplyWatchList): Deleted.
(LandFromURL): Deleted.
(PrepareRollout): Deleted.
(PrepareRollout._prepare_state): Deleted.
(CreateRollout): Deleted.
(CreateRollout._prepare_state): Deleted.
(Rollout): Deleted.
(Rollout._prepare_state): Deleted.

  • Scripts/webkitpy/tool/commands/download_unittest.py:

(DownloadCommandsTest.test_build): Deleted.
(DownloadCommandsTest.test_apply_watch_list): Deleted.
(test_land): Deleted.
(test_build_attachment): Deleted.
(test_land_from_url): Deleted.
(test_prepare_revert): Deleted.

  • Scripts/webkitpy/tool/commands/earlywarningsystem.py: Removed.
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/findusers.py: Removed.
  • Scripts/webkitpy/tool/commands/gardenomatic.py: Removed.
  • Scripts/webkitpy/tool/commands/openbugs.py: Removed.
  • Scripts/webkitpy/tool/commands/openbugs_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/queries.py:

(BugsToCommit): Deleted.
(BugsToCommit.execute): Deleted.
(PatchesInCommitQueue): Deleted.
(PatchesInCommitQueue.execute): Deleted.
(PatchesToCommitQueue): Deleted.
(PatchesToCommitQueue.init): Deleted.
(PatchesToCommitQueue._needs_commit_queue): Deleted.
(PatchesToCommitQueue.execute): Deleted.
(PatchesToReview): Deleted.
(PatchesToReview.init): Deleted.
(PatchesToReview._print_report): Deleted.
(PatchesToReview._generate_report): Deleted.
(PatchesToReview.execute): Deleted.
(WhatBroke): Deleted.
(WhatBroke._print_builder_line): Deleted.
(WhatBroke._print_blame_information_for_builder): Deleted.
(WhatBroke.execute): Deleted.
(ResultsFor): Deleted.
(ResultsFor._print_layout_test_results): Deleted.
(ResultsFor.execute): Deleted.
(FailureReason): Deleted.
(FailureReason._blame_line_for_revision): Deleted.
(FailureReason._print_blame_information_for_transition): Deleted.
(FailureReason._explain_failures_for_builder): Deleted.
(FailureReason._builder_to_explain): Deleted.
(FailureReason._done_explaining): Deleted.
(FailureReason.execute): Deleted.
(FindFlakyTests): Deleted.
(FindFlakyTests._find_failures): Deleted.
(FindFlakyTests._increment_statistics): Deleted.
(FindFlakyTests._print_statistics): Deleted.
(FindFlakyTests._walk_backwards_from): Deleted.
(FindFlakyTests._builder_to_analyze): Deleted.
(FindFlakyTests.execute): Deleted.
(TreeStatus): Deleted.
(execute): Deleted.
(CrashLog): Deleted.
(PrintExpectations): Deleted.
(PrintExpectations.init): Deleted.
(PrintExpectations.execute): Deleted.
(PrintExpectations._filter_tests): Deleted.
(PrintExpectations._format_lines): Deleted.
(PrintExpectations._model): Deleted.
(PrintBaselines): Deleted.
(PrintBaselines.init): Deleted.
(PrintBaselines.execute): Deleted.
(PrintBaselines._print_baselines): Deleted.
(PrintBaselines._platform_for_path): Deleted.
(FindResolvedBugs): Deleted.
(FindResolvedBugs.execute): Deleted.

  • Scripts/webkitpy/tool/commands/queries_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/rebaseline.py: Removed.
  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py: Removed.
  • Scripts/webkitpy/tool/commands/upload.py:

(CommitMessageForCurrentDiff): Deleted.
(CommitMessageForCurrentDiff.init): Deleted.
(CommitMessageForCurrentDiff.execute): Deleted.
(CleanPendingCommit): Deleted.
(CleanPendingCommit._flags_to_clear_on_patch): Deleted.
(CleanPendingCommit.execute): Deleted.
(CleanReviewQueue): Deleted.
(CleanReviewQueue.execute): Deleted.
(AssignToCommitter): Deleted.
(AssignToCommitter._patches_have_commiters): Deleted.
(AssignToCommitter._assign_bug_to_last_patch_attacher): Deleted.
(AssignToCommitter.execute): Deleted.
(ObsoleteAttachments): Deleted.
(ObsoleteAttachments._prepare_state): Deleted.
(AttachToBug): Deleted.
(AttachToBug._prepare_state): Deleted.
(HasLanded): Deleted.
(PostCommits): Deleted.
(PostCommits.init): Deleted.
(PostCommits._comment_text_for_commit): Deleted.
(PostCommits.execute): Deleted.
(CreateBug): Deleted.
(CreateBug.init): Deleted.
(CreateBug.create_bug_from_commit): Deleted.
(CreateBug.create_bug_from_patch): Deleted.
(CreateBug.prompt_for_bug_title_and_comment): Deleted.
(CreateBug.execute): Deleted.
(WPTChangeExport): Deleted.
(WPTChangeExport._prepare_state): Deleted.

  • Scripts/webkitpy/tool/commands/upload_unittest.py:

(UploadCommandsTest.test_commit_message_for_current_diff): Deleted.
(UploadCommandsTest.test_clean_pending_commit): Deleted.
(UploadCommandsTest.test_assign_to_committer): Deleted.
(test_obsolete_attachments): Deleted.
(test_post): Deleted.
(test_attach_to_bug): Deleted.
(test_attach_to_bug_no_description_or_comment): Deleted.

5:53 AM Changeset in webkit [283362] by commit-queue@webkit.org
  • 11 edits
    2 adds in trunk/Source/WebCore

Cocoa GraphicsContextGLOpenGL should not be used by GraphicsContextGLCVANGLE
https://bugs.webkit.org/show_bug.cgi?id=231010

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-01
Reviewed by Kenneth Russell.

GraphicsContextGLOpenGL creates a GraphicsContextGLCVANGLE helper to do
do YUV texture uploads. This GraphicsContextGLCVANGLE creates a OpenGL ES context that
shares the OpenGL state by the caller.

Previously the new context would be a GraphicsContextGLOpenGL. This would be a problem
since GraphicsContextGLOpenGL has compositor related logic and objects, for example
the WebGL layer as well as resources for default framebuffer operation. Shared context
would also go to the GraphicsContextGLOpenGLManager context list even though
they could not be deleted behind the owners back during context recycling.

Instead, create just a normal ANGLE context and call ANGLE directly from
GraphicsContextGLCVANGLE. This is more consistent with software layers:
GraphicsContextGLOpenGL and GraphicsContextGLCVANGLE are at the same software
level, part of the same GraphicsContextGLOpenGL implementation.

Makes it possible to remove otherwise unused and unfitting "shared context"
related functionality from WebGL level from GraphicsContextGL.

No new tests, refactor.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsContextGL.cpp:

(WebCore::GraphicsContextGL::GraphicsContextGL):

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

(WebCore::GraphicsContextGLOpenGL::asCV): Deleted.

  • platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp: Added.

(WebCore::createPbufferAndAttachIOSurface):
(WebCore::destroyPbufferAndDetachIOSurface):

  • platform/graphics/cocoa/ANGLEUtilitiesCocoa.h: Added.

Move the createPbufferAndAttachIOSurface to Cocoa specific
ANGLE utility file.
See also bug 226504 - Adopt createPbufferAndAttachIOSurface/destroyPbufferAndDetachIOSurface
in GraphicsContextGLCVANGLE.cpp and GraphicsContextGLOpenGLCocoa.mm

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::createForGPUProcess):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::checkGPUStatus):
(WebCore::GraphicsContextGLOpenGL::makeCurrent):
Add a new function to make the EGL context current and maintain
the GraphicsContextGLOpenGL::currentContext cache value correctly.
Cache needs to be invalidated always when EGL context changes.
The cache value is reset always, and then set only when needed
during GraphicsContextGLOpenGL::makeContextCurrent().

Make GraphicsContextGLCVANGLE friend of GraphicsContextGLOpenGL, since
essentially the former is part of the implementation of latter.

(WebCore::GraphicsContextGLOpenGL::createPbufferAndAttachIOSurface):
(WebCore::GraphicsContextGLOpenGL::destroyPbufferAndDetachIOSurface):
Move the implementation to a ANGLE related helper files above.

(WebCore::GraphicsContextGLOpenGL::asCV):
Move the asCV to the implementaton file for Cococa, as that is
the platform which uses the implementation.

(WebCore::GraphicsContextGLOpenGL::createShared): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearCurrentContext): Deleted.
Replace with GraphicsContextGLOpenGL::makeCurrent().

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:

(WebCore::YCbCrMatrix::operator const GLfloat* const):
(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):
(WebCore::GraphicsContextGLCVANGLE::create):
(WebCore::GraphicsContextGLCVANGLE::~GraphicsContextGLCVANGLE):
(WebCore::GraphicsContextGLCVANGLE::GraphicsContextGLCVANGLE):
Reorder the resource initialization with ScopeExit cleanup functions.
Avoid storing the yuvProgram, instead just use the program as program
binary and delete the program.

(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):
(WebCore::YCbCrMatrix::operator GCGLSpan<const GLfloat, 16> const): Deleted.
(WebCore::GraphicsContextGLCVANGLE::initializeUVContextObjects): Deleted.
Move the resource initialization into the constructor. The object
itself is already initialized only on demand.
(WebCore::GraphicsContextGLCVANGLE::attachIOSurfaceToTexture): Deleted.
(WebCore::GraphicsContextGLCVANGLE::detachIOSurfaceFromTexture): Deleted.
Share the implementation with the existing implementation from
WebCore::GraphicsContextGLOpenGL::createPbufferAndAttachIOSurface that
was moved to WebCore::createPbufferAndAttachIOSurface.

  • platform/graphics/cv/GraphicsContextGLCVANGLE.h:

Remove the m_yuvProgram, rather use just the program binary.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
Remove the redundant sharedContext parameter.

3:03 AM Changeset in webkit [283361] by Carlos Garcia Campos
  • 17 edits
    1 add in trunk

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

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • PlatformGTK.cmake:
  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canSetValueAttribute const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::rolePlatformString const):

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged):
(WebCore::AXObjectCache::detachWrapper): Deleted.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::registerRoot):
(WebCore::AccessibilityAtspi::unregisterRoot):
(WebCore::AccessibilityAtspi::registerObject):
(WebCore::AccessibilityAtspi::unregisterObject):
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::stateChanged):
(WebCore::AccessibilityAtspi::localizedRoleName):
(WebCore::AccessibilityAtspi::ensureCache):
(WebCore::AccessibilityAtspi::addAccessible):
(WebCore::AccessibilityAtspi::removeAccessible):
(WebCore::Accessibility::createPlatformRoleMap):

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

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi):
(WebCore::AccessibilityObjectAtspi::attach):
(WebCore::AccessibilityObjectAtspi::detach):
(WebCore::AccessibilityObjectAtspi::cacheDestroyed):
(WebCore::AccessibilityObjectAtspi::elementDestroyed):
(WebCore::atspiRole):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::reference):
(WebCore::AccessibilityObjectAtspi::setRoot):
(WebCore::AccessibilityObjectAtspi::root const):
(WebCore::AccessibilityObjectAtspi::setParent):
(WebCore:: const):
(WebCore::AccessibilityObjectAtspi::parentReference const):
(WebCore::AccessibilityObjectAtspi::childCount const):
(WebCore::AccessibilityObjectAtspi::childAt const):
(WebCore::AccessibilityObjectAtspi::children const):
(WebCore::AccessibilityObjectAtspi::indexInParent const):
(WebCore::AccessibilityObjectAtspi::indexInParentForChildrenChanged):
(WebCore::AccessibilityObjectAtspi::name const):
(WebCore::AccessibilityObjectAtspi::description const):
(WebCore::shouldIncludeOrientationState):
(WebCore::AccessibilityObjectAtspi::state const):
(WebCore::AccessibilityObjectAtspi::id const):
(WebCore::AccessibilityObjectAtspi::attributes const):
(WebCore::AccessibilityObjectAtspi::buildAttributes const):
(WebCore::AccessibilityObjectAtspi::relationMap const):
(WebCore::AccessibilityObjectAtspi::buildRelationSet const):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):
(WebCore::AccessibilityObjectAtspi::serialize const):
(WebCore::AccessibilityObjectAtspi::childAdded):
(WebCore::AccessibilityObjectAtspi::childRemoved):
(WebCore::AccessibilityObjectAtspi::stateChanged):
(WebCore::AccessibilityObjectAtspi::role const):
(WebCore::AccessibilityObjectAtspi::roleName const):
(WebCore::AccessibilityObjectAtspi::localizedRoleName const):
(WebCore::AccessibilityObjectAtspi::updateBackingStore):
(WebCore::AccessibilityObject::detachPlatformWrapper):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

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

(WebCore::AccessibilityRootAtspi::unregisterObject):
(WebCore::AccessibilityRootAtspi::child const):
(WebCore::AccessibilityRootAtspi::serialize const):

  • accessibility/atspi/AccessibilityRootAtspi.h:
  • accessibility/isolatedtree/atspi/AXIsolatedObjectAtspi.cpp:

(WebCore::AXIsolatedObject::attachPlatformWrapper):
(WebCore::AXIsolatedObject::detachPlatformWrapper):

Source/WebKit:

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformDetach): Unregister the page accessible object.

Tools:

Add more unit tests for the accessible interface.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(AtspiEventDeleter::operator() const):
(AccessibilityTest::startEventMonitor):
(AccessibilityTest::stopEventMonitor):
(AccessibilityTest::stateSetSize):
(testAccessibleBasicHierarchy):
(testAccessibleIgnoredObjects):
(testAccessibleChildrenChanged):
(testAccessibleAttributes):
(testAccessibleState):
(testAccessibleStateChanged):
(beforeAll):
(testAtspiBasicHierarchy): Deleted.

2:10 AM Changeset in webkit [283360] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Clamp negative offset values
https://bugs.webkit.org/show_bug.cgi?id=230707

Reviewed by Simon Fraser.

ScrollOffsets are the values used by scrollbars and thus should be always positive. Under some circumstances
the value returned by maximumScrollOffset()|minimumScrollOffset() could be negative. For those cases we should
just clamp them to zero.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::updateSnapOffsetsForScrollableArea):

12:58 AM Changeset in webkit [283359] by commit-queue@webkit.org
  • 12 edits in trunk

Source/WebCore:
Add support for pow(), sqrt() and hypot()
https://bugs.webkit.org/show_bug.cgi?id=203312
<rdar://82640883>

Patch by Kevin Turner <kevin_turner@apple.com> on 2021-10-01
Reviewed by Simon Fraser.

Implements pow(), sqrt() and hypot() functions as specified by https://drafts.csswg.org/css-values-4/#exponent-funcs.

Test: fast/css/calc-parsing.html

  • css/CSSValueKeywords.in: Adds pow, sqrt, and hypot keywords.
  • css/calc/CSSCalcExpressionNodeParser.cpp:

(WebCore::CSSCalcExpressionNodeParser::parseCalcFunction):

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::determineCategory):
(WebCore::functionFromOperator):
(WebCore::CSSCalcOperationNode::createPowOrSqrt):
(WebCore::CSSCalcOperationNode::createHypot):
(WebCore::CSSCalcOperationNode::canCombineAllChildren const): Ensures nodes that are identity functions cannot have their children combined.
(WebCore::CSSCalcOperationNode::combineChildren): Early exit if node behaves as an identity function. Performs combine of children if node is an exponential function.
(WebCore::CSSCalcOperationNode::simplifyNode): Avoid simplifying if node does not behave as an identify function. Calls combineChildren() if node is an exponential function.
(WebCore::functionPrefixForOperator):
(WebCore::CSSCalcOperationNode::evaluateOperator):

  • css/calc/CSSCalcOperationNode.h: Adds isExponentialFunction() and isIdentity() methods. Exponential functions include hypot, sqrt, and pow. Identity functions are min and max when they contain one child.
  • css/calc/CSSCalcValue.cpp:

(WebCore::createCSS):
(WebCore::CSSCalcValue::isCalcFunction):

  • platform/calc/CalcExpressionOperation.cpp:

(WebCore::CalcExpressionOperation::evaluate const):

  • platform/calc/CalcOperator.cpp:

(WebCore::operator<<):

  • platform/calc/CalcOperator.h:

LayoutTests:
Add support for pow(), sqrt() and hypot() per https://drafts.csswg.org/css-values-4/#exponent-funcs.
https://bugs.webkit.org/show_bug.cgi?id=203312

Patch by Kevin Turner <kevin_turner@apple.com> on 2021-10-01
Reviewed by Simon Fraser.

Tests performing CSS calculations with pow(), sqrt(), and hypot() with a range of inputs.

  • fast/css/calc-parsing-expected.txt:
  • fast/css/calc-parsing.html:

Sep 30, 2021:

9:18 PM Changeset in webkit [283358] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening some mediastream consistent failures

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
9:14 PM Changeset in webkit [283357] by achristensen@apple.com
  • 2 edits in trunk/Tools

Stop making a file named null when running API tests

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

r283298 did the trick, but I need to pipe stderr to /dev/null instead of null

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

8:24 PM Changeset in webkit [283356] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit

Add dumping for UIViews with separated layers
https://bugs.webkit.org/show_bug.cgi?id=231056

Reviewed by Tim Horton.

  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(allowListedClassToString):
Fix typo from previous patch where a comma was missed
and remove unnecessary assertion.

(dumpUIView):
Use the new dumpSeparatedLayerProperties when separated layers
are present.

6:30 PM Changeset in webkit [283355] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Rename snapRubberBand() to have a clearer name
https://bugs.webkit.org/show_bug.cgi?id=231051

Reviewed by Myles C. Maxfield.

It wasn't clear that snapRubberBand() started the timer, sometimes. Make that
more obvious.

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::handleWheelEvent):
(WebCore::ScrollingEffectsController::updateRubberBandAnimatingState):
(WebCore::ScrollingEffectsController::stopRubberbanding):
(WebCore::ScrollingEffectsController::stopRubberbandAnimation):
(WebCore::ScrollingEffectsController::startRubberbandAnimationIfNecessary):
(WebCore::ScrollingEffectsController::stopSnapRubberbandAnimation): Deleted.
(WebCore::ScrollingEffectsController::snapRubberBand): Deleted.

6:23 PM Changeset in webkit [283354] by cathiechen
  • 3 edits in trunk/Source/WebCore

[Performance] Optimize RenderLayer::clipCrossesPaintingBoundary
https://bugs.webkit.org/show_bug.cgi?id=230885

Reviewed by Simon Fraser.

In RenderLayer::clipCrossesPaintingBoundary, to check if the layer and its parent layer are in the same
compositing layer, it calls enclosingCompositingLayerForRepaint() twice, which need to travel up the layer tree.
This patch adds RenderLayer::sharesCompositingLayerForRepaint, to check the repaintTargetForLayer and paintOrderParents.

  • rendering/RenderLayer.cpp:

(WebCore::repaintTargetForLayer):
(WebCore::RenderLayer::enclosingCompositingLayerForRepaint const):
(WebCore::RenderLayer::sharesCompositingLayerForRepaint const):
(WebCore::RenderLayer::clipCrossesPaintingBoundary const):

  • rendering/RenderLayer.h:
5:40 PM Changeset in webkit [283353] by Simon Fraser
  • 16 edits in trunk/Source

Simplify some scrolling-related code in WebKit with use of RectEdges<bool>
https://bugs.webkit.org/show_bug.cgi?id=231037

Reviewed by Tim Horton.

Source/WebCore:

Export edgePinnedState().

  • platform/ScrollableArea.h:

Source/WebKit:

Use RectEdges<bool> in code that tracks rubber banding state, and edge pinned state.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<RectEdges<bool>>::encode):
(IPC::ArgumentCoder<RectEdges<bool>>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageIsPinnedToLeftSide):
(WKPageIsPinnedToRightSide):
(WKPageIsPinnedToTopSide):
(WKPageIsPinnedToBottomSide):
(WKPageRubberBandsAtLeft):
(WKPageRubberBandsAtRight):
(WKPageRubberBandsAtTop):
(WKPageRubberBandsAtBottom):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::toWKRectEdge):
(WebKit::toRectEdges):
(WebKit::WebViewImpl::pinnedState):
(WebKit::WebViewImpl::rubberBandingEnabled):
(WebKit::WebViewImpl::setRubberBandingEnabled):

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::setRubberBandsAtLeft):
(WebKit::WebPageProxy::setRubberBandsAtRight):
(WebKit::WebPageProxy::setRubberBandsAtTop):
(WebKit::WebPageProxy::setRubberBandsAtBottom):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame):
(WebKit::WebPageProxy::rubberBandsAtLeft const): Deleted.
(WebKit::WebPageProxy::rubberBandsAtRight const): Deleted.
(WebKit::WebPageProxy::rubberBandsAtTop const): Deleted.
(WebKit::WebPageProxy::rubberBandsAtBottom const): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/EventDispatcher.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateMainFrameScrollOffsetPinning):

  • WebProcess/WebPage/WebPage.h:
5:30 PM Changeset in webkit [283352] by Russell Epstein
  • 1 copy in tags/Safari-612.2.9.3.1

Tag Safari-612.2.9.3.1.

5:29 PM Changeset in webkit [283351] by Russell Epstein
  • 1 copy in tags/Safari-612.2.9.2.1

Tag Safari-612.2.9.2.1.

5:27 PM Changeset in webkit [283350] by Russell Epstein
  • 1 copy in tags/Safari-612.2.9.0.2

Tag Safari-612.2.9.0.2.

5:26 PM Changeset in webkit [283349] by Russell Epstein
  • 1 copy in tags/Safari-612.2.9.1.2

Tag Safari-612.2.9.1.2.

5:26 PM Changeset in webkit [283348] by ysuzuki@apple.com
  • 4 edits in trunk

Upgrade GCC requirement to 8.3.0
https://bugs.webkit.org/show_bug.cgi?id=231042

Reviewed by Darin Adler.

.:

Based on the roadmap[1], we upgrade GCC requirement to 8.3.0, which is default GCC in Debian one-old-stable (buster) right now.
This paves the way to enabling some of useful C++20 features, e.g. default initializer for bitfields.

[1]: https://trac.webkit.org/wiki/WebKitGTK/GCCRequirement

  • Source/cmake/WebKitCommon.cmake:

Source/JavaScriptCore:

  • runtime/ConfigFile.cpp:

(JSC::ConfigFile::canonicalizePaths):

4:38 PM Changeset in webkit [283347] by sihui_liu@apple.com
  • 33 edits
    2 copies
    5 adds in trunk

Make File System Access API available in Worker
https://bugs.webkit.org/show_bug.cgi?id=230805
<rdar://problem/83552511>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt:

Source/WebCore:

Introduce WorkerFileSystemStorageConnection to provide connection to storage backend for handles in Worker.
WorkerFileSystemStorageConnection sends request to FileSystemStorageConnection on the main thread, and
dispaches the result back to handes on worker thread.

Test: storage/filesystemaccess/directory-handle-basics-worker.html

  • Headers.cmake:
  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp: Added.

(WebCore::WorkerFileSystemStorageConnection::create):
(WebCore::WorkerFileSystemStorageConnection::WorkerFileSystemStorageConnection):
(WebCore::WorkerFileSystemStorageConnection::~WorkerFileSystemStorageConnection):
(WebCore::WorkerFileSystemStorageConnection::connectionClosed):
(WebCore::WorkerFileSystemStorageConnection::scopeClosed):
(WebCore::WorkerFileSystemStorageConnection::isSameEntry):
(WebCore::WorkerFileSystemStorageConnection::didIsSameEntry):
(WebCore::WorkerFileSystemStorageConnection::getFileHandle):
(WebCore::WorkerFileSystemStorageConnection::getDirectoryHandle):
(WebCore::WorkerFileSystemStorageConnection::didGetHandle):
(WebCore::WorkerFileSystemStorageConnection::removeEntry):
(WebCore::WorkerFileSystemStorageConnection::didRemoveEntry):
(WebCore::WorkerFileSystemStorageConnection::resolve):
(WebCore::WorkerFileSystemStorageConnection::didResolve):

  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.h: Added.
  • Modules/filesystemaccess/WorkerFileSystemStorageConnectionCallbackIdentifier.h: Added.
  • Modules/storage/StorageConnection.h:
  • Modules/storage/WorkerStorageConnection.cpp:

(WebCore::WorkerStorageConnection::scopeClosed):
(WebCore::WorkerStorageConnection::fileSystemGetDirectory):
(WebCore::WorkerStorageConnection::didGetDirectory):

  • Modules/storage/WorkerStorageConnection.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/ExceptionOr.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::prepareForDestruction):
(WebCore::WorkerGlobalScope::getFileSystemStorageConnection):
(WebCore::WorkerGlobalScope::fileSystemStorageConnection):

  • workers/WorkerGlobalScope.h:

Source/WTF:

  • wtf/CrossThreadCopier.h:

LayoutTests:

  • storage/filesystemaccess/directory-handle-basics-worker-expected.txt: Added.
  • storage/filesystemaccess/directory-handle-basics-worker.html: Added.
  • storage/filesystemaccess/directory-handle-basics.html:
  • storage/filesystemaccess/resources/directory-handle-basics.js: Copied from LayoutTests/storage/filesystemaccess/directory-handle-basics.html.

(finishTest):
(getDirectory):

4:12 PM Changeset in webkit [283346] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-611.4.2.0-branch

Cherry-pick r281613. rdar://problem/83369963

Crash in GraphicsContextGLOpenGL::reshapeDisplayBufferBacking
https://bugs.webkit.org/show_bug.cgi?id=229309

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-25
Reviewed by Myles C. Maxfield.

Source/WebCore:

Test: fast/canvas/xr-compatible-crash.html

Null check m_swapChain because reshapeDisplayBufferBacking can be called before it is set.

  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::addContextObject):
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking):

LayoutTests:

  • fast/canvas/xr-compatible-crash.html: Added.
  • fast/canvas/xr-compatible-crash-expected.txt: Added.

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

4:12 PM Changeset in webkit [283345] by Russell Epstein
  • 2 edits in branches/safari-611.4.2.0-branch/Source/WebCore

Cherry-pick r280861. rdar://problem/81757530

Deploy some more smart pointers in DOMWindow.cpp
https://bugs.webkit.org/show_bug.cgi?id=228883

Reviewed by Darin Adler.

A follow up to r279661. Deploy even more smart pointers.

  • page/DOMWindow.cpp: (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents): (WebCore::DOMWindow::failedToRegisterDeviceMotionEventListener): (WebCore::DOMWindow::dispatchEvent):

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

4:06 PM Changeset in webkit [283344] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Regressions (r283288): [ macOS Debug ] webgl/2.0.0/conformance/state/gl-object-get-calls.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=231024
<rdar://problem/83723856>

Reviewed by Mark Lam.

Speed up our debug assert by not using a probe.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

3:58 PM Changeset in webkit [283343] by Russell Epstein
  • 8 edits in branches/safari-611.4.2.0-branch/Source

Versioning.

WebKit-7611.4.2.0.1

3:42 PM Changeset in webkit [283342] by wilander@apple.com
  • 6 edits in trunk

PCM: Change WebIDL attributes from all lowercase to camelcase to match spec and align with Attribution Reporting API
https://bugs.webkit.org/show_bug.cgi?id=230914
<rdar://problem/83639923>

Reviewed by Brent Fulgham.

This patch changes Private Click Measurement's WebIDL attributes from
all lowercase to camelcase to match the spec and align with the
Attribution Reporting API proposal.

References

Source/WebCore:

Existing tests updated.

  • html/HTMLAnchorElement.idl:

LayoutTests:

  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:
3:34 PM Changeset in webkit [283341] by Russell Epstein
  • 1 copy in branches/safari-611.4.2.0-branch

New branch.

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

Move canCompositeClipPath to RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=231014

Patch by Rob Buis <rbuis@igalia.com> on 2021-09-30
Reviewed by Simon Fraser.

Move canCompositeClipPath to RenderLayer since the
code almost exclusively deals with layers. Also
remove unneeded ASSERTs.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::adjustStyleDifference const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::willCompositeClipPath const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::canCompositeClipPath): Deleted.

  • rendering/RenderLayerCompositor.h:
2:13 PM Changeset in webkit [283339] by Devin Rousso
  • 11 edits in trunk/Source/WebCore

[iOS][GPU Process] support <attachment>
https://bugs.webkit.org/show_bug.cgi?id=230781
<rdar://problem/70884096>

Reviewed by Myles Maxfield.

Source/WebCore:

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderAttachmentInfo::addLine):
(WebCore::RenderAttachmentInfo::buildWrappedLines):
(WebCore::RenderAttachmentInfo::buildSingleLine):
(WebCore::paintAttachmentText):
Instead of drawing directly into the GraphicsContext::platformContext (which will not be
valid in the WebProcess when DOM rendering happens in the GPUProcess), use DrawGlyphsRecorder
to "translate" native CTLineDraw into a sequence of actions from which a GraphicsContext
method can be derived, thereby hooking into and benefiting from existing GPUProcess support.

  • platform/graphics/DrawGlyphsRecorder.h:

(WebCore::DrawGlyphsRecorder::deconstructDrawGlyphs const): Renamed from drawGlyphsDeconstruction.

  • platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DrawGlyphsRecorder::recordDrawGlyphs):
(WebCore::DrawGlyphsRecorder::drawGlyphs):
(WebCore::DrawGlyphsRecorder::drawNativeText):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:
  • platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • platform/graphics/win/DrawGlyphsRecorderWin.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
Add a new parameter to DrawGlyphsRenderer that controls whether fonts other than the one
initially provided to drawGlyphs/drawNativeText can be used to draw glyphs. This is only
used by the above as we know that the initial font is a system font, and therefore that the
fallback list will also only contain system fonts, meaning that sending the font to the
GPUProcess is cheap (a file path instead of actual data).

(WebCore::DisplayList::Recorder::Recorder):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):
Drive-by: Rename DrawGlyphsDeconstruction to DeconstructDrawGlyphs as it reads better.

Source/WebCore/PAL:

  • pal/spi/cg/CoreGraphicsSPI.h:
2:03 PM Changeset in webkit [283338] by Russell Epstein
  • 2 edits in branches/safari-612.2.9.1-branch/Source/WebKit

Cherry-pick r283294. rdar://problem/83733583

Add weakThis check in addition to null check added in r282881
https://bugs.webkit.org/show_bug.cgi?id=231000
<rdar://83605614>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-29
Reviewed by Brady Eidson.

r282881 made NetworkLoad::start call didCompleteWithError, which can cause the
NetworkResourceLoader to be deleted. It added a null check on m_networkLoad which
sometimes reads freed memory. This certainly isn't great, but luckily we have a way
to check if this object has been deleted. Let's do that.

  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::startNetworkLoad):

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

2:00 PM Changeset in webkit [283337] by Russell Epstein
  • 2 edits in branches/safari-612.2.9.3-branch/Source/WebKit

Cherry-pick r283294. rdar://problem/83733561

Add weakThis check in addition to null check added in r282881
https://bugs.webkit.org/show_bug.cgi?id=231000
<rdar://83605614>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-29
Reviewed by Brady Eidson.

r282881 made NetworkLoad::start call didCompleteWithError, which can cause the
NetworkResourceLoader to be deleted. It added a null check on m_networkLoad which
sometimes reads freed memory. This certainly isn't great, but luckily we have a way
to check if this object has been deleted. Let's do that.

  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::startNetworkLoad):

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

1:59 PM Changeset in webkit [283336] by Russell Epstein
  • 8 edits in branches/safari-612.2.9.1-branch/Source

Versioning.

WebKit-7612.2.9.1.2

1:58 PM Changeset in webkit [283335] by Simon Fraser
  • 15 edits in trunk/Source/WebCore

Replace the confusing isPinnedForScrollDelta() logic with code that uses BoxSide
https://bugs.webkit.org/show_bug.cgi?id=231004

Reviewed by Tim Horton.

isPinnedForScrollDelta()/isPinnedForScrollDeltaOnAxis() are ambiguous because it's
easy to interpret them as looking at the magnitude of the delta to determine whether
the delta will cause stretching on an edge. However, they don't do this; they simply
use the delta to choose which edge to look at, and the "is pinned" refers to whether
the scroller is already scrolled to that edge or stretching at that edge.

To reduce ambiguity, rewrite the code in terms of BoxSides, separating the code
that determines which BoxSide to look at for a given event delta from the code that
computed pinned state. It's now clearer that it's the caller's responsibility to
do "dominant axis" delta transformations too.

  • page/EventHandler.cpp:

(WebCore::EventHandler::scrollableAreaCanHandleEvent):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::mainFrameCanRubberBandOnSide):
(WebCore::ScrollingTree::mainFrameCanRubberBandInDirection): Deleted.

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::isPinnedOnSide const): Remove the old "scrollOffsetLimit" threshold. Our scroll offsets
are currently all integral so I don't think this did anything.
(WebCore::ScrollingTreeScrollingNodeDelegateMac::shouldRubberBandOnSide const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::isPinnedForScrollDeltaOnAxis const): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateMac::isPinnedForScrollDelta const): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateMac::shouldRubberBandInDirection const): Deleted.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::isPinnedOnSide const):
(WebCore::ScrollAnimator::isPinnedForScrollDelta const): Deleted.

  • platform/ScrollAnimator.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::isPinnedOnSide const):
(WebCore::ScrollableArea::targetSideForScrollDelta):
(WebCore::ScrollableArea::isPinnedForScrollDeltaOnAxis const): Deleted.
(WebCore::ScrollableArea::isPinnedForScrollDelta const): Deleted.

  • platform/ScrollableArea.h:
  • platform/ScrollingEffectsController.h:
  • platform/ios/ScrollAnimatorIOS.mm:

(WebCore::ScrollAnimatorIOS::determineScrollableAreaForTouchSequence):

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::allowsVerticalStretching const):
(WebCore::ScrollAnimatorMac::allowsHorizontalStretching const):
(WebCore::ScrollAnimatorMac::shouldRubberBandOnSide const):
(WebCore::ScrollAnimatorMac::shouldRubberBandInDirection const): Deleted.

  • platform/mac/ScrollingEffectsController.mm:

(WebCore::dominantAxisFavoringVertical):
(WebCore::deltaAlignedToAxis):
(WebCore::deltaAlignedToDominantAxis):
(WebCore::affectedSideOnDominantAxis):
(WebCore::isHorizontalSide):
(WebCore::isVerticalSide):
(WebCore::ScrollingEffectsController::handleWheelEvent):
(WebCore::ScrollingEffectsController::wheelDeltaBiasingTowardsVertical):
(WebCore::ScrollingEffectsController::shouldRubberBandOnSide const):
(WebCore::convertToProminentAxisFavoringVertical): Deleted.
(WebCore::ScrollingEffectsController::directionFromEvent): Deleted.
(WebCore::ScrollingEffectsController::shouldRubberBandInHorizontalDirection const): Deleted.
(WebCore::ScrollingEffectsController::shouldRubberBandInDirection const): Deleted.

1:51 PM Changeset in webkit [283334] by Russell Epstein
  • 8 edits in branches/safari-612.2.9.3-branch/Source

Versioning.

WebKit-7612.2.9.3.1

1:44 PM Changeset in webkit [283333] by chris.reid@sony.com
  • 3 edits in trunk/Source/WebKit

Fix !ENABLE(WIRELESS_PLAYBACK_TARGET) build after r283319
https://bugs.webkit.org/show_bug.cgi?id=231036

Unreviewed build fix.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp: MediaPlaybackTargetContext.h is already included with WIRELESS_PLAYBACK_TARGET
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
1:37 PM Changeset in webkit [283332] by sbarati@apple.com
  • 5 edits
    3 adds in trunk

The DFG/FTL need to be aware that Proxy's can produce "function" for typeof and might be callable
https://bugs.webkit.org/show_bug.cgi?id=230804
<rdar://problem/83543951>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/ai-typeof-needs-to-be-aware-of-proxy-2.js: Added.

(assert):
(builtin.vm.createBuiltin):
(builtin2.vm.createBuiltin):
(let.p.new.Proxy):

  • stress/ai-typeof-needs-to-be-aware-of-proxy.js: Added.

(assert):
(builtin.vm.createBuiltin):
(let.p.new.Proxy):

  • stress/is-callable-in-ftl-needs-to-be-aware-of-proxy.js: Added.

(main):

Source/JavaScriptCore:

This patch fixes a couple bugs:

  • We were constant folding typeof on ProxyObject to "object" even when ProxyObject might produce a callable Proxy, and hence, should produce "function". This was a bug in AI.
  • This also fixes a similar bug in IsCallable's implementation in the FTL where we assumed that ProxyObject's type can't be callable.
  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

1:21 PM Changeset in webkit [283331] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

[GPU Process] support rendering Apple Pay buttons
https://bugs.webkit.org/show_bug.cgi?id=230648
<rdar://problem/72061985>

Reviewed by Tim Horton.

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::paintApplePayButton):
Instead of drawing directly into the GraphicsContext::platformContext (which will not be
valid in the WebProcess when DOM rendering happens in the GPUProcess), first draw into a
temporary ImageBuffer and then consume it to draw into the actual/used GraphicsContext.
While it is possible to create a dedicated display list item for this, we don't want to do
that because PKDrawApplePayButtonWithCornerRadius involves dealing with PDFs, which are
not as secure as we'd like for use in the GPUProcess.

1:17 PM Changeset in webkit [283330] by Alan Coon
  • 2 edits in branches/safari-612.2.9.2-branch/Source/WebKit

Cherry-pick r283294. rdar://problem/83733551

Add weakThis check in addition to null check added in r282881
https://bugs.webkit.org/show_bug.cgi?id=231000
<rdar://83605614>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-29
Reviewed by Brady Eidson.

r282881 made NetworkLoad::start call didCompleteWithError, which can cause the
NetworkResourceLoader to be deleted. It added a null check on m_networkLoad which
sometimes reads freed memory. This certainly isn't great, but luckily we have a way
to check if this object has been deleted. Let's do that.

  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::startNetworkLoad):

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

1:13 PM Changeset in webkit [283329] by Fujii Hironori
  • 4 edits in trunk

Python 3 fails to run run-builtins-generator-tests : ModuleNotFoundError: No module named 'builtins_model'
https://bugs.webkit.org/show_bug.cgi?id=230870

Reviewed by Jonathan Bedard.

Source/JavaScriptCore:

BaseException.message has been deprecated as of Python 2.6. Use
str(e) instead.

Implicit relative imports have been deprecated in Python 3.
Basically, relative imports should be used. However, the scripts
in wkbuiltins directory are flattened when they are copied to
WebKitBuild directory. So, relative imports can't be used.

So, append wkbuiltins directory to sys.path as a workaround.

  • Scripts/generate-js-builtins.py:

Tools:

After r282424 (Bug 229879) switched to python3 for running
run-builtins-generator-tests on Buildbot, only WinCairo buildbot
was failing run-builtins-generator-tests.

run-builtins-generator-tests was invoking generate-js-builtins.py
explictly with 'python'. This is Python 2 on other bots.

Use sys.executable instead of 'python' to invoke
generate-js-builtins.py.

  • Scripts/webkitpy/codegen/main.py:

(BuiltinsGeneratorTests.generate_from_js_builtins):

1:05 PM Changeset in webkit [283328] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[GPUP] Add syscall filter telemetry
https://bugs.webkit.org/show_bug.cgi?id=230960
<rdar://problem/83674166>

Reviewed by Brent Fulgham.

Add syscall filter telemetry in the GPU process' sandbox on iOS and macOS.
Syscall observed being in use are added without telemetry.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
1:05 PM Changeset in webkit [283327] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Add syscall filter telemetry for the Networking process
https://bugs.webkit.org/show_bug.cgi?id=230961
<rdar://problem/83674634>

Reviewed by Brent Fulgham.

Add syscall filter telemetry for the Networking process on iOS and macOS.
Syscalls that are known to be used are added without telemetry.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
1:05 PM Changeset in webkit [283326] by Alan Coon
  • 2 edits in branches/safari-612.2.9.0-branch/Source/WebKit

Cherry-pick r283294. rdar://problem/83733571

Add weakThis check in addition to null check added in r282881
https://bugs.webkit.org/show_bug.cgi?id=231000
<rdar://83605614>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-29
Reviewed by Brady Eidson.

r282881 made NetworkLoad::start call didCompleteWithError, which can cause the
NetworkResourceLoader to be deleted. It added a null check on m_networkLoad which
sometimes reads freed memory. This certainly isn't great, but luckily we have a way
to check if this object has been deleted. Let's do that.

  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::startNetworkLoad):

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

1:04 PM Changeset in webkit [283325] by Alan Coon
  • 8 edits in branches/safari-612.2.9.2-branch/Source

Versioning.

WebKit-7612.2.9.2.1

12:59 PM Changeset in webkit [283324] by Alan Coon
  • 8 edits in branches/safari-612.2.9.0-branch/Source

Versioning.

WebKit-7612.2.9.0.2

12:53 PM Changeset in webkit [283323] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Reduce sandbox telemetry
https://bugs.webkit.org/show_bug.cgi?id=231026
<rdar://83694937>

Reviewed by Brent Fulgham.

Remove sandbox telemetry for resources that we already see are in use.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
12:23 PM Changeset in webkit [283322] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Web Audio panner node quality deteriorates over time
https://bugs.webkit.org/show_bug.cgi?id=230950
<rdar://problem/83675934>

Reviewed by Eric Carlson.

When profiling the test case, I noticed what we were spending most of the CPU time
under AudioParamTimeline::valuesForFrameRangeImpl() / isEventCurrent() called from
PannerNode::process(). The reason for that is that the number of events in the
AudioParamTimeline would keep growing unboundedly and it would make the
valuesForFrameRangeImpl() implementation more and more expensive over time, since
it has to iterate over all events.

To address the issue, valuesForFrameRangeImpl() now keeps track of the events
that it had to skip because they were in the past. Then, at the end of the loop,
it removes the outdated events so it won't have to iterate over them the next
time around. This behavior is similar to what Blink does.

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::removeOldEvents):
(WebCore::AudioParamTimeline::valuesForFrameRangeImpl):

  • Modules/webaudio/AudioParamTimeline.h:
12:15 PM Changeset in webkit [283321] by Ziran Sun
  • 4 edits in trunk

[css-grid] Transfer sizes from the aspect-ratio while resolving min-length for auto repetitions
https://bugs.webkit.org/show_bug.cgi?id=230676

Source/WebCore:

Reviewed by Sergio Villar Senin.

When resolving min-length for auto repetitions, if the min-length on the axis considered is not specified,
we need to check if the min-length on the other axis and the aspect ratio are specified. When both are
specified, we will fetch the transferred min-length for the axis we are considering.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeAutoRepeatTracksCount const):

LayoutTests:

Reviewed by Sergio Villar Senin.

Updated TestExpectations file as two tests with image failures are now passing.

10:48 AM Changeset in webkit [283320] by commit-queue@webkit.org
  • 27 edits in trunk/Source

Adopt presentationSceneIdentifierForPaymentAuthorizationController delegate call from PassKit
https://bugs.webkit.org/show_bug.cgi?id=230874

Patch by Eddy Wong <eddy_wong@apple.com> on 2021-09-30
Reviewed by Devin Rousso.

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:

(WebKit::NetworkConnectionToWebProcess::getWindowSceneIdentifierForPaymentPresentation): Implements getWindowSceneIdentifierForPaymentPresentation() by asking parent process (UIProcess) for scene ID via new XPC message.

  • Platform/cocoa/PaymentAuthorizationPresenter.h:

(WebKit::PaymentAuthorizationPresenter::sceneIdentifier const): Holds temporarily the scene ID we'd like to use when presenting the payment sheet, to be read by WKPaymentAuthorizationControllerDelegate.

  • Platform/cocoa/PaymentAuthorizationViewController.h: Declares presentInScene() which is just for conformance to PaymentAuthorizationPresenter
  • Platform/cocoa/PaymentAuthorizationViewController.mm:

(WebKit::PaymentAuthorizationViewController::presentInScene): Provides a dummy implementation for presentInScene() for conformance.

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h: Surfaces _presenter for PaymentAuthorizationPresenter's use.
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm: Ditto.
  • Platform/ios/PaymentAuthorizationController.h:
  • Platform/ios/PaymentAuthorizationController.mm:

(-[WKPaymentAuthorizationControllerDelegate presentationSceneIdentifierForPaymentAuthorizationController:]): Implements the new PassKit delegate call returning the scene ID for the UIProcess.
(WebKit::PaymentAuthorizationController::dismiss): House keeping.
(WebKit::PaymentAuthorizationController::presentInScene): Stores the scene ID from the caller for WKPaymentAuthorizationControllerDelegate to read from.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI): Relays webPageProxyID for use by UIProcess ultimately to look up the correct WebPageProxy.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h: Ditto.
  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in: Ditto.
  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): Presents payment sheet with scene ID if applicable.

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): Signature change.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getWindowSceneIdentifierForPaymentPresentation): Looks up the correct WebPageProxy and retrieve the scene ID for the caller (NetworkProcess).

  • UIProcess/Network/NetworkProcessProxy.h: Ditto.
  • UIProcess/Network/NetworkProcessProxy.messages.in: Ditto.
  • UIProcess/PageClient.h: Adds ability to retrieve scene ID.
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h: Ditto.
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::sceneID): Ditto.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::getWindowSceneIdentifierForPaymentPresentation): Dummy implementation for conformance to WebPageProxy. WebProcess does not talk to UIProcess directly for this function.

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::showPaymentUI): Passes the WebPageProxyIdentifier along.

Source/WTF:

  • wtf/PlatformEnableCocoa.h: Defines new flag ENABLE_APPLE_PAY_REMOTE_UI_USES_SCENE
10:39 AM Changeset in webkit [283319] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit

Unreviewed Catalyst build fix; forward-declare in RemoteMediaPlayerProxy.h and include the correct file in RemoteMediaPlayerProxy.cpp.

Patch by Jer Noble <jer.noble@apple.com> on 2021-09-30

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
10:11 AM Changeset in webkit [283318] by commit-queue@webkit.org
  • 8 edits
    2 copies
    5 adds
    1 delete in trunk/LayoutTests

[GLIB] Rebaseline a number of tests. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=230996

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-30

  • platform/glib/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt: Added.
  • platform/glib/http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
  • platform/glib/security/block-test-expected.txt:
  • platform/gtk/fast/encoding/charset-replacement-expected.txt: Copied from LayoutTests/platform/glib/fast/encoding/charset-replacement-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/layer-counter-style-override-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
  • platform/wpe/fast/encoding/charset-replacement-expected.txt: Renamed from LayoutTests/platform/glib/fast/encoding/charset-replacement-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/layer-counter-style-override-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
10:09 AM Changeset in webkit [283317] by Darin Adler
  • 2 edits in trunk/Source/WTF

Add StdLibExtras.h include to a file that uses bitwise_cast without including it
https://bugs.webkit.org/show_bug.cgi?id=231027

Reviewed by Yusuke Suzuki.

  • wtf/RawPtrTraits.h: Include StdLibExtras.h.
9:22 AM Changeset in webkit [283316] by wilander@apple.com
  • 35 edits
    2 adds in trunk

PCM: Take app bundle ID into consideration when matching triggering events with pending clicks
https://bugs.webkit.org/show_bug.cgi?id=230778
<rdar://problem/83516528>

Reviewed by Alex Christensen.

https://commits.webkit.org/r282884 added app bundle IDs to unattributed
and attributed clicks in PCM. This patch makes sure we take those IDs
into consideration in PCM::Database::attributePrivateClickMeasurement().

Source/WebCore:

The WebCore part makes sure that a temporary app bundle ID can be set
on attributions that get stored in PCM's database.

Test: http/tests/privateClickMeasurement/multiple-app-bundle-ids.html

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::setSourceApplicationBundleIDForTesting):

  • loader/PrivateClickMeasurement.h:

Source/WebKit:

A lot of the WebKit part is:

  • Piping through app bundle IDs from the network session to the PCM

database where the ID will be matched against stored app bundle IDs.

  • Piping through test configuration for app bundle ID.

The real change is in PCM::Database which is explained below.

Test: http/tests/privateClickMeasurement/multiple-app-bundle-ids.html

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setPrivateClickMeasurementAppBundleIDForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:

(WebKit::PCM::Database::findPrivateClickMeasurement):

Now takes an app bundle ID supplied from the network session and
includes it in the database query to find matching entries. If and
attribution was saved with app bundle ID XYZ, it should only be
be converted in an application with app bundle ID XYZ.

(WebKit::PCM::Database::attributePrivateClickMeasurement):

This function calls PCM::Database::findPrivateClickMeasurement()
which needs the app bundle ID so that ID is forwarded through.

(WebKit::PCM::Database::removeUnattributed):

Also needs to take the app bundle ID into consideration.

(WebKit::PCM::Database::clearSentAttribution):

Also needs to take the app bundle ID into consideration.

(WebKit::PCM::Database::markReportAsSentToDestination):

Also needs to take the app bundle ID into consideration.

(WebKit::PCM::Database::markReportAsSentToSource):

Also needs to take the app bundle ID into consideration.

(WebKit::PCM::Database::earliestTimesToSend):

Also needs to take the app bundle ID into consideration.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::setPrivateClickMeasurementAppBundleIDForTesting):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::clear):

Clears the test setting for app bundle ID.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp:

(WebKit::PCM::messageTypeSendsReply):
(WebKit::PCM::decodeMessageAndSendToManager):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:

(WebKit::PCM::ManagerProxy::handleAttribution):
(WebKit::PCM::ManagerProxy::setPrivateClickMeasurementAppBundleIDForTesting):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp:

(WebKit::PCM::Store::attributePrivateClickMeasurement):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPCMFraudPreventionValuesForTesting):
(WKPageSetPrivateClickMeasurementAppBundleIDForTesting):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _setPrivateClickMeasurementAppBundleIDForTesting:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setPrivateClickMeasurementAppBundleIDForTesting):

  • UIProcess/WebPageProxy.h:

Tools:

The TestRunner changes are all test infrastructure to enable different
app bundle IDs in the eyes of PCM. The API test changes are to make use
of the app bundle ID test infrastructure.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::runBasicEventAttributionTest):
(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPrivateClickMeasurementAppBundleIDForTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setPrivateClickMeasurementAppBundleIDForTesting):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/privateClickMeasurement/multiple-app-bundle-ids-expected.txt: Added.
  • http/tests/privateClickMeasurement/multiple-app-bundle-ids.html: Added.
  • http/tests/privateClickMeasurement/resources/util.js:

(tearDownAndFinish):

9:05 AM Changeset in webkit [283315] by youenn@apple.com
  • 6 edits in trunk/Source

Support AES GCM ciphers in WebRTC
https://bugs.webkit.org/show_bug.cgi?id=214402
<rdar://problem/65700381>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

Enable GCM ciphers in WebRTC as done by Chrome.
The default ciphers remain the same so use of these ciphers is opt-in by SFUs.

Manually tested.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::setConfiguration):

8:43 AM Changeset in webkit [283314] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] RootInlineBox should use the first-line style when applicable
https://bugs.webkit.org/show_bug.cgi?id=231003

Reviewed by Antti Koivisto.

This is in preparation for supporting first-line style.

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):

  • layout/formattingContexts/inline/InlineLineBox.h:
  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::build):

8:42 AM Changeset in webkit [283313] by commit-queue@webkit.org
  • 15 edits in trunk

Clean up PrivateClickMeasurement
https://bugs.webkit.org/show_bug.cgi?id=230978

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-30
Reviewed by Kate Cheney.

Source/WebCore:

In r270669 I added sourceDescription and purchaser to PrivateClickMeasurement,
but they're actually only needed for the UIEventAttribution getter on WKWebView.
I moved them to a new struct PrivateClickMeasurementAndMetadata which stores this additional
information only on WebPageProxy instead of all the PCM infrastructure.

I reduced the size of SourceID.id to 1 byte. Now a SourceID is always valid, so we don't need
to check after it has been created. We still check when creating one from parsing web content,
but everywhere else we know that it is valid because of its type.

I removed the default constructor of PrivateClickMeasurement and default parameter values.
There aren't very many places where we construct one except for the tests, and it's good to see
what values we are using so we don't forget anything.

No change in behavior.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::isolatedCopy const):
(WebCore::PrivateClickMeasurement::parseAttributionRequest):

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::SourceID::SourceID):
(WebCore::PrivateClickMeasurement::Priority::Priority):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::AttributionTriggerData):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::isEphemeral const):
(WebCore::PrivateClickMeasurement::setEphemeral):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::decode):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::SourceSite>::emptyValue):
(WebCore::PrivateClickMeasurement::SourceID::isValid const): Deleted.
(WebCore::PrivateClickMeasurement::sourceDescription const): Deleted.
(WebCore::PrivateClickMeasurement::purchaser const): Deleted.

Source/WebKit:

  • NetworkProcess/DatabaseUtilities.cpp:

(WebKit::DatabaseUtilities::buildPrivateClickMeasurementFromDatabase const):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::insertPrivateClickMeasurement):

  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:applicationBundleID:]):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setUIEventAttribution:]):
(-[WKWebView _uiEventAttribution]):
(-[WKWebView _setEphemeralUIEventAttribution:forApplicationWithBundleID:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::createNewPage):

  • UIProcess/WebPageProxy.h:

Tools:

I removed the InvalidSourceID test because it is now impossible to make an invalid source ID
because it uses a uint8_t and allows the values 0-255.

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

8:26 AM Changeset in webkit [283312] by Alan Bujtas
  • 7 edits
    2 adds in trunk

(REGRESSION r282150) Missing background-color on inline box while hovering
https://bugs.webkit.org/show_bug.cgi?id=230977
<rdar://problem/83682736>

Reviewed by Antti Koivisto.

Source/WebCore:

Check if the RenderInline is still eligible for the modern line layout codepath after style change.

Test: fast/inline/inline-box-background-dynamic.html

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForRenderInlineChild):
(WebCore::LayoutIntegration::canUseForChild):
(WebCore::LayoutIntegration::canUseForLineLayoutAfterInlineBoxStyleChange):

  • layout/integration/LayoutIntegrationCoverage.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::canUseForAfterInlineBoxStyleChange):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):

LayoutTests:

  • fast/inline/inline-box-background-dynamic-expected.html: Added.
  • fast/inline/inline-box-background-dynamic.html: Added.
7:53 AM Changeset in webkit [283311] by Antti Koivisto
  • 9 edits
    2 adds in trunk

Source/WebCore:
Regression (283158): Having unused TextIterator instance shouldn't crash if document is mutated
https://bugs.webkit.org/show_bug.cgi?id=231013
rdar://83690985

Reviewed by Alan Bujtas.

By using bundle APIs it is possible to create a retained TextIterator and hit CheckedPtr assertion because layout
is torn down while iterator still exists. This is not dangerous in itself so can be supported.

This patch ensures LineLayout disconnects cleanly from (refcounted) InlineContent.

Test: editing/text-iterator/text-iterator-document-mutation.html

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::clearAndDetach):

Remove all content and clear the LineLayout pointer.

This is safe since iterators refer to content via indexes and any attempt to access
via them will hit nullptrs or vector asserts.

  • layout/integration/LayoutIntegrationInlineContent.h:

(WebCore::LayoutIntegration::InlineContent::lineLayout const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::~LineLayout):
(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::hitTest):
(WebCore::LayoutIntegration::LineLayout::clearInlineContent):

Clear InlineContent before nulling it as it can still be kept alive by iterators.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • testing/Internals.cpp:

(WebCore::Internals::retainTextIteratorForDocumentContent):

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

LayoutTests:
Having unused TextIterator instance shouldn't crash if document is mutated
https://bugs.webkit.org/show_bug.cgi?id=231013
rdar://83690985

Reviewed by Alan Bujtas.

  • editing/text-iterator/text-iterator-document-mutation-expected.txt: Added.
  • editing/text-iterator/text-iterator-document-mutation.html: Added.
6:41 AM Changeset in webkit [283310] by Lauro Moura
  • 27 edits in trunk/LayoutTests

[WPE] Rebaseline a number of text-only text-related failures

Unreviewed test gardening.

Also small spacing diffs like the previous gardening commit.

  • platform/wpe/fast/encoding/invalid-UTF-8-expected.txt:
  • platform/wpe/fast/events/updateLayoutForHitTest-expected.txt:
  • platform/wpe/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/wpe/fast/multicol/vertical-rl/nested-columns-expected.txt:
  • platform/wpe/fast/table/col-and-colgroup-offsets-expected.txt:
  • platform/wpe/fast/text/capitalize-boundaries-expected.txt:
  • platform/wpe/fast/text/emoji-expected.txt:
  • platform/wpe/fast/text/fallback-traits-fixup-expected.txt:
  • platform/wpe/fast/text/fixed-pitch-control-characters-expected.txt:
  • platform/wpe/fast/text/in-rendered-text-rtl-expected.txt:
  • platform/wpe/fast/text/international/bidi-L2-run-reordering-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/wpe/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/wpe/fast/text/international/bidi-innertext-expected.txt:
  • platform/wpe/fast/text/international/bidi-listbox-atsui-expected.txt:
  • platform/wpe/fast/text/international/bidi-listbox-expected.txt:
  • platform/wpe/fast/text/international/bidi-menulist-expected.txt:
  • platform/wpe/fast/text/international/bidi-override-expected.txt:
  • platform/wpe/fast/text/international/rtl-caret-expected.txt:
  • platform/wpe/fast/text/midword-break-after-breakable-char-expected.txt:
  • platform/wpe/fast/text/midword-break-before-surrogate-pair-expected.txt:
  • platform/wpe/fast/text/orientation-sideways-expected.txt:
  • platform/wpe/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
5:47 AM Changeset in webkit [283309] by eocanha@igalia.com
  • 5 edits in trunk

[MSE][GStreamer] Allow infinite duration on MSE
https://bugs.webkit.org/show_bug.cgi?id=231017

Reviewed by Alicia Boya Garcia.

Source/WebCore:

Positive infinite duration isn't properly working on MSE in the glib (GStreamer) ports. When
such a duration is set, nothing happens and the default zero duration remains. This can break
some live streams, because the wrong duration has influence in the real seek target time
used[1], so the seek may end up being done to the wrong time (before the buffered ranges in
my case) and the playback never starts.

[1] https://github.com/WebKit/WebKit/blob/a12c487/Source/WebCore/html/HTMLMediaElement.cpp#L3153

Covered by existing tests.

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::durationChanged): Don't discard the change on infinite duration.

LayoutTests:

  • platform/glib/TestExpectations: mediasource-seekable.html now passes.
  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit-expected.txt: Changed expectations because this test now passes for audio/mpeg <-> audio/mpeg.
5:47 AM Changeset in webkit [283308] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

GraphicsContextGLAttributes::hasFenceSync should be a property of GraphicsContextGLOpenGL
https://bugs.webkit.org/show_bug.cgi?id=230939

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

Move hasFenceSync from GraphicsContextGLAttributes to GraphicsContextGLOpenGL.

No new tests, a refactor.

  • platform/graphics/GraphicsContextGLAttributes.h:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
4:20 AM Changeset in webkit [283307] by youenn@apple.com
  • 8 edits in trunk

Layout Test imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=203256
<rdar://problem/56506063>

Reviewed by Eric Carlson.

Source/WebCore:

Test was flaky for a few reasons:

  • Setting local/remote descriptions may change the ICE transports in use so we need to update the ice connection state when setting local/remote descriptions.
  • We start observing ICE transport backend state asynchronously and we might miss the checking state which can happen very quickly. Synthesize it if needed.
  • We were using the ICE connection state value from the backend as well as computing it from our RTCIceTransport objects. We now fully compute it from RTCIceTransport objects. This ensures we have consistent state between RTCIceTransport and RTCPeerConnection objects with regards to ICE state.

Covered by no longer flaky test.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):
(WebCore::RTCPeerConnection::computeIceConnectionStateFromIceTransports):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/libwebrtc/LibWebRTCIceTransportBackend.cpp:

(WebCore::LibWebRTCIceTransportBackendObserver::start):

LayoutTests:

Mark webrtc/connection-state.html as flaky as it is probably too restrictive and should be reworked.

  • platform/mac-wk2/TestExpectations:

Unflake test.

1:42 AM Changeset in webkit [283306] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed GTK build fix after r283304

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::registerRoot): Use Ref instead of makeRef.

12:45 AM Changeset in webkit [283305] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed GTK build fix after r283304

  • accessibility/atspi/AccessibilityObjectAtspi.h: Move the final keyword to the right place.
12:37 AM Changeset in webkit [283304] by Carlos Garcia Campos
  • 25 edits
    2 copies
    25 adds in trunk/Source

[GTK][a11y] Connect UI process a11y tree with the web process when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=230255

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add AccessibilityAtspi class to connect to the ATSPI DBus service using the address provided. Also add
AccessibilityRootAtspi class that will be the parent object of the accessibility root wrapper, and the children
of the UI process web view. In ATK the AtkSocket and AtkPlug use a private DBus message to send the unique name
of the UI process connection to the web process. That's not possible with GDBus, so we wait for the first
GetState message to be received (which is called right after atk_socket_embed() is called in the UI process) to
get the unique name of the UI process connection. PlatformDisplay has now API to get the DBus address of the
ATSPI service. This is used only in the UI process that sends the address to the web process, so that we don't
need to get it on every web process again.

  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityAtspi.cpp: Added.

(WebCore::AccessibilityAtspi::AccessibilityAtspi):
(WebCore::AccessibilityAtspi::uniqueName const):
(WebCore::AccessibilityAtspi::nullReference const):
(WebCore::AccessibilityAtspi::registerRoot):

  • accessibility/atspi/AccessibilityAtspi.h: Added.
  • accessibility/atspi/AccessibilityRootAtspi.cpp: Added.

(WebCore::AccessibilityRootAtspi::create):
(WebCore::AccessibilityRootAtspi::AccessibilityRootAtspi):
(WebCore::AccessibilityRootAtspi::registerObject):
(WebCore::AccessibilityRootAtspi::setPath):
(WebCore::AccessibilityRootAtspi::setParentPath):
(WebCore::AccessibilityRootAtspi::applicationReference const):
(WebCore::AccessibilityRootAtspi::reference const):

  • accessibility/atspi/AccessibilityRootAtspi.h: Added.

(WebCore::AccessibilityRootAtspi::atspi const):

  • accessibility/atspi/xml/Accessibility.xml: Added.
  • accessibility/atspi/xml/Accessible.xml: Added.
  • accessibility/atspi/xml/Action.xml: Added.
  • accessibility/atspi/xml/Application.xml: Added.
  • accessibility/atspi/xml/Cache.xml: Added.
  • accessibility/atspi/xml/Collection.xml: Added.
  • accessibility/atspi/xml/Component.xml: Added.
  • accessibility/atspi/xml/DeviceEventController.xml: Added.
  • accessibility/atspi/xml/DeviceEventListener.xml: Added.
  • accessibility/atspi/xml/Document.xml: Added.
  • accessibility/atspi/xml/EditableText.xml: Added.
  • accessibility/atspi/xml/Event.xml: Added.
  • accessibility/atspi/xml/Hyperlink.xml: Added.
  • accessibility/atspi/xml/Hypertext.xml: Added.
  • accessibility/atspi/xml/Image.xml: Added.
  • accessibility/atspi/xml/Registry.xml: Added.
  • accessibility/atspi/xml/Selection.xml: Added.
  • accessibility/atspi/xml/Socket.xml: Added.
  • accessibility/atspi/xml/Table.xml: Added.
  • accessibility/atspi/xml/TableCell.xml: Added.
  • accessibility/atspi/xml/Text.xml: Added.
  • accessibility/atspi/xml/Value.xml: Added.
  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay):
(WebCore::PlatformDisplay::accessibilityBusAddress const):

  • platform/graphics/PlatformDisplay.h:

(WebCore::PlatformDisplay::setAccessibilityBusAddress):
(WebCore::PlatformDisplay::plartformAccessibilityBusAddress const):

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::plartformAccessibilityBusAddress const):

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit:

Change BindAccessibilityTree IPC message API to have an async reply. When using ATSPI the UI process replies to
the message including the object path of the AtkSocket, to be used by the web process root object as its parent
property (building the reference with the UI process unique name we get from GetState message).

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Encode accessibilityBusAddress.
(WebKit::WebProcessCreationParameters::decode): Decode accessibilityBusAddress.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindA11y): Set the accessibilityBusAddress to the shared PlatformDisplay so that it doesn't need to be
get again.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::bindAccessibilityTree):
(WebKit::ProvisionalPageProxy::didReceiveMessage):

  • UIProcess/ProvisionalPageProxy.h:

(WebKit::ProvisionalPageProxy::CompletionHandler<void):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::swapToProvisionalPage):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Set the accessibilityBusAddress parameter.

  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::bindAccessibilityTree): Call atk_object_ref_state_set() right after atk_socket_embed() to
make sure that's the first GetState message received by the web process root object. Then build the AtkSocket
path and send the async reply.

  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::bindAccessibilityTree):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::accessibilityRootObject const):

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize): Create the root object and send BindAccessibilityTree to the UI process,
setting the root object parent path using the socket path received from the UI process.

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformInitialize):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::accessibilityAtspi const):

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Create the AccessibilityAtspi instance for the given address.

Note: See TracTimeline for information about the timeline view.