Timeline



Feb 6, 2022:

9:45 PM Changeset in webkit [289200] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r286936): Crash in WebKit::OriginStorageManager::StorageBucket::deleteLocalStorageData
https://bugs.webkit.org/show_bug.cgi?id=236209

Reviewed by Darin Adler.

Add null check for modificationTime returned by FileSystem::fileModificationTime.

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::deleteLocalStorageData):

9:29 PM Changeset in webkit [289199] by Lauro Moura
  • 5 edits in trunk/Source

Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=236216

Source/JavaScriptCore:

This missing include was causing non-unified builds to fail linking
libWPEWebkit with undefined JSC::Structure::get(...) after dropping
gold as the default linker in 246713@main.

  • wasm/js/JSWebAssemblyException.cpp:

Source/WebCore:

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.h:
  • workers/shared/context/SharedWorkerThread.cpp:
9:02 PM Changeset in webkit [289198] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Address a post-commit review comment after r289171.

Reviewed by Darin Adler.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
8:42 PM Changeset in webkit [289197] by Fujii Hironori
  • 2 edits in trunk/Tools

REGRESSION(r288878) webkitpy.layout_tests.controllers.layout_test_finder_legacy_unittest.LayoutTestFinderTests tests are failing with Windows Python
https://bugs.webkit.org/show_bug.cgi?id=236043
<rdar://problem/88449289>

Reviewed by Darin Adler.

Since r288878 started to use pyfakefs, Port.relative_test_filename
didn't work as expected in unit tests with Windows Python because
TestPort.layout_tests_dir returned Unix-style path while the path
name of layout test is Windows-style path.

  • Scripts/webkitpy/port/test.py: Use abspath to convert Unix-style

path to Windows-style for Windows Python.

8:18 PM Changeset in webkit [289196] by Jean-Yves Avenard
  • 3 edits in trunk/LayoutTests

media/media-source/media-webm-vorbis-partial.html is failing
https://bugs.webkit.org/show_bug.cgi?id=236211
rdar://88298267

Reviewed by Darin Adler.

The manifest data was incorrect, the webm cluster size is 10004 bytes long.
Expand the test so it's consistent with the webm/opus one.

  • media/media-source/content/test-vorbis-manifest.json:
  • media/media-source/media-webm-vorbis-partial.html:
7:58 PM Changeset in webkit [289195] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

[GTK][WPE] Unreviewed build fix for Debian Stable after r288872
https://bugs.webkit.org/show_bug.cgi?id=236215

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::timeout):

  • platform/graphics/PlatformDisplay.cpp:
7:44 PM Changeset in webkit [289194] by weinig@apple.com
  • 7 edits in trunk

Update serialization of rgb() functions with none components to latest spec
https://bugs.webkit.org/show_bug.cgi?id=236210

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update tests for new serialization behavior.

  • web-platform-tests/css/css-color/parsing/color-computed.html:
  • web-platform-tests/css/css-color/parsing/color-valid.html:
  • web-platform-tests/css/css-color/parsing/relative-color-computed.html:
  • web-platform-tests/css/css-color/parsing/relative-color-valid.html:

Source/WebCore:

The CSS Color spec now states that rgb() with none components should serialize none
compoonents as 0. This means we can remove a bunch of special serialization code
and use the old code path once again.

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serializationForCSS):
(WebCore::decimalDigit):
(WebCore::fractionDigitsForFractionalAlphaValue):
(WebCore::legacyRGBComponent): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::StringTypeAdapter): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::length const): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::is8Bit const): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::writeTo const): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::buffer const): Deleted.

7:43 PM Changeset in webkit [289193] by weinig@apple.com
  • 3 edits
    10 deletes in trunk/LayoutTests

Remove duplicate tests that have been upstreamed to WPT
https://bugs.webkit.org/show_bug.cgi?id=236214

Reviewed by Darin Adler.

  • fast/css/parsing-color-contrast-expected.txt: Removed.
  • fast/css/parsing-color-contrast.html: Removed.
  • fast/css/parsing-color-function-expected.txt: Removed.
  • fast/css/parsing-color-function.html: Removed.
  • fast/css/parsing-color-mix-expected.txt: Removed.
  • fast/css/parsing-color-mix.html: Removed.
  • fast/css/parsing-lab-colors-expected.txt: Removed.
  • fast/css/parsing-lab-colors.html: Removed.
  • fast/css/parsing-relative-color-syntax-expected.txt: Removed.
  • fast/css/parsing-relative-color-syntax.html: Removed.

These have all been added to wpt's css/css-color test suite.

  • platform/glib/TestExpectations:
  • platform/win/TestExpectations:

Update to account for removed tests.

6:01 PM Changeset in webkit [289192] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] LineBox should hold on to its logical rect
https://bugs.webkit.org/show_bug.cgi?id=236201

Reviewed by Antti Koivisto.

Now that the Display::Line has all visual coords, we don't have a way to retrieve the line's logical rect
(we never did, it just happened to match the Display::Line's rect).
This is also in preparation for adding vertical writing mode support.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalRect const):
(WebCore::Layout::LineBox::setLogicalRect):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::build):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
5:50 PM Changeset in webkit [289191] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Logical rect for text run does not require the parent inline box's FontMetrics:ascent
https://bugs.webkit.org/show_bug.cgi?id=236195

Reviewed by Antti Koivisto.

Let's compute the text run's logical top using the parent inline box geometry only.
This patch also renames InlineLevelBox::baseline to ascent to indicate that it's an ascent value.

  • layout/formattingContexts/inline/InlineLevelBox.h:

(WebCore::Layout::InlineLevelBox::ascent const):
(WebCore::Layout::InlineLevelBox::setAscent):
(WebCore::Layout::InlineLevelBox::baseline const): Deleted.
(WebCore::Layout::InlineLevelBox::setBaseline): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::setBaselineAndLayoutBounds const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeLogicalHeightAndAlign const):
(WebCore::Layout::LineBoxVerticalAligner::simplifiedVerticalAlignment const):
(WebCore::Layout::LineBoxVerticalAligner::computeLineBoxLogicalHeight const):
(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):
(WebCore::Layout::LineBoxVerticalAligner::alignInlineLevelBoxes const):

  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:

(WebCore::Layout::InlineDisplayLineBuilder::build const):

4:38 PM Changeset in webkit [289190] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r289060 - null ptr deref in RenderTreeBuilder::Block::attachIgnoringContinuation
https://bugs.webkit.org/show_bug.cgi?id=234170

Patch by Frédéric Wang <fwang@igalia.com> on 2022-02-03
Reviewed by Antti Koivisto.

Source/WebCore:

When an element with "display: contents" is put into the top layer, its computed style for
the display property becomes "block" [1]. However, RenderTreeUpdater::updateElementRenderer
does not manage well this transition. In particular, a null ptr deref happens for some
special configuration involving a <dialog style="display: contents">. To work around that
issue, always force tearing down renderers when updating an element in the top layer.

[1] https://fullscreen.spec.whatwg.org/#new-stacking-layer

Test: fast/layers/top-layer-display-contents-crash.html

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer): Always force tearing down renderers
for top layer element.

LayoutTests:

Add regression test.

  • fast/css/top-layer-display-contents-crash-expected.txt: Added.
  • fast/css/top-layer-display-contents-crash.html: Added.
4:33 PM Changeset in webkit [289189] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Check if fallback font glyphs initiate ideographic baseline
https://bugs.webkit.org/show_bug.cgi?id=236182

Reviewed by Antti Koivisto.

This patch is in preparation for supporting vertical writing mode.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::fallbackFontHasVerticalGlyph):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
4:16 PM Changeset in webkit [289188] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r288937 - Check AccessibilityRenderObject::m_renderer for null before using it.
https://bugs.webkit.org/show_bug.cgi?id=235950
<rdar://problem/88326438>

Reviewed by Chris Fleizach.

AccessibilityRenderObject::m_renderer is a WeakPtr that can become null
due to a variety of changes in the render tree. This patch fixes a
number of cases where AccessibilityRenderObject::m_renderer was being
used without checking for null which leads to crashes such as:
https://bugs.webkit.org/show_bug.cgi?id=235945
https://bugs.webkit.org/show_bug.cgi?id=235827

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObjectIfExists const):
(WebCore::AccessibilityRenderObject::selection const):
(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::documentLinks):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

4:16 PM Changeset in webkit [289187] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r288874 - AX: nullptr crash under AccessibilityRenderObject::computeAccessibilityIsIgnored
https://bugs.webkit.org/show_bug.cgi?id=235945
rdar://88217815

Reviewed by Andres Gonzalez.

This is similar to https://bugs.webkit.org/show_bug.cgi?id=161276.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

m_renderer is a WeakPtr and can become null during parentObjectUnignored call, same as
the case below.

4:16 PM Changeset in webkit [289186] by Adrian Perez de Castro
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r288672 - jsc_fuz/wktr: crash with new XRReferenceSpaceEvent(, {referenceSpace})
https://bugs.webkit.org/show_bug.cgi?id=235456

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-27
Reviewed by Chris Dumez.

Source/WebCore:

FastMalloc.h specifies that each derived class needs to be annotated as well with WTF_MAKE_ISO_ALLOCATED
if the base class is annotated with WTF_MAKE_ISO_ALLOCATED.

After doing this, the crash in WebCore::Event::operator new(unsigned long) is no longer reproducible.
However, this caused ASSERT(m_transform) to be hit in debug builds with the attached test case.

The XRReferenceSpaceEvent spec specifies the transform attribute as nullable
(https://immersive-web.github.io/webxr/#dictdef-xrreferencespaceeventinit), so this patch updates the
XRReferenceSpaceEvent IDL and implementation to match the spec, and removes the ASSERT accordingly.

Test: webxr/xr-reference-space-event-crash.html

  • Modules/webxr/XRReferenceSpaceEvent.cpp:

(WebCore::XRReferenceSpaceEvent::XRReferenceSpaceEvent):
(WebCore::XRReferenceSpaceEvent::transform const):

  • Modules/webxr/XRReferenceSpaceEvent.h:
  • Modules/webxr/XRReferenceSpaceEvent.idl:

LayoutTests:

  • webxr/xr-reference-space-event-crash.html: Added.
3:45 PM Changeset in webkit [289185] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r288589 - XPath::Step::nodesInAxis(): add null checks after Attr::ownerElement() calls
https://bugs.webkit.org/show_bug.cgi?id=235500

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from https://github.com/web-platform-tests/wpt/pull/32544.

  • web-platform-tests/domxpath/xpath-evaluate-crash-expected.txt: Added.
  • web-platform-tests/domxpath/xpath-evaluate-crash.html: Added.

Source/WebCore:

This patch adds null checks for results of Attr::ownerElement() to avoid crashes
when evaluating XPath expressions with an orphaned Attr as the context node.

Inspired by the recent Blink fix [1], yet this change covers all null pointer
dereferencing sites, as proven by the updated test.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=1236967

Test: imported/w3c/web-platform-tests/domxpath/xpath-evaluate-crash.html

  • xml/XPathStep.cpp:

(WebCore::XPath::Step::nodesInAxis const):

3:42 PM Changeset in webkit [289184] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r288423 - m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.
2:28 PM Changeset in webkit [289183] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add initial ideographic baseline support
https://bugs.webkit.org/show_bug.cgi?id=236177

Reviewed by Antti Koivisto.

This patch is in preparation for supporting vertical writing mode.

We don't know in advance if the style/content requires ideographic or alphabetic baseline, so
either we pre-compute it by going through all the individual runs or post-adjust it
by looping through the newly constructed inline boxes (which most of the time is the root inline box only).
This patch implements the post-adjust version where after constructInlineLevelBoxes(), we call
adjustIdeographicBaselineIfApplicable and reset the ascent/descent values accordingly.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):
(WebCore::Layout::computedHeightAndLayoutBounds):
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForLineBreakBox const):
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const):

2:21 PM Changeset in webkit [289182] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[Wasm] ref.null check should be done first in B3 call_ref
https://bugs.webkit.org/show_bug.cgi?id=236206

Reviewed by Mark Lam.

JSTests:

  • wasm.yaml:
  • wasm/function-references-spec-tests/call-null-ref.wast.js: Added.

Source/JavaScriptCore:

We should first check ref.null before loading data from the reference in B3 call_ref.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addCallRef):

1:10 PM Changeset in webkit [289181] by graouts@webkit.org
  • 4 edits in trunk

[css-logical] Animations should convert logical properties to their physical equivalents
https://bugs.webkit.org/show_bug.cgi?id=218092
<rdar://problem/70579530>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-logical/animation-002-expected.txt:

Source/WebCore:

When computing the keyframe styles for a CSS animation, resolve the logical properties
to their physical equivalent.

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):

12:59 PM Changeset in webkit [289180] by Adrian Perez de Castro
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.34

Merge r288362 - WPT version of css/css-cascade/parsing/layer-import-parsing.html crashes with nullptr
https://bugs.webkit.org/show_bug.cgi?id=235434
rdar://87832940

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/parsing/layer-import-parsing.html:

Update to WPT version.

Source/WebCore:

Test: fast/css/insert-import-rule-crash.html

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::setCSSStyleSheet):

Null check the parent stylesheet. It can be null if the rule has been removed.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::startLoadingDynamicSheet):

Also fix a debug assert in addPendingSheet, this can get called multiple times.

LayoutTests:

  • fast/css/insert-import-rule-crash-expected.txt: Added.
  • fast/css/insert-import-rule-crash.html: Added.
12:46 PM Changeset in webkit [289179] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r288217 - Null check player in taintsOrigin
https://bugs.webkit.org/show_bug.cgi?id=234257

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-19
Reviewed by Youenn Fablet.

Source/WebCore:

Null check player in taintsOrigin.

Test: fast/media/createImageBitmap-from-video-crash.html

  • html/ImageBitmap.cpp:

(WebCore::taintsOrigin):

LayoutTests:

  • fast/media/createImageBitmap-from-video-crash-expected.txt: Added.
  • fast/media/createImageBitmap-from-video-crash.html: Added.
12:42 PM Changeset in webkit [289178] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

[web-animations] DocumentTimeline::computeExtentOfAnimation() should be defined on Styleable
https://bugs.webkit.org/show_bug.cgi?id=236204

Reviewed by Dean Jackson.

There is no need to go through the DocumentTimeline to compute the animated
bounds for a renderer. Styleable is a more appropriate place for this.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::computeExtentOfAnimation const): Deleted.

  • animation/DocumentTimeline.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • style/Styleable.cpp:

(WebCore::Styleable::computeAnimationExtent const):

  • style/Styleable.h:
12:37 PM Changeset in webkit [289177] by Cameron McCormack
  • 3 edits in trunk/Source/JavaScriptCore

Cache the most recent AtomString produced by JSString::toIdentifier
https://bugs.webkit.org/show_bug.cgi?id=236124

Reviewed by Yusuke Suzuki.

JSString::toIdentifier does not store the result of atomizing its string
value, except when it is a rope. We can often end up atomizing the same
JSString a number of times.

This patch caches the last atomized string produced from
JSString::toIdentifier in a given VM. From local testing, this is a 0.5%
Speedometer2 improvement on an M1 MacBook Air, although surprisingly is
neutral on a recent Intel MacBook Pro.

  • runtime/JSString.h:

(JSC::JSRopeString::toIdentifier const):
(JSC::JSString::toIdentifier const):

  • runtime/VM.h:
12:25 PM Changeset in webkit [289176] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Unreviewed non-unified build fix.

  • runtime/DeferredWorkTimer.h: Add missing JSCast.h header inclusion.
12:04 PM Changeset in webkit [289175] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[WASM] Fix clang tidy bugprone-move-forwarding-reference static analyzer warnings in WasmLLIntGenerator.cpp
<https://webkit.org/b/236202>
<rdar://problem/88545940>

Reviewed by Yusuke Suzuki.

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::ControlType::ControlType):

  • Replace WTFMove() with std::forward<>().
11:32 AM Changeset in webkit [289174] by Adrian Perez de Castro
  • 14 edits in releases/WebKitGTK/webkit-2.34

Merge r289129 - [GTK] Crash when starting DND on touchscreen
https://bugs.webkit.org/show_bug.cgi?id=235694

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • page/DragController.cpp:

(WebCore::DragController::startDrag):
Skip drags for touch events on GTK.

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::isTouchEvent const):

Source/WebKit:

Drag-n-drop on touch has never worked correctly in GTK, and is usually
just disabled. Do the same thing and ignore it for synthesized mouse
events.

  • Shared/NativeWebMouseEvent.h:
  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):

  • Shared/WebMouseEvent.cpp:

(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode const):
(WebKit::WebMouseEvent::decode):

  • Shared/WebMouseEvent.h:

(WebKit::WebMouseEvent::isTouchEvent const):

  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTouchRelease):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchDragEnd):
(webkitWebViewBaseSynthesizeMouseEvent):

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/gtk/PointerLockManager.cpp:

(WebKit::PointerLockManager::handleMotion):

Tools:

  • TestWebKitAPI/glib/CMakeLists.txt: Define BUILDING_TestWebKit
11:25 AM Changeset in webkit [289173] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, follow-up after r289172
https://bugs.webkit.org/show_bug.cgi?id=236180

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

11:17 AM Changeset in webkit [289172] by ysuzuki@apple.com
  • 6 edits in trunk

[WTF] Make Bitmap constexpr friendly
https://bugs.webkit.org/show_bug.cgi?id=236180

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch makes Bitmap more constexpr friendly so that JSGlobalObjectFunctions's
functions can compile Bitmap as constexpr, which avoids possible race condition.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::makeCharacterBitmap):
(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WTF:

Attach constexpr to constructor and methods if it is possible.

  • wtf/Bitmap.h:

(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::testAndClear):
(WTF::WordType>::clear):
(WTF::WordType>::invert):
(WTF::WordType>::nextPossiblyUnset const):
(WTF::WordType>::isEmpty const):
(WTF::WordType>::isFull const):
(WTF::WordType>::merge):
(WTF::WordType>::filter):
(WTF::WordType>::exclude):
(WTF::WordType>::subsumes const):
(WTF::WordType>::mergeAndClear):
(WTF::WordType>::setAndClear):
(WTF::= const):
(WTF::=):
(WTF::WordType>::Bitmap): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/Bitmap.cpp:
11:00 AM Changeset in webkit [289171] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Introduce LineBoxBuilder::setBaselineAndLayoutBounds/layoutBoundsMetricsForInlineBox
https://bugs.webkit.org/show_bug.cgi?id=236183

Reviewed by Antti Koivisto.

This patch is in preparation for adding ideographic baseline support. It helps to
simplify the ideographic baseline adjustment by just making the following call

setBaselineAndLayoutBounds(inlineBox, layoutBoundsMetricsForInlineBox(inlineBox, IdeographicBaseline));

to adjust the inline box's vertical geometry when in vertical writing mode.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustLayoutBoundsWithFallbackFonts const):
(WebCore::Layout::layoutBoundsMetricsForInlineBox):
(WebCore::Layout::LineBoxBuilder::setBaselineAndLayoutBounds const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustVerticalGeometryForInlineBoxWithFallbackFonts const): Deleted.
(WebCore::Layout::computedHeightAndLayoutBounds): Deleted.
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForLineBreakBox const): Deleted.
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const): Deleted.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
9:33 AM Changeset in webkit [289170] by Tyler Wilcock
  • 10 edits in trunk

AX: Add internal-only flag to enable WIP display: contents support
https://bugs.webkit.org/show_bug.cgi?id=236179

Reviewed by Chris Fleizach.

Source/WebCore:

Shipping half-done accessibility support for display: contents will
probably be a worse experience than status quo in some scenarios, so
we should gate it behind an internal-only feature flag until we're
confident it's ready.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSDisplayContentsAXSupportEnabled):
(WebCore::RuntimeEnabledFeatures::cssDisplayContentsAXSupportEnabled const):

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences cssDisplayContentsAXSupportEnabled]):
(-[WebPreferences setCSSDisplayContentsAXSupportEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

8:14 AM Changeset in webkit [289169] by Wenson Hsieh
  • 4 edits
    2 adds in trunk/Tools

Adjust platformResetStateToConsistentValues to avoid grabbing the general pasteboard when possible
https://bugs.webkit.org/show_bug.cgi?id=236196

Reviewed by Darin Adler.

For reasons that are still unknown, when running layout tests in the iOS 15.4 simulator, the iOS simulator's
pasted sometimes gets into a state where the work queue (com.apple.pasteboard.PBPasteboardModel-work-queue)
gets permanently stuck while attempting to save pasteboard items.

Once in this state, all subsequent layout tests will time out (regardless of whether the tests themselves
exercise copy and paste), since the process of resetting the harness to a consistent state always tries to clear
the general pasteboard by setting items to an empty array. This means that every layout test that tries to
start after getting into the above state will hang during state reset, before it even gets a chance to load the
layout test.

To avoid this, only clear the general pasteboard if the test actually attempted to add data to the pasteboard.
While this doesn't fix a large number of editing and copy/paste-related layout tests on iOS 15.4, it does allow
us to skip these tests for now and continue running the remaining layout tests.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::pasteboardConsistencyEnforcer):

  • WebKitTestRunner/ios/UIPasteboardConsistencyEnforcer.h: Added.

Add a helper class that listens for notifications whenever the contents of any pasteboard changes; if the name
of the changed pasteboard matches, we clear out its items when -clearPasteboard is invoked. It's critical to
pass only a pasteboard name here instead of a pasteboard itself, since even calling +generalPasteboard causes
the test to hang.

  • WebKitTestRunner/ios/UIPasteboardConsistencyEnforcer.mm: Added.

(-[UIPasteboardConsistencyEnforcer initWithPasteboardName:]):
(-[UIPasteboardConsistencyEnforcer clearPasteboard]):
(-[UIPasteboardConsistencyEnforcer pasteboardChanged:]):

7:39 AM Changeset in webkit [289168] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[css-transitions] remove duplicate code dealing with completed transitions
https://bugs.webkit.org/show_bug.cgi?id=236198

Reviewed by Dean Jackson.

We already mark transitions as completed in DocumentTimeline::transitionDidComplete()
and doing this again in updateCSSTransitionsForStyleableAndProperty() is unnecessary.

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

7:17 AM Changeset in webkit [289167] by graouts@webkit.org
  • 4 edits in trunk

[css-logical] [css-transitions] Resolve logic properties when compiling the list of transition properties
https://bugs.webkit.org/show_bug.cgi?id=236197

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-logical/animation-004-expected.txt:

Source/WebCore:

In r289161 we added initial support for transitions of logical properties. However, we would resolve the
transition-property in updateCSSTransitionsForStyleableAndProperty() whereas we should resolve them earlier
when compiling the list of transition-property values found in the previous style and the new style.

  • style/Styleable.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::compileTransitionPropertiesInStyle):
(WebCore::updateCSSTransitionsForStyleableAndProperty):

4:34 AM Changeset in webkit [289166] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Object literal doesn't properly resolve name clash between an accessor and a constant property
https://bugs.webkit.org/show_bug.cgi?id=220574

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

JSTests:

  • stress/class-static-accessor-name-clash-with-field.js: Added.
  • stress/object-literal-accessor-name-clash-with-constant.js: Added.

Source/JavaScriptCore:

The spec [1] calls DefineOwnProperty? for every property node, whether it's a
getter, a setter, or a value. JSC attempts to reduce emitted bytecodes by setting
up a getter and a setter at once.

However, there is a slower path that exactly matches the spec, which was called only
if a spread syntax or a computed property was encountered. With this patch, the slower
path is also taken in case of a constant property (including a shorthand) with the
same name as an accessor.

That causes an incomplete accessor descriptor to correctly overwrite the existing
data one, which aligns JSC with V8 and SpiderMonkey.

This bug doesn't exist for static class fields and accessors because initialization
of class fields is deferred [2] and they always overwrite eponymous static methods /
accessors, no matter the order in source code. No reproduction for private elements either.

[1]: https://tc39.es/ecma262/#sec-runtime-semantics-methoddefinitionevaluation (step 11 of "get", step 10 of "set")
[2]: https://tc39.es/ecma262/#sec-runtime-semantics-classdefinitionevaluation (step 31.a)

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode):

LayoutTests:

Adjusted test now passes on V8 and SpiderMonkey as well.

  • js/class-syntax-method-names-expected.txt:
  • js/script-tests/class-syntax-method-names.js:

Feb 5, 2022:

4:54 PM Changeset in webkit [289165] by Chris Dumez
  • 19 edits
    2 copies
    4 moves
    7 adds
    16 deletes in trunk/LayoutTests

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

Reviewed by Darin Adler.

Resync web-platform-tests/dom from upstream 893e71aa9c0a97d259ff.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/dom/eventPathRemoved-expected.txt: Added.
  • web-platform-tests/dom/eventPathRemoved.html: Added.
  • web-platform-tests/dom/events/AddEventListenerOptions-once-expected.txt: Removed.
  • web-platform-tests/dom/events/AddEventListenerOptions-passive-expected.txt: Removed.
  • web-platform-tests/dom/events/Event-constructors-expected.txt: Removed.
  • web-platform-tests/dom/events/EventTarget-add-remove-listener-expected.txt: Removed.
  • web-platform-tests/dom/events/EventTarget-addEventListener-expected.txt: Removed.
  • web-platform-tests/dom/events/EventTarget-removeEventListener-expected.txt: Removed.
  • web-platform-tests/dom/events/ProgressEvent-expected.txt: Removed.
  • web-platform-tests/dom/events/ProgressEvent.html: Removed.
  • web-platform-tests/dom/events/document-level-touchmove-event-listener-passive-by-default.tentative-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/events/document-level-touchmove-event-listener-passive-by-default-expected.txt.
  • web-platform-tests/dom/events/document-level-wheel-event-listener-passive-by-default-expected.txt: Removed.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any-expected.txt: Removed.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.worker-expected.txt: Removed.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.window-expected.txt: Added.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.window.html: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.html.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.js.
  • web-platform-tests/dom/events/focus-event-document-move-expected.txt: Removed.
  • web-platform-tests/dom/events/resources/w3c-import.log:
  • web-platform-tests/dom/events/scrolling/overscroll-deltas-expected.txt: Added.
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/idlharness-shadowrealm.window-expected.txt: Added.
  • web-platform-tests/dom/idlharness-shadowrealm.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.worker.html.
  • web-platform-tests/dom/idlharness-shadowrealm.window.js: Added.
  • web-platform-tests/dom/idlharness.any.serviceworker-expected.txt:
  • web-platform-tests/dom/idlharness.any.sharedworker-expected.txt: Added.
  • web-platform-tests/dom/idlharness.any.sharedworker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.html.
  • web-platform-tests/dom/idlharness.any.worker-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/dom/nodes/Document-characterSet-normalization-expected.txt: Removed.
  • web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Removed.
  • web-platform-tests/dom/nodes/Node-insertBefore-expected.txt:
  • web-platform-tests/dom/nodes/Node-insertBefore.html:
  • web-platform-tests/dom/nodes/getElementsByClassNameFrame-expected.txt: Removed.
  • web-platform-tests/dom/ranges/Range-mutations-expected.txt: Removed.
  • web-platform-tests/dom/ranges/Range-mutations.html: Removed.
  • web-platform-tests/dom/ranges/Range-test-iframe-expected.txt: Removed.
  • web-platform-tests/dom/traversal/support/w3c-import.log:
  • web-platform-tests/dom/w3c-import.log:
  • web-platform-tests/interfaces/dom.idl:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
4:14 PM Changeset in webkit [289164] by Alexey Shvayka
  • 3 edits
    1 add in trunk

Attempting to Set? JSArray's read-only "length" should throw even with current Value?
https://bugs.webkit.org/show_bug.cgi?id=221177

Reviewed by Saam Barati.

JSTests:

  • stress/array-prototype-methods-set-length.js: Added.

Source/JavaScriptCore:

As per OrdinarySet algorithm [1]. To achieve that, while ensuring no error is thrown
if read-only "length" isn't actually changed via DefineOwnProperty? [2], this patch
moves newLength == oldLength check to JSArray::defineOwnProperty().

That is guaranteed to be correct because:

a) it's the only caller of setLengthWithArrayStorage() that performs DefineOwnProperty?,

while others implement Set?;

b) there can't possibly be array indices that JSArray::defineOwnProperty() has to remove,

and even the spec a shortcut here [3].

All code paths in pop() / shift() / push() / unshift() are covered by the newly added test,
as well as JSArray's DefineOwnProperty?, while slice() / splice() / etc were vetted to
Set? "length" according to the spec.

Aligns JSC with SpiderMonkey and partly with V8, which is correct for Object.freeze()
but not for Object.defineProperty(array, "length", { writable: false }).

[1]: https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor (step 2.a)
[2]: https://tc39.es/ecma262/#sec-validateandapplypropertydescriptor (step 5 and 7)
[3]: https://tc39.es/ecma262/#sec-arraysetlength (step 11)

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::setLengthWithArrayStorage):

3:42 PM Changeset in webkit [289163] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Handle RenderSVGShape in SVGRenderSupport::applyStrokeStyleToContext()
https://bugs.webkit.org/show_bug.cgi?id=236077

Reviewed by Darin Adler.

Activate path length calculation for RenderSVGShape -- this bit
was missing when the layer-aware RenderSVGShape implementation was
upstreamed in r287832.

Currently the functionality is not observable, as we don't create
LBSE renderers yet.

Covered by existing tests, no change in behaviour.

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::applyStrokeStyleToContext):

3:39 PM Changeset in webkit [289162] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

[WTF] Fix clang tidy bugprone-move-forwarding-reference static analyzer warnings in CompletionHandler.h
<https://webkit.org/b/236181>
<rdar://problem/88529996>

Reviewed by Chris Dumez.

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler<Out):
(WTF::CompletionHandlerWithFinalizer<Out):

  • Replace WTFMove() with std::forward<>().
1:25 PM Changeset in webkit [289161] by graouts@webkit.org
  • 4 edits in trunk

[CSS transition] can't use CSS logical properties in transition syntax
https://bugs.webkit.org/show_bug.cgi?id=232361
<rdar://problem/84958347>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark some WPT progressions. The new FAIL result isn't a real regression, that test
simply passed by virtue of not ever starting a transition for a logical property.

  • web-platform-tests/css/css-logical/animation-004-expected.txt:

Source/WebCore:

Resolve logical properties when considering properties that should trigger a transition.
To do so, we must pass the newly-set style to some methods such that they may be able to
reolve logical properties as well.

  • style/Styleable.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::transitionMatchesProperty):
(WebCore::updateCSSTransitionsForStyleableAndProperty):

11:44 AM Changeset in webkit [289160] by Simon Fraser
  • 5 edits in trunk/Source/WebKit

Refactor RemoteLayerBackingStoreCollection to have a single backing store traversal function
https://bugs.webkit.org/show_bug.cgi?id=236040

Reviewed by Tim Horton.

Instead of traversing m_liveBackingStore and m_unparentedBackingStore in two places (from the volatilityTimerFired()
and from tryMarkAllBackingStoreVolatile()), factor into a single function with two behavior flags.

Also make VolatilityMarkingFlags an OptionSet<> and add an option to consider last display time.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:

(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::tryMarkAllBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileImmediately): Deleted.

10:06 AM Changeset in webkit [289159] by ysuzuki@apple.com
  • 21 edits
    2 copies in trunk

Thread suspend and resume should take a global lock to avoid deadlock
https://bugs.webkit.org/show_bug.cgi?id=236159

Reviewed by Geoffrey Garen.

Source/bmalloc:

Introduce pas_thread_suspend_lock and take it when suspending and resuming threads.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • libpas/src/libpas/pas_scavenger.c:

(scavenger_thread_main):
(pas_scavenger_clear_all_caches):

  • libpas/src/libpas/pas_thread_local_cache.c:

(pas_thread_local_cache_for_all):

  • libpas/src/libpas/pas_thread_local_cache.h:
  • libpas/src/libpas/pas_thread_suspend_lock.c: Copied from Source/WTF/wtf/ThreadMessage.cpp.
  • libpas/src/libpas/pas_thread_suspend_lock.h: Copied from Source/WTF/wtf/ThreadMessage.cpp.

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStack):
(JSC::MachineThreads::tryCopyOtherThreadStacks):

  • heap/MachineStackMarker.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::takeSample):

  • runtime/VMTraps.cpp:
  • wasm/WasmMachineThreads.cpp:

(JSC::Wasm::resetInstructionCacheOnAllThreads):

Source/WTF:

This patch introduces a global lock which should be taken while suspending and resuming a thread.
It is possible that two different threads suspend and resume threads. And if threads suspend
each other without critical section, it can cause a dead lock.

To avoid this problem, we introduce a global lock which should be taken when suspending and resuming
threads. Since libpas is also using thread suspension, we expose a global pas_thread_suspend_lock
when libpas is used, and we use this lock in WTF's Thread suspension code.

  • wtf/ThreadMessage.cpp:

(WTF::sendMessageScoped):

  • wtf/ThreadMessage.h:

(WTF::sendMessage):

  • wtf/Threading.cpp:

(WTF::ThreadSuspendLocker::ThreadSuspendLocker):
(WTF::ThreadSuspendLocker::~ThreadSuspendLocker):

  • wtf/Threading.h:
  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::suspend):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::suspend):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):

Tools:

  • TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:

(runThreadMessageTest):

9:51 AM Changeset in webkit [289158] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Address KeyframeEffect::isAboutToRunAccelerated() FIXME
https://bugs.webkit.org/show_bug.cgi?id=236178

Reviewed by Dean Jackson.

The canBeAccelerated() function catches all the cases to determine whether an effect
can be accelerated prior to being committed to a GraphicsLayerCA animation.

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::isAboutToRunAccelerated const):

8:37 AM Changeset in webkit [289157] by Alan Bujtas
  • 6 edits
    4 adds in trunk

[RenderTreeBuilder] Clean up column spanners when style change affects containing block
https://bugs.webkit.org/show_bug.cgi?id=236042
<rdar://83975391>

Reviewed by Antti Koivisto.

Source/WebCore:

In addition to removing the leftover spanners after style change, this patch also expands on the type of style changes that may affect
subtree state inside a multicolumn flow.

Tests: fast/multicol/leftover-spanner-on-style-change-crash.html

fast/multicol/leftover-spanner-on-style-change-crash2.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::styleDidChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::setStyle):
(WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

  • rendering/RenderElement.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

LayoutTests:

  • fast/multicol/leftover-spanner-on-style-change-crash-expected.txt: Added.
  • fast/multicol/leftover-spanner-on-style-change-crash.html: Added.
  • fast/multicol/leftover-spanner-on-style-change-crash2-expected.txt: Added.
  • fast/multicol/leftover-spanner-on-style-change-crash2.html: Added.
8:35 AM Changeset in webkit [289156] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

[Web Animations] DocumentTimeline::getAnimatedStyle() should be on Styleable
https://bugs.webkit.org/show_bug.cgi?id=236176

Reviewed by Dean Jackson.

There is no need to go through the DocumentTimeline to compute the animated
style for a renderer. Styleable is a more appropriate place for this.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animatedStyleForRenderer): Deleted.

  • animation/DocumentTimeline.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::animatedStyle):

  • style/Styleable.cpp:

(WebCore::Styleable::computeAnimatedStyle const):

  • style/Styleable.h:
8:28 AM Changeset in webkit [289155] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Move all the line box vertical alignment logic to LineBoxVerticalAligner
https://bugs.webkit.org/show_bug.cgi?id=236171

Reviewed by Antti Koivisto.

This patch is in preparation for adding ideographic baseline support (vertical writing mode).

LineBoxBuilder::constructAndAlignInlineLevelBoxes has grown large and it's time to move some
code out of this function (the "align" part). Now all the vertical alignment logic, including
the check for simplified vertical alignment is part of the LineBoxVerticalAligner class.
While in this patch we initiate an extra loop on LineBox::nonRootInlineLevelBoxes(), it may very well be a
perf win for the most common cases where the root inline box has no child inline boxes at all
(as previously we called updateCanUseSimplifiedAlignment() on every text run by passing in the parent inline box).

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes): Deleted.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::LineBoxVerticalAligner):
(WebCore::Layout::LineBoxVerticalAligner::computeLogicalHeightAndAlign const):
(WebCore::Layout::LineBoxVerticalAligner::canUseSimplifiedAlignmentForInlineLevelBox): Deleted.

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.h:

(WebCore::Layout::LineBoxVerticalAligner::formattingContext const):
(WebCore::Layout::LineBoxVerticalAligner::layoutState const):

3:24 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
1:25 AM Changeset in webkit [289154] by commit-queue@webkit.org
  • 16 edits
    3 deletes in trunk

[Flatpak SDK] Update to FDO 21.08.10 and GStreamer 1.20 releases
https://bugs.webkit.org/show_bug.cgi?id=236136

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

Source/WebCore:

Switch GStreamer 1.19 version checks to 1.20 now that it is officially released. Also
include a couple fixes that are needed with GStreamer 1.20 and one that is useful whatever
the GStreamer version:

  • GStreamer 1.20 ships a vp8alphadecodebin element able to handle video/x-vp8 caps, so our libwebrtc decoder factory needs to account for its presence, in addition to vp8dec.
  • With GStreamer 1.20 media/media-source/media-source-seek-back.html started racy crashing in the VideoTrackPrivateGStreamer configuration update, where the track was disconnected (hence its stream was cleared) and then a GObject notification was emitted by decodebin3. We should actually disconnect the GObject signal handlers before clearing the stream, to prevent potential null pointer access.
  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::handleNewDeinterleavePad):

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):
(WebCore::AudioTrackPrivateGStreamer::disconnect):

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromCaps):
(WebCore::VideoTrackPrivateGStreamer::disconnect):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp:

(WebCore::VP8Decoder::Create):

Tools/buildstream:

Update from GStreamer 1.18.5 to 1.20.0, along with the FDO SDK 21.08.10 release, allowing us
to remove 3 vendored patches, all upstreamed.

  • elements/freedesktop-sdk.bst:
  • elements/sdk/gst-libav.bst:
  • elements/sdk/gst-plugins-bad.bst:
  • elements/sdk/gst-plugins-base.bst:
  • elements/sdk/gst-plugins-good.bst:
  • elements/sdk/gst-plugins-ugly.bst:
  • elements/sdk/gstreamer.bst:
  • patches/0001-binutils-import-upstream-patches-for-thin-archive-su.patch: Removed.
  • patches/gst-plugins-bad-0001-debugutils-Add-fakeaudiosink-element.patch: Removed.
  • patches/gstreamer-0001-devicemonitor-Stop-only-the-already-started-provider.patch: Removed.
12:10 AM Changeset in webkit [289153] by beidson@apple.com
  • 18 edits in trunk/Source

Notification refactoring
https://bugs.webkit.org/show_bug.cgi?id=236169

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No behavior change)

Some "no behavior change" refactors broken out from an upcoming larger patch, including:

  • Make Notification objects reliant on ScriptExecutionContext instead of Document
  • Give them a direct path to a NotificationClient instead of having to go through a Page's NotificationController
  • Give ScriptExecutionContext's a sessionID() accessor for future use
  • Some Notification object threading hardening
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::create):
(WebCore::Notification::Notification):
(WebCore::Notification::show):
(WebCore::Notification::close):
(WebCore::Notification::clientFromContext):
(WebCore::Notification::stop):
(WebCore::Notification::dispatchErrorEvent):
(WebCore::Notification::permission):
(WebCore::Notification::requestPermission):
(WebCore::Notification::data const):
(WebCore::Notification::document const): Deleted.

  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationClient.h:
  • Modules/notifications/NotificationData.h:

(WebCore::NotificationData::encode const):
(WebCore::NotificationData::decode):

  • dom/Document.cpp:

(WebCore::Document::notificationClient):
(WebCore::Document::sessionID const):

  • dom/Document.h:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::isServiceWorkerGlobalScope const):
(WebCore::ScriptExecutionContext::notificationClient):
(WebCore::ScriptExecutionContext::sessionID const):

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

(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::generateWorkerParameters):
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::m_notificationClient):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

Feb 4, 2022:

11:26 PM Changeset in webkit [289152] by ysuzuki@apple.com
  • 9 edits in trunk

WeakRef deref can return null instead of undefined
https://bugs.webkit.org/show_bug.cgi?id=235880

Reviewed by Sam Weinig and Alexey Shvayka.

JSTests:

  • stress/v8-finalizationregistry-and-weakref.js:

(setTimeout):

Source/JavaScriptCore:

WeakRef#deref should return undefined[1] when a wrapped object is collected.

[1]: https://tc39.es/ecma262/#sec-weakrefderef

  • runtime/WeakObjectRefPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

LayoutTests:

  • js/script-tests/weakref-async-is-collected.js:

(async test):

  • js/script-tests/weakref-eventually-collects-values.js:

(let.weakRefs.async test):

  • js/script-tests/weakref-finalizationregistry.js:

(async test):

  • js/script-tests/weakref-microtasks-dont-collect.js:

(async test):

10:38 PM Changeset in webkit [289151] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

ch unit fallback size doesn't match the spec
https://bugs.webkit.org/show_bug.cgi?id=236073
<rdar://problem/88513297>

Reviewed by Cameron McCormack.

Source/WebCore:

The spec (https://drafts.csswg.org/css-values-4/#ch) says:

In the cases where it is impossible or impractical to determine the measure of the “0” glyph, it must be assumed to be 0.5em wide

Test: fast/text/ch-unit-without-zero-glyph.html

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeUnzoomedNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):

  • platform/graphics/Font.cpp:

(WebCore::Font::platformGlyphInit):

  • platform/graphics/FontMetrics.h:

(WebCore::FontMetrics::zeroWidth const):
(WebCore::FontMetrics::reset):

LayoutTests:

This can't be a WPT test because it uses an SVG font which we're the only browser to support.

  • fast/text/ch-unit-without-zero-glyph-expected.html: Added.
  • fast/text/ch-unit-without-zero-glyph.html: Added.
10:11 PM Changeset in webkit [289150] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Don't use adattributiond on iOS
https://bugs.webkit.org/show_bug.cgi?id=236157

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-04
Reviewed by John Wilander.

It is still having configuration issues such as rdar://88334217

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):

9:32 PM Changeset in webkit [289149] by eric.carlson@apple.com
  • 9 edits in trunk/Source/WebCore

Update MediaStreamTrack understanding of source type
https://bugs.webkit.org/show_bug.cgi?id=236165
<rdar://problem/88513632>

Reviewed by Jer Noble.

Before bug 235838, RealtimeMediaSource::Type was either Audio or Video. That bug
added new types for screen, window, and system audio capture, but MediaStreamTrack
wasn't updated to account for them. Instead of checking a source's type, use the new
hasAudio and 'hasVideo` methods.

No new tests, covered by existing tests.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::getAudioTracks const):
(WebCore::MediaStream::getVideoTracks const):
(WebCore::MediaStream::filteredTracks const):
(WebCore::MediaStream::trackVectorForType const): Deleted.

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::kind const):
(WebCore::MediaStreamTrack::setContentHint):
(WebCore::MediaStreamTrack::trackEnded):
(WebCore::MediaStreamTrack::isCapturingAudio const):

  • Modules/mediastream/MediaStreamTrack.h:

(WebCore::MediaStreamTrack::hasVideo const):
(WebCore::MediaStreamTrack::hasAudio const):

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setType):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::sourceTypeForDevice):
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Set the correct
source type.

8:04 PM Changeset in webkit [289148] by weinig@apple.com
  • 2 edits in trunk/Source/WTF

Make isNaNConstExpr actually constexpr
https://bugs.webkit.org/show_bug.cgi?id=236162

Reviewed by Darin Adler.

  • wtf/MathExtras.h:

(WTF::isNaNConstExpr): Add missing constexpr.

7:30 PM Changeset in webkit [289147] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

[AX] Stop creating sandbox extensions for preference services
https://bugs.webkit.org/show_bug.cgi?id=232956
<rdar://problem/85260698>

Reviewed by Geoffrey Garen.

Stop creating sandbox extensions for preference services when AX is enabled. There have been many code changes
related to updating AX preferences in the WebContent process, which is why we think this is not needed anymore.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:
6:54 PM Changeset in webkit [289146] by Simon Fraser
  • 9 edits in trunk/Source/WebKit

Lay the groundwork for markLayersVolatileImmediatelyIfPossible() being an asynchronous operation
https://bugs.webkit.org/show_bug.cgi?id=236034

Reviewed by Tim Horton.

With DOM rendering in the GPU Process, markLayersVolatileImmediatelyIfPossible() will need
to do IPC to mark surfaces volatile, and we want that to be async IPC. So change the plumbing from
WebPage to RemoteLayerBackingStoreCollection to be callback-based, with a completion handler.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::tryMarkAllBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatileImmediatelyIfPossible): Deleted.

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::tryMarkLayersVolatile):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::markLayersVolatileImmediatelyIfPossible): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::tryMarkLayersVolatile):
(WebKit::RemoteLayerTreeDrawingArea::markLayersVolatileImmediatelyIfPossible): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::tryMarkLayersVolatile):
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::markLayersVolatileOrRetry):
(WebKit::WebPage::tryMarkLayersVolatileCompletionHandler):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible): Deleted.

  • WebProcess/WebPage/WebPage.h:
5:55 PM Changeset in webkit [289145] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] Use os_unfair_lock instead of spinlock
https://bugs.webkit.org/show_bug.cgi?id=236158

Reviewed by Geoffrey Garen.

os_unfair_lock is very fast while it can properly suspend threads.
A/B test result was neutral on Speedometer2 and JetStream2. So, to
reduce unnecessary CPU spins, let's replace spinlock with os_unfair_lock
if it is supported (if OS is Darwin).

  • libpas/src/libpas/pas_config.h:
4:51 PM Changeset in webkit [289144] by ysuzuki@apple.com
  • 4 edits in trunk/Source/bmalloc

[libpas] allocation failure crash should be PAS_NEVER_INLINE
https://bugs.webkit.org/show_bug.cgi?id=236164

Reviewed by Saam Barati.

We introduce pas_allocation_result_crash_on_error function which can leave OOM crash
information in the crash log. To keep this non-inlined, we annotate it PAS_NEVER_INLINE.

  • libpas/src/libpas/pas_allocation_result.h:

(pas_allocation_result_crash_on_error):

  • libpas/src/libpas/pas_utils.c:

(pas_panic_on_out_of_memory_error):

  • libpas/src/libpas/pas_utils.h:
4:48 PM Changeset in webkit [289143] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add test for the fix in https://bugs.webkit.org/show_bug.cgi?id=235928
https://bugs.webkit.org/show_bug.cgi?id=236152

Patch by Matt Gilligan <matthew_gilligan@apple.com> on 2022-02-04
Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

4:28 PM Changeset in webkit [289142] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] ScreenCaptureKitCaptureSource only outputs one frame
https://bugs.webkit.org/show_bug.cgi?id=236161
<rdar://problem/88510634>

Reviewed by Jer Noble.

Don't WTFMove() a lambda-captured variable if the lambda will be called again.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:

(WebCore::ScreenCaptureKitCaptureSource::frameAvailableHandler):

4:05 PM Changeset in webkit [289141] by jonlee@apple.com
  • 65 edits in trunk/LayoutTests/imported/w3c

Unreviewed, land missing baseline for Shared Worker test.

Patch by Chris Dumez <Chris Dumez> on 2022-02-04

  • web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt: Added.
3:39 PM Changeset in webkit [289140] by commit-queue@webkit.org
  • 19 edits in trunk

REGRESSION(r280077): [GTK] It caused 155 new test failures
https://bugs.webkit.org/show_bug.cgi?id=228153

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-02-04
Reviewed by Michael Catanzaro.

Source/WebKit:

Pass the GTKSettingsState in the WebProcessCreationParameters rather
than the WebPageCreationParameters, to ensure the correct GTK settings
are always applied in a new WebProcess.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::reinitializeWebPage):

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Move initializeGtkSettings() from the InjectedBundle to the test runner,
since GTK settings are automatically propagated from the UI process to
the web processes.

  • WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp:

(WTR::activateFonts):
(WTR::initializeGtkSettings): Deleted.

  • WebKitTestRunner/gtk/main.cpp:

(initializeGtkSettings):
(main):

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations: Garden tests that no longer fail.
  • platform/gtk/css1/font_properties/font-expected.txt:
  • platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
  • platform/wpe/TestExpectations:
3:21 PM Changeset in webkit [289139] by Ben Nham
  • 9 edits
    3 adds in trunk

Add PushDatabase
https://bugs.webkit.org/show_bug.cgi?id=234194

Reviewed by Brady Eidson.

Source/WebCore:

This adds a persistence layer for push subscriptions stored in webpushd. The operations
that we support for now are:

  • inserting a record (used when subscribing)
  • removing a record (used when unsubscribing)
  • retrieving a record (used when receiving a push)
  • enumerating all records by wake state (used to provide the push service the list of all topics that we are subscribed to by wake state)

There are two basic data types in this data model:

  • Subscriptions, which are uniquely identified by (bundleID, serviceWorkerScope). This stores data that is unique to each subscription, e.g. encryption keys and the HTTP endpoint used by the server to send pushes to this subscription.
  • SubscriptionSets, which encompass one or more Subscriptions, and are uniquely identified by (bundleID, securityOrigin). This stores state this common to multiple subscriptions, e.g. whether or not all pushes sent by a particular origin should be non-waking.

For instance, suppose webkit.org in Safari has two service worker registrations scoped to
webkit.org/foo and webkit.org/bar. Each registration has successfully registered for push.
This would result in three rows in the database:

  1. Subscription row identified by (bundleID=safari, scope=webkit.org/foo)
  2. Subscription row identified by (bundleID=safari, scope=webkit.org/bar)
  3. SubscriptionSet row identified by (bundleID=safari, securityOrigin=webkit.org)

Both subscriptions (1) and (2) are part of the subscription set (3).

Covered by new API tests.

  • Headers.cmake:
  • Modules/push-api/PushDatabase.cpp: Added.

(WebCore::PushRecord::isolatedCopy const):
(WebCore::PushRecord::isolatedCopy):
(WebCore::openAndMigrateDatabaseImpl):
(WebCore::openAndMigrateDatabase):
(WebCore::PushDatabase::create):
(WebCore::PushDatabase::PushDatabase):
(WebCore::PushDatabase::~PushDatabase):
(WebCore::PushDatabase::dispatchOnWorkQueue):
(WebCore::PushDatabase::cachedStatementOnQueue):
(WebCore::bindExpirationTime):
(WebCore::expirationTimeFromValue):
(WebCore::completeOnMainQueue):
(WebCore::PushDatabase::insertRecord):
(WebCore::PushDatabase::removeRecordByIdentifier):
(WebCore::makePushRecordFromRow):
(WebCore::PushDatabase::getRecordByTopic):
(WebCore::PushDatabase::getRecordByBundleIdentifierAndScope):
(WebCore::PushDatabase::getIdentifiers):
(WebCore::PushDatabase::getTopicsByWakeState):

  • Modules/push-api/PushDatabase.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Logging.h:
  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::inMemoryPath):
(WebCore::SQLiteDatabase::open):

  • platform/sql/SQLiteDatabase.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/PushDatabase.cpp: Added.

(TestWebKitAPI::getTopicsByWakeStateSync):
(TestWebKitAPI::PushDatabaseTest::insertRecord):
(TestWebKitAPI::PushDatabaseTest::removeRecordByRowIdentifier):
(TestWebKitAPI::PushDatabaseTest::getRecordByTopic):
(TestWebKitAPI::PushDatabaseTest::getRecordByBundleIdentifierAndScope):
(TestWebKitAPI::PushDatabaseTest::getRowIdentifiers):
(TestWebKitAPI::PushDatabaseTest::getTopicsByWakeState):
(TestWebKitAPI::operator==):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::makeTemporaryDatabasePath):
(TestWebKitAPI::TEST):

2:49 PM Changeset in webkit [289138] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r289124.
https://bugs.webkit.org/show_bug.cgi?id=236160

Introduced crash

Reverted changeset:

"[macOS][WP] Add telemetry for syscalls used during launch"
https://bugs.webkit.org/show_bug.cgi?id=235865
https://commits.webkit.org/r289124

2:17 PM Changeset in webkit [289137] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Block access to syscalls that are only used during launch
https://bugs.webkit.org/show_bug.cgi?id=236102
<rdar://problem/88454893>

Reviewed by Brent Fulgham.

On iOS, block access to 12 Unix syscalls and 4 Mach syscalls after the WebContent process has finished launching.
These syscalls are only used during launch.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
1:34 PM Changeset in webkit [289136] by Alan Coon
  • 1 copy in tags/Safari-614.1.2

Tag Safari-614.1.2.

1:29 PM Changeset in webkit [289135] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk

Unreviewed, reverting r289098.
https://bugs.webkit.org/show_bug.cgi?id=236154

caused some unexpected crashes

Reverted changeset:

"[RenderTreeBuilder] Clean up column spanners when style
change affects containing block"
https://bugs.webkit.org/show_bug.cgi?id=236042
https://commits.webkit.org/r289098

11:50 AM Changeset in webkit [289134] by commit-queue@webkit.org
  • 19 edits in trunk/Source

Remember whether cached main resources used private relay when considering whether to call _setPrivacyProxyFailClosed
https://bugs.webkit.org/show_bug.cgi?id=236125

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-04
Reviewed by Geoffrey Garen.

Source/WebCore:

Use an unused bit on disk to remember whether the response was originally received over private relay.
Also, instead of remembering on the main frame's DocumentLoader, remember on the WebProcess.
This makes it so if you enter the same URL twice, which loads from the MemoryCache from different WebCore::Pages, it still remembers.
If you load a different domain, it will load in a different WebProcess anyways, at which point you will not be using the same MemoryCache.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setMainResourceWasPrivateRelayed): Deleted.
(WebCore::DocumentLoader::mainResourceWasPrivateRelayed const): Deleted.

Source/WebKit:

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::makeEntry):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::update):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::Entry):
(WebKit::NetworkCache::Entry::encodeAsStorageRecord const):
(WebKit::NetworkCache::Entry::decodeStorageRecord):

  • NetworkProcess/cache/NetworkCacheEntry.h:

(WebKit::NetworkCache::Entry::privateRelayed const):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):
(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/PrefetchCache.cpp:

(WebKit::PrefetchCache::Entry::Entry):
(WebKit::PrefetchCache::store):

  • NetworkProcess/cache/PrefetchCache.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::addParametersShared):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::setHadMainFrameMainResourcePrivateRelayed):
(WebKit::WebProcess::hadMainFrameMainResourcePrivateRelayed const):

11:46 AM Changeset in webkit [289133] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, reverting r289067.
https://bugs.webkit.org/show_bug.cgi?id=236149

Broke WinCairo LayoutTests

Reverted changeset:

"REGRESSION(r288878)
webkitpy.layout_tests.controllers.layout_test_finder_legacy_unittest.LayoutTestFinderTests
tests are failing with Windows Python"
https://bugs.webkit.org/show_bug.cgi?id=236043
https://commits.webkit.org/r289067

11:36 AM Changeset in webkit [289132] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Input geometry to layout (BoxGeometry) should be all logical
https://bugs.webkit.org/show_bug.cgi?id=236120

Reviewed by Antti Koivisto.

Now (after adding support for inline base direction), it's clear that BoxGeometry, as input to inline line layout,
should hold logical values only (this is somewhat of a revert of r269818).
It also fixes ~40 tests under imported/w3c/web-platform-tests/css/css-writing-modes.

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions): We need logical vs. visual flip based on
in what writing direction the box lives in and not what it establishes for its descendants.

11:19 AM Changeset in webkit [289131] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Cache some expensive AXIsolatedObject properties lazily.
https://bugs.webkit.org/show_bug.cgi?id=236115
<rdar://problem/88467667>

Reviewed by Chris Fleizach.

Some properties can be very expensive to compute for every object, and
may not even be used by the clients. Furthermore
descriptionAttributeValue() and titleAttributeValue() call
textUnderElement() which may crash if it is called in the middle of a
layout. This is the actual cause of
https://bugs.webkit.org/show_bug.cgi?id=220446.
In this patch, we delay the computation and caching of these two
properties until they are first requested. This solves both the wasteful
computation if these properties are not used, and more importantly the
crash in the above mentioned bug.
This is a follow up change to:
https://bugs.webkit.org/show_bug.cgi?id=236053

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::getOrRetrieveStringPropertyValue):
New method to lazily retrieve and cache any String property.
(WebCore::AXIsolatedObject::innerHTML const): Uses getOrRetrieveStringPropertyValue.
(WebCore::AXIsolatedObject::outerHTML const): Dito.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::initializePlatformProperties):
No longer caches the above mentioned properties.
(WebCore::AXIsolatedObject::descriptionAttributeValue const): Uses getOrRetrieveStringPropertyValue.
(WebCore::AXIsolatedObject::titleAttributeValue const): Dito.

10:58 AM Changeset in webkit [289130] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r289069.
https://bugs.webkit.org/show_bug.cgi?id=236146

Introduced sandbox violation

Reverted changeset:

"[iOS][WP] Enable sandbox state rules for Mach messages"
https://bugs.webkit.org/show_bug.cgi?id=236027
https://commits.webkit.org/r289069

10:53 AM Changeset in webkit [289129] by Alexander Mikhaylenko
  • 14 edits in trunk

[GTK] Crash when starting DND on touchscreen
https://bugs.webkit.org/show_bug.cgi?id=235694

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • page/DragController.cpp:

(WebCore::DragController::startDrag):
Skip drags for touch events on GTK.

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::isTouchEvent const):

Source/WebKit:

Drag-n-drop on touch has never worked correctly in GTK, and is usually
just disabled. Do the same thing and ignore it for synthesized mouse
events.

  • Shared/NativeWebMouseEvent.h:
  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):

  • Shared/WebMouseEvent.cpp:

(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode const):
(WebKit::WebMouseEvent::decode):

  • Shared/WebMouseEvent.h:

(WebKit::WebMouseEvent::isTouchEvent const):

  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTouchRelease):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchDragEnd):
(webkitWebViewBaseSynthesizeMouseEvent):

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/gtk/PointerLockManager.cpp:

(WebKit::PointerLockManager::handleMotion):

Tools:

  • TestWebKitAPI/glib/CMakeLists.txt: Define BUILDING_TestWebKit
10:50 AM Changeset in webkit [289128] by chris.reid@sony.com
  • 6 edits in trunk/Source

Revert some structured binding workarounds with Clang
https://bugs.webkit.org/show_bug.cgi?id=236098

Reviewed by Sam Weinig.

Revert structured bindings workarounds made in r288309, r261572, r249524 now that this is fixed in clang.

Source/WebCore:

  • Modules/indexeddb/server/MemoryObjectStore.cpp:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
  • inspector/agents/InspectorNetworkAgent.cpp:

Source/WebKit:

  • NetworkProcess/storage/StorageAreaBase.cpp:
10:42 AM Changeset in webkit [289127] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r289125.
https://bugs.webkit.org/show_bug.cgi?id=236145

Introduced sandbox violation

Reverted changeset:

"[iOS][WP] Block access to syscalls that are only used during
launch"
https://bugs.webkit.org/show_bug.cgi?id=236102
https://commits.webkit.org/r289125

10:23 AM Changeset in webkit [289126] by ntim@apple.com
  • 1 edit
    5 adds in trunk/Websites/webkit.org

Add <dialog> element demos for blog post
https://bugs.webkit.org/show_bug.cgi?id=236143

Reviewed by Simon Fraser.

  • demos/dialog-element/confirmation-dialog-basic.html: Added.
  • demos/dialog-element/confirmation-dialog-form.html: Added.
  • demos/dialog-element/dark-theme.css: Added.

(body):
(@media (prefers-color-scheme: dark) dialog):

  • demos/dialog-element/styled-dialog.html: Added.
10:21 AM Changeset in webkit [289125] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Block access to syscalls that are only used during launch
https://bugs.webkit.org/show_bug.cgi?id=236102
<rdar://problem/88454893>

Reviewed by Brent Fulgham.

On iOS, block access to 12 Unix syscalls and 4 Mach syscalls after the WebContent process has finished launching.
These syscalls are only used during launch.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
10:19 AM Changeset in webkit [289124] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add telemetry for syscalls used during launch
https://bugs.webkit.org/show_bug.cgi?id=235865
<rdar://problem/88228583>

Reviewed by Brent Fulgham.

Add telemetry in the WebContent process' sandbox on macOS to determine which syscalls are used only during launch.

  • WebProcess/com.apple.WebProcess.sb.in:
10:17 AM Changeset in webkit [289123] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

[iOS][macOS] Adjust sysctl sandbox access
https://bugs.webkit.org/show_bug.cgi?id=236082
<rdar://problem/88436174>

Reviewed by Brent Fulgham.

Adjust sysctl sandbox access based on telemetry.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
9:26 AM Changeset in webkit [289122] by weinig@apple.com
  • 9 edits
    2 adds in trunk

Gradients don't correctly interpolate missing/none color components correctly
https://bugs.webkit.org/show_bug.cgi?id=236025

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/gradients/gradient-with-missing-components.html

  • platform/graphics/Color.cpp:

(WebCore::Color::anyComponentIsNone const):

  • platform/graphics/Color.h:

Add helper to check if any component is 'none'.

  • platform/graphics/ColorComponents.h:

(WebCore::operator==):
Update operator== for ColorComponents to be none-aware and treat
two components that are both none as equal.

  • platform/graphics/ColorTypes.h:

(WebCore::assertInRange):
(WebCore::constexprIsNaN): Deleted.
Adopt shared version of the constexpr isnan.

  • platform/graphics/cg/GradientRendererCG.cpp:

(WebCore::anyComponentIsNone):
(WebCore::GradientRendererCG::pickStrategy const):
(WebCore::GradientRendererCG::makeShading const):
Use the CGShaderRef strategy if any component of any stop is none, as it
is the only one that currently supports it correctly. Ensure none is preserved
by utilizing the unresolved component values. This can be optimized in the
future by preprocessing the color stops to pre-resolve the none components,
even allowing the CGGradientRef path to be used for supported cases.

Source/WTF:

Move isNaNConstExpr to MathExtras.h from WebCore so it can used in multiple places.

  • wtf/MathExtras.h:

(WTF::isNaNConstExpr):

LayoutTests:

Add tests of gradients with explicit 'none' components in some of the colors.

  • fast/gradients/gradient-with-missing-components-expected.html: Added.
  • fast/gradients/gradient-with-missing-components.html: Added.
9:06 AM Changeset in webkit [289121] by Kate Cheney
  • 5 edits
    5 adds in trunk

Fix App Privacy Report redirect attribution
https://bugs.webkit.org/show_bug.cgi?id=236111

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/app-privacy-report/user-attribution-redirect.html
Test: http/tests/app-privacy-report/app-attribution-redirect.html

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):

LayoutTests:

  • http/tests/app-privacy-report/resources/redirect.js: Added.
  • http/tests/app-privacy-report/app-attribution-redirect-expected.txt: Added.
  • http/tests/app-privacy-report/app-attribution-redirect.html: Added.
  • http/tests/app-privacy-report/user-attribution-redirect-expected.txt: Added.
  • http/tests/app-privacy-report/user-attribution-redirect.html: Added.
9:04 AM Changeset in webkit [289120] by Chris Dumez
  • 1 edit
    1 add in trunk/LayoutTests/imported/w3c

Unreviewed, land missing baseline for Shared Worker test.

  • web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt: Added.
9:02 AM Changeset in webkit [289119] by Chris Dumez
  • 12 edits
    2 adds in trunk/LayoutTests

Unreviewed, unskip more Shared Worker layout tests on WK2.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/connect-src/shared-worker-connect-src-allowed.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/connect-src/shared-worker-connect-src-blocked.sub-expected.txt: Added.
  • web-platform-tests/eventsource/shared-worker/eventsource-close-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-eventtarget-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-onmessage-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-onopen-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-prototype-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-url-expected.txt:

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
8:50 AM Changeset in webkit [289118] by commit-queue@webkit.org
  • 3 edits in trunk/Tools/buildstream

[Flatpak SDK] Extension points for the Flatpak Sparkle-CDM extension
https://bugs.webkit.org/show_bug.cgi?id=235490

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

Allow Sparkle-CDM extension in Sdk/Platform runtimes. A follow-up patch will add support for
the extension installation.

  • elements/flatpak/platform.bst:
  • elements/flatpak/sdk.bst:
8:41 AM Changeset in webkit [289117] by Alexey Shvayka
  • 145 edits in trunk/Source/WebCore

[WebIDL] Rename Document / ScriptExecutionContext / GlobalObject values of [*CallWith] to include "Current"
https://bugs.webkit.org/show_bug.cgi?id=236137

Reviewed by Chris Dumez.

Before this change, _current_ realm was kinda an implicit default, which didn't
match all newer standards that use _relevant_ per recommendation for spec authors [1].

Making _relevant_ a default isn't feasible either: there are plenty usages of
[CallWith=GlobalObject] for converting JS values to WebIDL, which are correct,
and some older specs like IndexedDB require it.

Since there is no way for static operations / attributes to acquire a _relevant_
realm, this patch asserts that Relevant* values aren't used with them.

That could probably be expanded for constructors, given their "prototype"s are
unforgeable, yet before doing that we should investigate how other vendors are
handling cross-realm NewTarget.

[1] https://html.spec.whatwg.org/multipage/webappapis.html#realms-settings-objects-global-objects:concept-relevant-everything-2

No new tests, no behavior change.

  • Modules/WebGPU/GPUAdapter.idl:
  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/ApplePaySetup.idl:
  • Modules/beacon/Navigator+Beacon.idl:
  • Modules/cache/WindowOrWorkerGlobalScope+Caches.idl:
  • Modules/encryptedmedia/MediaKeyStatusMap.idl:
  • Modules/encryptedmedia/MediaKeySystemAccess.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/encryptedmedia/Navigator+EME.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/FetchBody.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/mediacapabilities/MediaCapabilities.idl:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediasession/MediaMetadata.idl:
  • Modules/mediasession/MediaSessionPlaylistMixin.idl:
  • Modules/mediasource/DOMURL+MediaSource.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpReceiver.idl:
  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransformer.idl:
  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/notifications/Notification.idl:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/PaymentRequest.idl:
  • Modules/paymentrequest/PaymentResponse.idl:
  • Modules/push-api/PushManager.idl:
  • Modules/push-api/PushMessageData.idl:
  • Modules/push-api/PushSubscription.idl:
  • Modules/speech/SpeechRecognition.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/streams/WritableStream.idl:
  • Modules/streams/WritableStreamSink.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioWorkletNode.idl:
  • Modules/webaudio/AudioWorkletProcessor.idl:
  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/IIRFilterNode.idl:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webauthn/PublicKeyCredential.idl:
  • Modules/websockets/WebSocket.idl:
  • Modules/webxr/WebXRFrame.idl:
  • Modules/webxr/WebXRSystem.idl:
  • animation/Animatable.idl:
  • animation/DocumentTimeline.idl:
  • animation/KeyframeEffect.idl:
  • bindings/scripts/CodeGenerator.pm:

(ExtendedAttributeContains):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):
(GenerateCallWith):
(GenerateParametersCheck):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/JS/*: Updated.
  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestLegacyFactoryFunction.idl:
  • bindings/scripts/test/TestMixinInterface.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestPromiseRejectionEvent.idl:
  • bindings/scripts/test/TestSupplemental.idl:
  • crypto/SubtleCrypto.idl:
  • css/DOMCSSNamespace+CSSPainting.idl:
  • css/DOMCSSNamespace+CSSPropertiesandValues.idl:
  • css/DOMCSSNamespace.idl:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.idl:
  • css/FontFace.idl:
  • css/FontFaceSet.idl:
  • dom/AbortController.idl:
  • dom/AbortSignal.idl:
  • dom/BroadcastChannel.idl:
  • dom/Comment.idl:
  • dom/DataTransfer.idl:
  • dom/DataTransferItem.idl:
  • dom/DeviceMotionEvent.idl:
  • dom/DeviceOrientationEvent.idl:
  • dom/Document.idl:
  • dom/DocumentFragment.idl:
  • dom/Element.idl:
  • dom/ErrorEvent.idl:
  • dom/EventTarget.idl:
  • dom/MessageChannel.idl:
  • dom/MessagePort.idl:
  • dom/MouseEvent.idl:
  • dom/Range.idl:
  • dom/Text.idl:
  • fileapi/Blob.idl:
  • fileapi/File.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMURL.idl:
  • html/HTMLAudioElement.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLOptionElement.idl:
  • html/HTMLOutputElement.idl:
  • html/MediaController.idl:
  • html/OffscreenCanvas.idl:
  • html/track/DataCue.idl:
  • html/track/TextTrackCue.idl:
  • html/track/VTTCue.idl:
  • html/track/VTTRegion.idl:
  • inspector/CommandLineAPIHost.idl:
  • inspector/InspectorAuditAccessibilityObject.idl:
  • inspector/InspectorAuditResourcesObject.idl:
  • page/DOMWindow.idl:
  • page/EventSource.idl:
  • page/IntersectionObserver.idl:
  • page/NavigatorServiceWorker.idl:
  • page/NavigatorShare.idl:
  • page/Performance+UserTiming.idl:
  • page/PerformanceMark.idl:
  • page/PerformanceMeasure.idl:
  • page/PerformanceObserver.idl:
  • page/RemoteDOMWindow.idl:
  • page/ResizeObserver.idl:
  • page/WindowOrWorkerGlobalScope.idl:
  • testing/Internals.idl:
  • testing/ServiceWorkerInternals.idl:
  • testing/WebXRTest.idl:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.idl:
  • workers/service/FetchEvent.idl:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.idl:
  • workers/service/ServiceWorkerClients.idl:
  • workers/service/ServiceWorkerRegistration.idl:
  • workers/shared/SharedWorker.idl:
  • worklets/PaintWorkletGlobalScope.idl:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequest.idl:
8:35 AM Changeset in webkit [289116] by Chris Dumez
  • 48 edits
    32 copies
    11 moves
    46 adds
    22 deletes in trunk

Fix WPT test importer and resync web-platform-tests/workers from upstream
https://bugs.webkit.org/show_bug.cgi?id=236101

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync web-platform-tests/workers from upstream a9f3552a2b771569201879ef1.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/workers: Updated.

Tools:

Fix WPT test importer because:

  1. It wasn't creating tests with sharedworker.html suffix for .js tests with:
    • META: global=sharedworker
    • META: global=worker
  2. It was wrongly creating tests with a serviceworker.html suffix for .js tests with:
    • META: global=dedicatedworker
    • META without a global (upstream WPT only generates a .html and .worker.html in such case)
  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.init):
(TestImporter.readEnvironmentsForTemplateTest):

LayoutTests:

8:20 AM Changeset in webkit [289115] by Chris Dumez
  • 2 edits
    3 deletes in trunk/LayoutTests

Unreviewed, drop badly imported test due to WPT importer bug getting fixed in Bug 236101.

LayoutTests/imported/w3c:

  • web-platform-tests/css/filter-effects/idlharness.any.serviceworker-expected.txt: Removed.
  • web-platform-tests/css/filter-effects/idlharness.any.serviceworker.html: Removed.

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/idlharness.any.serviceworker-expected.txt: Removed.
8:06 AM Changeset in webkit [289114] by Ben Nham
  • 2 edits
    7 adds in trunk/Source/WebKit

Import APSConnection-related SPI
https://bugs.webkit.org/show_bug.cgi?id=235856

Reviewed Youenn Fablet.

This imports the SPI declarations necessary to build against ApplePushService in WebKit. It
also includes a PushServiceConnection interface that can sit in front of APSConnection, and
a fake interface that will be fleshed out for testing purposes.

  • Platform/spi/Cocoa/ApplePushServiceSPI.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/ApplePushServiceConnection.h: Added.
  • webpushd/ApplePushServiceConnection.mm: Added.

(-[_WKAPSConnectionDelegate initWithConnection:]):
(-[_WKAPSConnectionDelegate connection:didReceivePublicToken:]):
(-[_WKAPSConnectionDelegate connection:didReceiveIncomingMessage:]):
(WebPushD::ApplePushServiceConnection::ApplePushServiceConnection):
(WebPushD::makeTokenInfo):
(WebPushD::ApplePushServiceConnection::subscribe):
(WebPushD::ApplePushServiceConnection::unsubscribe):
(WebPushD::ApplePushServiceConnection::enabledTopics):
(WebPushD::ApplePushServiceConnection::ignoredTopics):
(WebPushD::ApplePushServiceConnection::opportunisticTopics):
(WebPushD::ApplePushServiceConnection::nonWakingTopics):
(WebPushD::ApplePushServiceConnection::setEnabledTopics):
(WebPushD::ApplePushServiceConnection::setIgnoredTopics):
(WebPushD::ApplePushServiceConnection::setOpportunisticTopics):
(WebPushD::ApplePushServiceConnection::setNonWakingTopics):
(WebPushD::ApplePushServiceConnection::setTopicLists):

  • webpushd/MockPushServiceConnection.h: Added.
  • webpushd/MockPushServiceConnection.mm: Added.

(WebPushD::MockPushServiceConnection::MockPushServiceConnection):
(WebPushD::MockPushServiceConnection::subscribe):
(WebPushD::MockPushServiceConnection::unsubscribe):
(WebPushD::MockPushServiceConnection::enabledTopics):
(WebPushD::MockPushServiceConnection::ignoredTopics):
(WebPushD::MockPushServiceConnection::opportunisticTopics):
(WebPushD::MockPushServiceConnection::nonWakingTopics):
(WebPushD::MockPushServiceConnection::setEnabledTopics):
(WebPushD::MockPushServiceConnection::setIgnoredTopics):
(WebPushD::MockPushServiceConnection::setOpportunisticTopics):
(WebPushD::MockPushServiceConnection::setNonWakingTopics):
(WebPushD::MockPushServiceConnection::setTopicLists):

  • webpushd/PushServiceConnection.h: Added.
  • webpushd/PushServiceConnection.mm: Added.

(WebPushD::PushServiceConnection::startListeningForPushMessages):
(WebPushD::PushServiceConnection::didReceivePushMessage):

8:05 AM Changeset in webkit [289113] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS][macOS] Adjust sandbox access to system-fcntl
https://bugs.webkit.org/show_bug.cgi?id=236095
<rdar://problem/88448068>

Reviewed by Brent Fulgham.

Adjust sandbox access in the WebContent process to system-fcntl based on telemetry.
This patch is blocking access to some unused fcntl commands, as well as blocking
access to fcntl commands that are only used when AppCache is enabled. This is
achieved by using sandbox state variables.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
7:47 AM Changeset in webkit [289112] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk

Unreviewed, reverting r288996.
https://bugs.webkit.org/show_bug.cgi?id=236141

Causing debug asserts

Reverted changeset:

"No breakpoints hit on github.com, and some are invalid"
https://bugs.webkit.org/show_bug.cgi?id=235607
https://commits.webkit.org/r288996

6:56 AM Changeset in webkit [289111] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename CompileJSCWithoutPatch
https://bugs.webkit.org/show_bug.cgi?id=236104
<rdar://problem/88455463>

Reviewed by Aakash Jain.

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

(CompileWebKit.evaluateCommand):
(AnalyzeCompileWebKitResults.analyzeResults):
(CompileJSCWithoutChange): Renamed from CompileJSCWithoutPatch.
(CompileJSCWithoutPatch): Rename to CompileJSCWithoutChange.

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

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

6:50 AM Changeset in webkit [289110] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename RunWebKitTestsWithoutPatch
https://bugs.webkit.org/show_bug.cgi?id=236107
<rdar://problem/88459194>

Reviewed by Aakash Jain.

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

(ReRunWebKitTests.evaluateCommand):
(RunWebKitTestsWithoutChange): Renamed from RunWebKitTestsWithoutPatch.
(RunWebKitTestsWithoutPatch): Renamed to RunWebKitTestsWithoutChange.
(RunWebKitTestsWithoutChangeRedTree): Renamed from RunWebKitTestsWithoutPatchRedTree.
(RunWebKitTestsWithoutPatchRedTree): Renamed to RunWebKitTestsWithoutChangeRedTree.

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

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

5:52 AM Changeset in webkit [289109] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GTK][WPE] Use a Vector when defining the EGLImage attributes in the createImage
https://bugs.webkit.org/show_bug.cgi?id=236133

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-02-04
Reviewed by Žan Doberšek.

No new tests, no change in behaviour

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createImage const): Replace the parameter
of createImage with a Vector, and use map to transform in case we
have to use the extension function.

  • platform/graphics/egl/GLContextEGL.h: Ditto.
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer):
Fix a warning caused by the order of the parameter initialization.

  • platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.cpp:

(WebCore::TextureMapperPlatformLayerDmabuf::validateTexture):
Replace the C array with a Vector object.

3:58 AM Changeset in webkit [289108] by svillar@igalia.com
  • 6 edits in trunk

HTMLMediaElement should dispatch the resize event asynchronously
https://bugs.webkit.org/show_bug.cgi?id=230895

Reviewed by Darin Adler.

Source/WebCore:

The HTMLMediaElement is currently queueing a task to dispatch the resize event in the post layout phase.
There is no need to run it synchronously and we could move it to another queue were it will be run
asynchronously as it was done for other similar tasks in the past.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::layoutSizeChanged):

LayoutTests:

  • media/modern-media-controls/media-controller/media-controller-resize.html: Remove the event

listener to avoid an extra notification.

  • platform/mac/TestExpectations: Unskipped tests that pass now.
  • platform/wincairo/TestExpectations: Ditto.
12:14 AM Changeset in webkit [289107] by Pablo Saavedra
  • 2 edits in trunk/Source/WebCore

Fix for non-unified builds after r286821 (245056@main)
https://bugs.webkit.org/show_bug.cgi?id=236129

Unreviewed, fixes missing header.

  • workers/shared/SharedWorkerScriptLoader.h:

Feb 3, 2022:

11:16 PM Changeset in webkit [289106] by Chris Lord
  • 15 edits
    5 adds in trunk/Source/WebCore

[GTK][WPE] Use dmabuf when possible to transfer ANGLE rendering to the compositor
https://bugs.webkit.org/show_bug.cgi?id=235946

Reviewed by Žan Doberšek.

Use dmabuf when available to transfer ANGLE WebGL rendering contents
to the compositor.

No new tests, no change in behaviour.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • platform/TextureMapper.cmake:
  • platform/graphics/OpenGLShims.cpp:

(WebCore::initializeOpenGLShims):

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

(WebCore::GraphicsContextGLANGLE::prepareTextureImpl):

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createImage const):
(WebCore::GLContextEGL::destroyImage const):

  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/gbm/GBMDevice.cpp: Added.

(WebCore::threadSpecificDevice):
(WebCore::GBMDevice::get):
(WebCore::GBMDevice::GBMDevice):
(WebCore::GBMDevice::~GBMDevice):

  • platform/graphics/gbm/GBMDevice.h: Added.

(WebCore::GBMDevice::device const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLEPipe.cpp:

(Nicosia::GCGLANGLEPipeSource::swapBuffersIfNeeded):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::EGLImageBacking):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::~EGLImageBacking):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::format const):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::stride const):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::releaseResources):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::reset):
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::reshapeDisplayBufferBacking):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:

(WebCore::TextureMapperPlatformLayerBuffer::textureVariant const):
(WebCore::TextureMapperPlatformLayerBuffer::size const):
(WebCore::TextureMapperPlatformLayerBuffer::textureVariant): Deleted.

  • platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.cpp: Added.

(WebCore::createFourCC):
(WebCore::fourCCToGLFormat):
(WebCore::formatHasAlpha):
(WebCore::TextureMapperPlatformLayerDmabuf::TextureMapperPlatformLayerDmabuf):
(WebCore::m_fd):
(WebCore::TextureMapperPlatformLayerDmabuf::~TextureMapperPlatformLayerDmabuf):
(WebCore::TextureMapperPlatformLayerDmabuf::validateTexture):
(WebCore::TextureMapperPlatformLayerDmabuf::paintToTextureMapper):
(WebCore::TextureMapperPlatformLayerDmabuf::clone):

  • platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.h: Added.
10:58 PM Changeset in webkit [289105] by jonlee@apple.com
  • 16 edits in trunk/LayoutTests/imported/w3c

Pull selective WPT tests in preparation of https://bugs.webkit.org/show_bug.cgi?id=235685

These remove the empty <meta name="flags">.

  • web-platform-tests/css/css-flexbox/align-content-001.htm:
  • web-platform-tests/css/css-flexbox/align-content-002.htm:
  • web-platform-tests/css/css-flexbox/align-content-003.htm:
  • web-platform-tests/css/css-flexbox/align-content-004.htm:
  • web-platform-tests/css/css-flexbox/align-content-005.htm:
  • web-platform-tests/css/css-flexbox/align-items-001.htm:
  • web-platform-tests/css/css-flexbox/align-items-002.htm:
  • web-platform-tests/css/css-flexbox/align-items-003.htm:
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-017.html:
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-018.html:
  • web-platform-tests/css/css-values/angle-units-002.html:
  • web-platform-tests/css/css-values/angle-units-003.html:
  • web-platform-tests/css/css-values/angle-units-004.html:
  • web-platform-tests/css/css-values/angle-units-005.html:

Convert tabs to spaces.

  • web-platform-tests/css/css-variables/vars-background-shorthand-001.html:
10:37 PM Changeset in webkit [289104] by rniwa@webkit.org
  • 14 edits in trunk/Source

Delete SelectionAcrossShadowBoundariesEnabled
https://bugs.webkit.org/show_bug.cgi?id=235993

Reviewed by Darin Adler.

Source/WebCore:

Delete this runtime flag which has always been enabled for a while.

  • editing/Editor.cpp:

(WebCore::Editor::selectedText const):
(WebCore::Editor::selectedTextForDataTransfer const):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • editing/libwpe/EditorLibWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::writeImageToPasteboard):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences keygenElementEnabled]):
(-[WebPreferences selectionAcrossShadowBoundariesEnabled]):
(-[WebPreferences setSelectionAcrossShadowBoundariesEnabled:]):
(-[WebPreferences isXSSAuditorEnabled]):

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
10:35 PM Changeset in webkit [289103] by Megan Gardner
  • 4 edits in trunk/Source/WebKit

Plumb pointer type though native to web events.
https://bugs.webkit.org/show_bug.cgi?id=236118

Reviewed by Tim Horton.

  • Shared/NativeWebMouseEvent.h:
  • Shared/ios/NativeWebMouseEventIOS.mm:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer createMouseEventWithType:wasCancelled:]):

7:13 PM Changeset in webkit [289102] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Add pen type for HitTestRequest.
https://bugs.webkit.org/show_bug.cgi?id=236112

Reviewed by Tim Horton.

  • rendering/HitTestRequest.h:

(WebCore::HitTestRequest::mouseEvent const):
(WebCore::HitTestRequest::penEvent const):

6:53 PM Changeset in webkit [289101] by mmaxfield@apple.com
  • 5 edits
    7 adds in trunk

Two bopomofo tone marks are not moved to the correct place in vertical text with a particular bopomofo font
https://bugs.webkit.org/show_bug.cgi?id=235257
<rdar://problem/87625596>

Reviewed by Darin Adler.

.:

Thank you so much to Bobby Tung and But Ko for reporting this bug and providing a test font for it!!!

  • metadata/contributors.json:

Source/WebCore:

Turns out one of our character data tables was missing some characters.

I really dislike these kinds of fixes, because it's just perpetuating the fact that WebKit has big tables of characters
in its source code. A long-term fix would be a systemic replacement of this entire table with either Unicode property
lookup, or more ideally, removing the need for it in the first place. Unfortunately, at this point in the release cycle,
this fix probably needs to be smaller and more targetted.

Tests: fast/text/bopomofo-tone-marks-2.html

fast/text/bopomofo-tone-marks.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::isCJKIdeographOrSymbol):

LayoutTests:

This can't be a WPT test because we only have permission to add the test font to the WebKit repository.

Thank you so much to Bobby Tung and But Ko for reporting this bug and providing a test font for it!!!

  • fast/text/bopomofo-tone-marks-2-expected-mismatch.html: Added.
  • fast/text/bopomofo-tone-marks-2.html: Added.
  • fast/text/bopomofo-tone-marks-expected-mismatch.html: Added.
  • fast/text/bopomofo-tone-marks.html: Added.
  • fast/text/resources/BopomofoGposSubset-Regular/BopomofoGposSubset-Regular.ttf: Added.
  • fast/text/resources/BopomofoGposSubset-Regular/LICENSE: Added.
6:45 PM Changeset in webkit [289100] by Wenson Hsieh
  • 12 edits in trunk/Source

Teach VideoFullscreenInterface to keep track of its corresponding MediaPlayer's MediaPlayerIdentifier
https://bugs.webkit.org/show_bug.cgi?id=236090

Reviewed by Eric Carlson.

Source/WebCore:

Add plumbing for an optional MediaPlayerIdentifier through the video fullscreen model. This identifier is
invalidated upon loadstart, and updated once we observe loadedmetadata, which ensures that if the media
engine (and media player) changes out from underneath the video fullscreen model, we still keep the new player
ID up to date.

See WebKit/ChangeLog for more details.

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModelClient::setPlayerIdentifier):

  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::updateForEventName):
(WebCore::VideoFullscreenModelVideoElement::observedEventNames):

Additionally listen for loadstartEvent and loadedmetadataEvent (see above).

(WebCore::VideoFullscreenModelVideoElement::setPlayerIdentifier):

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/mac/VideoFullscreenInterfaceMac.h:

(WebCore::VideoFullscreenInterfaceMac::playerIdentifier const):

Source/WebKit:

Add an IPC message between VideoFullscreenManager and VideoFullscreenManagerProxy to update the media player ID
corresponding to a given PlaybackSessionContextIdentifier. This is sent if the underlying media player changes
(and subsequently fires loadstart and loadedmetadata events), and also sent upon entering fullscreen video.

In a future patch, this mechanism will be used to teach VideoFullscreenManagerProxy to grab an image bitmap from
the GPU process for a given PlaybackSessionContextIdentifier.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::setPlayerIdentifier):

  • WebProcess/cocoa/VideoFullscreenManager.h:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenInterfaceContext::setPlayerIdentifier):
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::setPlayerIdentifier):

6:26 PM Changeset in webkit [289099] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r289096.
https://bugs.webkit.org/show_bug.cgi?id=236114

will break build

Reverted changeset:

"[WebAuthn] Remove misspelled constant
"LocalAuthenticatiorAccessGroup""
https://bugs.webkit.org/show_bug.cgi?id=235894
https://commits.webkit.org/r289096

6:24 PM Changeset in webkit [289098] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[RenderTreeBuilder] Clean up column spanners when style change affects containing block
https://bugs.webkit.org/show_bug.cgi?id=236042
<rdar://83975391>

Reviewed by Antti Koivisto.

Source/WebCore:

In addition to removing the leftover spanners after style change, this patch also expands on the type of style changes that may affect the subtree state inside a multicolumn flow.

Test: fast/multicol/leftover-spanner-on-style-change-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::styleDidChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::setStyle):
(WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

  • rendering/RenderElement.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

LayoutTests:

  • fast/multicol/leftover-spanner-on-style-change-crash-expected.txt: Added.
  • fast/multicol/leftover-spanner-on-style-change-crash.html: Added.
6:22 PM Changeset in webkit [289097] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AXIsolatedTree::updateChildren removes subtrees that should instead be moved
https://bugs.webkit.org/show_bug.cgi?id=236057

Reviewed by Andres Gonzalez.

In AXIsolatedTree::updateChildren, we can sometimes remove subtrees from the nodemap that are
queued to be added somewhere else in the tree. Specifically, this can happen when:

  1. Object 123 is considered to be a new child based on the live AX tree, and we collect node changes for it.
  2. Object 123 is currently a member of a subtree of some other object in oldChildrenIDs.
  3. Because of 2, Object 123 is removed from the node map in removeSubtreeFromNodeMap
  4. We try to queue the addition of this node somewhere in tree in queueChange, but ASSERT because Object 123 is not in the nodemap anymore.

This causes us to hit ASSERT(m_nodeMap.contains(objectID) in AXIsolatedTree::queueChange(const NodeChange&).

This patch fixes this problem by keeping track of the IDs we are queuing for addition
to the tree and making sure we don't remove those IDs.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::queueChange):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::nodeAncestryChanges):
Keep track of IDs we are queueing changes for.
(WebCore::AXIsolatedTree::updateChildren):
Keep track of IDs we are queueing changes for and don't remove them,
even if they are part of oldChildrenIDs.
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
Accept another paramter listing IDs to keep.
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
Keep track of IDs we are queueing changes for.

6:09 PM Changeset in webkit [289096] by J Pascoe
  • 2 edits in trunk/Source/WebCore

[WebAuthn] Remove misspelled constant "LocalAuthenticatiorAccessGroup"
https://bugs.webkit.org/show_bug.cgi?id=235894
rdar://88104045

Reviewed by Darin Adler.

This change removes a constant with a misspelled variable name after all
downstream usage is removed.

  • Modules/webauthn/WebAuthenticationConstants.h:
5:41 PM Changeset in webkit [289095] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.8

Tag Safari-613.1.14.5.8.

5:40 PM Changeset in webkit [289094] by Russell Epstein
  • 20 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r289091. rdar://problem/88387438

WebKit projects have incorrect install name for the frameworks for Catalyst builds with the system content path
https://bugs.webkit.org/show_bug.cgi?id=236105

Reviewed by Saam Barati.

Source/JavaScriptCore:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to use JAVASCRIPTCORE_FRAMEWORKS_DIR, which doesn't have the
system content path prefix.

  • Configurations/JavaScriptCore.xcconfig:

Source/ThirdParty/ANGLE:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to not use the system content path prefix.

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to not use the system content path prefix.

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

Added WK_USE_ALTERNATE_FRAMEWORKS_DIR based computation to the WEBCORE_FRAMEWORKS_DIR production.
This allowed the simplification of NORMAL_PRODUCTION_FRAMEWORKS_DIR.
Changed DYLIB_INSTALL_NAME_BASE_PLATFORM for Catalyst builds to use WEBCORE_FRAMEWORKS_DIR.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Refactored build variable computation so that WEBKIT_FRAMEWORKS_DIR doesn't have the system content path
prepended. This refactoring includes:

  • Created INSTALL_PATH_PREFIX to have the system content path when in use.
  • Changed WEBKIT_FRAMEWORKS_DIR computation to eliminate the inclusion the SYSTEM_CONTENT_PATH.
  • Added INSTALL_PATH_PREFIX to the various INSTALL_PATH computations.
  • Changed the various DYLIB_INSTALL_NAME_BASE computations for Catalyst builds to use WEBKIT_FRAMEWORKS_DIR.
  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/Shim.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:

Source/WebKitLegacy/mac:

Refactored build variable computation so that WEBKIT_LEGACY_FRAMEWORKS_DIR doesn't have the system content path
prepended. This refactoring includes:

  • Created INSTALL_PATH_PREFIX to have the system content path when in use.
  • Changed WEBKIT_LEGACY_FRAMEWORKS_DIR computation to eliminate the inclusion the SYSTEM_CONTENT_PATH.
  • Reworked INSTALL_PATH to use INSTALL_PATH_PREFIX in the main productions instead of each of variants.
  • Changed DYLIB_INSTALL_NAME_BASE computation for Catalyst builds to use WEBKIT_LEGACY_FRAMEWORKS_DIR.
  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

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

5:32 PM Changeset in webkit [289093] by Elliott Williams
  • 7 edits in trunk/Tools

[XCBuild] Add headers-only dependencies to projects in Tools/
https://bugs.webkit.org/show_bug.cgi?id=235751

Reviewed by Alexey Proskuryakov.

Many projects in Tools/ depend on WebKit.framework or other products which are upstream in
the build graph. In Make-based sequential builds, WebKit and friends would always build
before Tools; in workspaces, the targets may build in any order.

Add "product dependencies" build phases to targets which do not express
their dependencies through linker options, in the same manner as
https://commits.webkit.org/246026@main.

The legacy build system doesn't understand the "Product Dependencies" phase and thinks we're
trying to copy our own build products, so add an EXCLUDED_SOURCE_FILE_NAMES setting as a
workaround.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Add product dependencies.
  • DumpRenderTree/mac/Configurations/Base.xcconfig: Add WK_WHICH_BUILD_SYSTEM.
  • DumpRenderTree/mac/Configurations/DumpRenderTreeLibrary.xcconfig: Legacy support.
  • TestWebKitAPI/Configurations/Base.xcconfig: Legacy support.
  • TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Add WK_WHICH_BUILD_SYSTEM.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add product dependencies.
5:27 PM Changeset in webkit [289092] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.8

5:16 PM Changeset in webkit [289091] by msaboff@apple.com
  • 20 edits in trunk/Source

WebKit projects have incorrect install name for the frameworks for Catalyst builds with the system content path
https://bugs.webkit.org/show_bug.cgi?id=236105

Reviewed by Saam Barati.

Source/JavaScriptCore:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to use JAVASCRIPTCORE_FRAMEWORKS_DIR, which doesn't have the
system content path prefix.

  • Configurations/JavaScriptCore.xcconfig:

Source/ThirdParty/ANGLE:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to not use the system content path prefix.

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to not use the system content path prefix.

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

Added WK_USE_ALTERNATE_FRAMEWORKS_DIR based computation to the WEBCORE_FRAMEWORKS_DIR production.
This allowed the simplification of NORMAL_PRODUCTION_FRAMEWORKS_DIR.
Changed DYLIB_INSTALL_NAME_BASE_PLATFORM for Catalyst builds to use WEBCORE_FRAMEWORKS_DIR.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Refactored build variable computation so that WEBKIT_FRAMEWORKS_DIR doesn't have the system content path
prepended. This refactoring includes:

  • Created INSTALL_PATH_PREFIX to have the system content path when in use.
  • Changed WEBKIT_FRAMEWORKS_DIR computation to eliminate the inclusion the SYSTEM_CONTENT_PATH.
  • Added INSTALL_PATH_PREFIX to the various INSTALL_PATH computations.
  • Changed the various DYLIB_INSTALL_NAME_BASE computations for Catalyst builds to use WEBKIT_FRAMEWORKS_DIR.
  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/Shim.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:

Source/WebKitLegacy/mac:

Refactored build variable computation so that WEBKIT_LEGACY_FRAMEWORKS_DIR doesn't have the system content path
prepended. This refactoring includes:

  • Created INSTALL_PATH_PREFIX to have the system content path when in use.
  • Changed WEBKIT_LEGACY_FRAMEWORKS_DIR computation to eliminate the inclusion the SYSTEM_CONTENT_PATH.
  • Reworked INSTALL_PATH to use INSTALL_PATH_PREFIX in the main productions instead of each of variants.
  • Changed DYLIB_INSTALL_NAME_BASE computation for Catalyst builds to use WEBKIT_LEGACY_FRAMEWORKS_DIR.
  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
5:06 PM Changeset in webkit [289090] by Wenson Hsieh
  • 9 edits
    1 move in trunk/Source/WebKit

Add plumbing to inform WebPageProxy when videos play, pause, seek, and enter or exit fullscreen
https://bugs.webkit.org/show_bug.cgi?id=236083

Reviewed by Eric Carlson.

Add several methods on WebPageProxy which are called from both VideoFullscreenManagerProxy as well as
PlaybackSessionManagerProxy; in future patches, these will be used to detect when a fullscreen video has been
paused for at least 250 ms, and call out to the page client to perform "video frame extraction".

No change in behavior (yet).

  • Shared/Cocoa/PlaybackSessionContextIdentifier.h: Renamed from Source/WebKit/WebProcess/cocoa/PlaybackSessionContextIdentifier.h.

Move this from Source/WebKit/WebProcess/cocoa to Shared/Cocoa. This enum type is passed around in media code in
both the UI and web processes, so it should be in the Shared folder instead of the WebProcess folder.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::currentTimeChanged):
(WebKit::PlaybackSessionManagerProxy::rateChanged):
(WebKit::PlaybackSessionManagerProxy::isPaused const):

Add a helper method to return whether or not the session for a given PlaybackSessionContextIdentifier is paused
(that is, neither playing nor stalled).

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:

Drive-by fix: remove an unused member variable.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::didExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::didEnterFullscreen):

Add another version of these methods that includes the session context ID as an argument.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::didChangePlaybackRate):
(WebKit::WebPageProxy::didChangeCurrentTime):
(WebKit::WebPageProxy::updateFullscreenVideoExtraction):
(WebKit::WebPageProxy::fullscreenVideoExtractionTimerFired):

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_fullscreenVideoExtractionTimer):
(WebKit::WebPageProxy::didEnterFullscreen):
(WebKit::WebPageProxy::didExitFullscreen):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
(WebKit::m_notificationManagerMessageHandler): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
4:35 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
4:22 PM Changeset in webkit [289089] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename RunJSCTestsWithoutPatch
https://bugs.webkit.org/show_bug.cgi?id=236106
<rdar://problem/88457767>

Reviewed by Alexey Proskuryakov.

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

(RunJavaScriptCoreTests.evaluateCommand):
(RunJSCTestsWithoutChange): Renamed from RunJSCTestsWithoutPatch.
(RunJSCTestsWithoutPatch): Renamed to RunJSCTestsWithoutChange.

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

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

3:47 PM Changeset in webkit [289088] by Adrian Perez de Castro
  • 26 edits in releases/WebKitGTK/webkit-2.34

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

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

LayoutTests/imported/w3c:

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

Source/WebCore:

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

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):
(WebCore::CachedResourceLoader::canRequestAfterRedirection const):
(WebCore::CachedResourceLoader::updateRequestAfterRedirection):

  • loader/cache/CachedResourceLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowChildContextFromSource const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowImageFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):
(WebCore::ContentSecurityPolicy::allowFontFromSource const):
(WebCore::ContentSecurityPolicy::allowManifestFromSource const):
(WebCore::ContentSecurityPolicy::allowMediaFromSource const):

  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

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

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

LayoutTests:

  • TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:
3:46 PM Changeset in webkit [289087] by Adrian Perez de Castro
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r285320 - Form action with a redirect should report correct blocked URI
https://bugs.webkit.org/show_bug.cgi?id=232660
<rdar://problem/84969024>

Patch by Kate Cheney <Kate Cheney> on 2021-11-04
Reviewed by Brent Fulgham.

Source/WebCore:

We currently report the blocked URI as the target of a redirect, per
the spec it should actually be the initiating url.

Test: http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkIfFormActionAllowedByCSP const):

  • loader/FrameLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowFormAction const):

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked-expected.txt:

Update console logging to report the correct URL.

3:45 PM Changeset in webkit [289086] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

  • gpu-process/TestExpectations: Tests are no longer crashing.
3:27 PM Changeset in webkit [289085] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] MultiDeleteByOffset should not define value
https://bugs.webkit.org/show_bug.cgi?id=236103

Reviewed by Saam Barati.

MultiDeleteByOffset should not define any values in clobberizing.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

3:21 PM Changeset in webkit [289084] by Elliott Williams
  • 2 edits in trunk

Add Elliott Williams to contributors.json

3:14 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
3:14 PM Changeset in webkit [289083] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r288809 - REGRESSION(r288644): [GTK4] Criticals when using pinch zoom
https://bugs.webkit.org/show_bug.cgi?id=235883

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
Only cancel the click gesture on GTK3. We don't use g_object_set_data() on GTK4.

3:13 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
3:13 PM Changeset in webkit [289082] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r288644 - [GTK3] Pinch zooming from a link activates it
https://bugs.webkit.org/show_bug.cgi?id=235639

Reviewed by Carlos Garcia Campos.

Turns out gestures behave differently between GTK3 and 4. On GTK4 it works
fine, but on GTK3 starting a pinch zoom triggers the multipress gesture
when one finger is down, and completes it when the second finger is down.

This results in a bogus click, with no way to prevent it as it happens
before any of the zoom callbacks are called. Since we can't know if there
will be a zoom afterwards or not, we can't do anything about it.

However, what we can do is reorder these gestures. In GTK3 the order the
gestures are processed in depends on which order they were created in.

At that point, there's a problem with the fact the gestures are grouped.
Grouping means that these 2 gestures are triggered at the same time. While
somehow the press gesture is still triggered without grouping with the
original order, they become properly decoupled in reverse order and
ungrouped.

At that point, we can safely cancel the press gesture when the zoom gesture
starts, and fix the issue.

This seems to still work fine for GTK4.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseConstructed):

3:09 PM Changeset in webkit [289081] by sihui_liu@apple.com
  • 5 edits in trunk/Source

Delay writing origin file in NetworkStorageManager
https://bugs.webkit.org/show_bug.cgi?id=235897
rdar://87163253

Reviewed by Geoffrey Garen.

Revert r288924 that delays writing origin file to when OriginStorageManager is destroyed, and take a different
approach that schedules a async task to write origin file. PLT results show that the new approach can also make
up for PLT regresion caused by r286936, where network process started to write origin file before replying sync
storage message from web process.

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::localOriginStorageManager):

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::~OriginStorageManager): Deleted.

  • NetworkProcess/storage/OriginStorageManager.h:
3:09 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
2:27 PM Changeset in webkit [289080] by Adrian Perez de Castro
  • 9 edits in releases/WebKitGTK/webkit-2.34

Merge r288609 - [GTK] REGRESSION: Touch scrolling is broken
https://bugs.webkit.org/show_bug.cgi?id=235436

Reviewed by Chris Lord.

Source/WebKit:

Remove webkitWebViewBaseSetWheelHasPreciseDeltas(), instead add a parameter
to webkitWebViewBaseSynthesizeWheelEvent() that specifies whether the event
should have precise deltas or not.

Correct the touch swipe velocity, since it won't get multiplied by
pixelsPerLineStep().

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::navigationGestureDidBegin):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseTouchDragBegin):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchSwipe):
(webkitWebViewBaseSynthesizeWheelEvent):
(webkitWebViewBaseSetWheelHasPreciseDeltas): Deleted.

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateWheelInteraction):

Tools:

Stop using webkitWebViewBaseSetWheelHasPreciseDeltas(), instead pass the correct parameter into
webkitWebViewBaseSynthesizeWheelEvent().

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::~EventSenderProxy):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::continuousMouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
(WTR::EventSenderProxy::setWheelHasPreciseDeltas):

2:27 PM Changeset in webkit [289079] by Adrian Perez de Castro
  • 12 edits in releases/WebKitGTK/webkit-2.34

Merge r282952 - [GTK] Allow sending precise mouse wheel events in LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=230541

Reviewed by Tim Horton.

Source/WebKit:

Add code to be able to send precise synthetic mouse-wheel events in GTK.

  • Shared/NativeWebWheelEvent.h:
  • Shared/gtk/NativeWebWheelEventGtk.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSynthesizeWheelEvent):
(webkitWebViewBaseSetWheelHasPreciseDeltas):

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:

Tools:

Add API to be able to send precise mouse-wheel events in EventSender.

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::setWheelHasPreciseDeltas):

  • WebKitTestRunner/InjectedBundle/EventSendingController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveMessageFromInjectedBundle):

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::toWebKitGLibAPI):
(WTR::EventSenderProxy::~EventSenderProxy):
(WTR::EventSenderProxy::setWheelHasPreciseDeltas):

2:12 PM Changeset in webkit [289078] by Ben Nham
  • 2 edits in trunk/Source/WebCore

LocalStorage values should be 8-bit strings in memory if possible
https://bugs.webkit.org/show_bug.cgi?id=235484

Reviewed by Chris Dumez.

LocalStorage values are stored into a SQLite column as 16-bit strings and are deserialized
back into memory as 16-bit strings. To save memory, this makes it so that we deserialize the
string into an 8-bit string in memory if possible.

Estimated win of ~3MB on Membuster5.

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::columnBlobAsString):

1:47 PM Changeset in webkit [289077] by Jonathan Bedard
  • 15 edits
    1 add in trunk

[git-webkit] Configure default branch management
https://bugs.webkit.org/show_bug.cgi?id=235378
<rdar://problem/87989533>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/decorators.py:

(hybridmethod.get): Forward certain attributes, namely those used by Memoize.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git):
(Git.config): Add project config to fall back on.
(Git.url): Move memoize to config.
(Git.checkout): Clear Git.config, since that owns memoization.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.parser): Add --overwrite and --append flags.
(PullRequest.create_commit): Either amend an existing commit or create a new one,
depending on the repository settings and arguments passed.
(PullRequest.main): Only keep track of branch history if the user explicitly requests
it or we're using an overwrite workflow with a user owned fork. If repository settings
indicate such branches should never be created, return an error if the user attempts to do so.

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

(Setup.git): Add project config to repository config, prompt the user about their prefered
history retention strategy if the project is using an overwrite workflow.
(Setup.parser): Use the project's default merge behavior.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

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

1:42 PM Changeset in webkit [289076] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, remove UnlinkedMetadataTable::offsetInMetadataTable since it is no longer used
https://bugs.webkit.org/show_bug.cgi?id=236063

Follow-up after Saam's comment.

  • bytecode/UnlinkedMetadataTable.h:

(JSC::UnlinkedMetadataTable::offsetInMetadataTable): Deleted.

1:34 PM Changeset in webkit [289075] by Ziran Sun
  • 24 edits
    2 copies in trunk

[Forms] Value doesn't change for stepUp()/stepDown() with out of range values
https://bugs.webkit.org/show_bug.cgi?id=235509

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/input-stepdown-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/input-stepup-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/range-expected.txt:

Source/WebCore:

For input type number, WebKit throws "invalid state" Error when the value is greater than
max when calling stepUp() or less than min when calling stepDown(). According to section 10
in https://html.spec.whatwg.org/multipage/input.html#dom-input-stepup,
we should do "return", which indicates that value doesn't change.

  • html/InputType.cpp:

(WebCore::InputType::applyStep):

LayoutTests:

Update expectation files.

  • fast/forms/date/date-stepup-stepdown-expected.txt:
  • fast/forms/date/date-stepup-stepdown.html:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown.html:
  • fast/forms/month/month-stepup-stepdown-expected.txt:
  • fast/forms/month/month-stepup-stepdown.html:
  • fast/forms/number/number-stepup-stepdown-expected.txt:
  • fast/forms/number/number-stepup-stepdown.html:
  • fast/forms/range/range-stepup-stepdown-expected.txt:
  • fast/forms/range/range-stepup-stepdown.html:
  • fast/forms/time/time-stepup-stepdown-expected.txt:
  • fast/forms/time/time-stepup-stepdown.html:
  • fast/forms/week/week-stepup-stepdown-expected.txt:
  • fast/forms/week/week-stepup-stepdown.html:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepdown-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepdown-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepup-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepup-expected.txt.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
1:32 PM Changeset in webkit [289074] by Nikos Mouchtaris
  • 15 edits
    8 adds in trunk

Implement CSS overscroll-behavior for synchronous scroll
https://bugs.webkit.org/show_bug.cgi?id=222968

Reviewed by Simon Fraser.

Source/WebCore:

Tests: fast/scrolling/sync-scroll-overscroll-behavior-element.html

fast/scrolling/sync-scroll-overscroll-behavior-iframe.html
fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-element.html
fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-iframe.html

Split up patch by Cathie Chen and Frederic Wang. Add function for blocking scroll chaining
and filtering scroll delta depending on the values of overscroll behavior for a scrollable
area. This patch is for synchronous scrolling only.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEventInternal):
(WebCore::scrollViaNonPlatformEvent):
(WebCore::EventHandler::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::scrollableAreaCanHandleEvent):

  • page/EventHandler.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingScrollableContainer):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::eventForPropagation const):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::deltaForPropagation const):
(WebCore::ScrollableArea::shouldBlockScrollPropagation const):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalOverscrollBehaviorPreventsPropagation const):
(WebCore::ScrollableArea::verticalOverscrollBehaviorPreventsPropagation const):

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

(WebCore::ScrollAnimatorMac::allowsVerticalStretching const):
(WebCore::ScrollAnimatorMac::allowsHorizontalStretching const):

  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::wheelDeltaBiasingTowardsVertical):

LayoutTests:

  • fast/scrolling/sync-scroll-overscroll-behavior-element-expected.txt: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-element.html: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-iframe-expected.txt: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-iframe.html: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-element-expected.txt: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-element.html: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-iframe-expected.txt: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-iframe.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
1:30 PM Changeset in webkit [289073] by Robert Jenner
  • 6 edits
    8 deletes in trunk

Unreviewed, reverting r288902.

Broke compile-webkit for iOS-15-Simulator

Reverted changeset:

"Import APSConnection-related SPI"
https://bugs.webkit.org/show_bug.cgi?id=235856
https://commits.webkit.org/r288902

1:23 PM Changeset in webkit [289072] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Add access to required syscalls
https://bugs.webkit.org/show_bug.cgi?id=236087
<rdar://problem/88439656>

Reviewed by Brent Fulgham.

Add access to required syscalls which are rarely used. This is based on recent telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
1:06 PM Changeset in webkit [289071] by commit-queue@webkit.org
  • 5 edits
    5 adds in trunk

ANGLE Metal and ANGLE OpenGL cannot be initialised one after the other
https://bugs.webkit.org/show_bug.cgi?id=236030

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-03
Reviewed by Dean Jackson.

Source/WebCore:

Test: webgl/pending/conformance2/misc/webgl2-after-webgl1-bug.html

Remove the power-preference specific native displays.
Add a native display for opengl, and use the default
one for Metal.

After the recent ANGLE roll, ANGLE uses (native display, power preference)
as the key to look up EGLDisplays.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::releaseThreadResources):

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

(WebCore::initializeEGLDisplay):

LayoutTests:

  • webgl/pending/conformance2/misc/webgl2-after-webgl1-bug-expected.txt: Added.
  • webgl/pending/conformance2/misc/webgl2-after-webgl1-bug.html: Added.
  • webgl/resources/pending_webgl_test_files/conformance2/misc/webgl2-after-webgl1-bug.html: Added.
1:05 PM Changeset in webkit [289070] by Adrian Perez de Castro
  • 9 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r287421 - Make DeferredWorkTimer::addPendingWork() return a Ticket.
https://bugs.webkit.org/show_bug.cgi?id=234628
rdar://84260429

Reviewed by Yusuke Suzuki.

  1. Make Ticket a unique token instead of the JSObject* target object. The Ticket is now a pointer to the TicketData in the pending work list.
  1. Instead of taking a Ticket argument, DeferredWorkTimer::addPendingWork() now takes a JSObject* target argument explicitly, and returns the Ticket for the added TicketData instead.

All the relevant DeferredWorkTimer APIS already take a Ticket as an argument.
This ensures that addPendingWork() is called before we start doing work with
these APIs (especially scheduleWorkSoon()).

  1. Previously, addPendingWork() will only save one instance of TicketData for a given JSObject* key. With this patch, we'll register a new TicketData instance for every call to addPendingWork(), and return a unique Ticket for it.

This is needed because it may be possible for 2 different clients to call
addPendingWork() and scheduleWorkSoon() with the same target JSObject* but with
different sets of dependencies.

Secondly, even is the both sets of dependencies are identical, a client may
call addPendingWork() and scheduleWorkSoon() with the same JSObject* target
more than once because it intended to schedule more than 1 task to run.

Note that DeferredWorkTimer::doWork() consumes the corresponding TicketData
(i.e. removes it from the m_pendingTickets list) for each task as it is run.
To ensure that the dependencies for each task is protected, we'll either need
to ref count the TicketData for the same target object (and hold off on removing
it from the list), or we'll need to register a different TicketData instance
for each task. Ref counting can solve the second issue above, but does not
solve the first. So, this patch goes with the more generic solution to allow
each task to have its own TicketData instance (and, its own unique Ticket).

  1. Previously, if the client cancels pending work, we would remove the TicketData immediately from the m_pendingTickets list. This opens up an opportunity for the same TicketData memory to be re-allocated by another client. This, in turn, would make the Ticket token not unique and potentially allow a cancelled ticket to be reused before DeferredWorkTimer::doWork() is called.

This patch changes DeferredWorkTimer::cancelPendingWork() to only clear the
contents of the TicketData instead. TicketData::scriptExecutionOwner being
null is used as an indication that the ticket has been cancelled. Since the
TicketData itself is not "freed" yet, all TicketData will remain unique until
DeferredWorkTimer::doWork().

Consequently, DeferredWorkTimer::doWork() will now check for cancelled tickets
and remove them from the m_pendingTickets list.

  1. JSFinalizationRegistry was previously calling DeferredWorkTimer::hasPendingWork() to check if it has already scheduled a task, so as not to reschedule again until after the previously scheduled task has been run. This does not play nice with the new Ticket API, because this hasPendingWork() check needs to be done before calling addPendingWork(), and hence, the Ticket is not available yet.

Fortunately, JSFinalizationRegistry should know if it has already scheduled
a task itself. This patch adds a m_hasAlreadyScheduledWork flag to
JSFinalizationRegistry that can be used for this check instead.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

  • runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::TicketData::TicketData):
(JSC::DeferredWorkTimer::TicketData::vm):
(JSC::DeferredWorkTimer::TicketData::cancel):
(JSC::DeferredWorkTimer::doWork):
(JSC::DeferredWorkTimer::addPendingWork):
(JSC::DeferredWorkTimer::hasPendingWork):
(JSC::DeferredWorkTimer::hasDependancyInPendingWork):
(JSC::DeferredWorkTimer::cancelPendingWork):

  • runtime/DeferredWorkTimer.h:

(JSC::DeferredWorkTimer::TicketData::target):

  • runtime/JSFinalizationRegistry.cpp:

(JSC::JSFinalizationRegistry::finalizeUnconditionally):

  • runtime/JSFinalizationRegistry.h:
  • wasm/WasmStreamingCompiler.cpp:

(JSC::Wasm::StreamingCompiler::StreamingCompiler):
(JSC::Wasm::StreamingCompiler::~StreamingCompiler):
(JSC::Wasm::StreamingCompiler::didComplete):
(JSC::Wasm::StreamingCompiler::fail):
(JSC::Wasm::StreamingCompiler::cancel):

  • wasm/WasmStreamingCompiler.h:
  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::webAssemblyModuleValidateAsync):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::JSWebAssembly::webAssemblyModuleInstantinateAsync):

12:50 PM Changeset in webkit [289069] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Enable sandbox state rules for Mach messages
https://bugs.webkit.org/show_bug.cgi?id=236027
<rdar://problem/88387937>

Reviewed by Brent Fulgham.

After <rdar://85931614> has been fixed, we can enable sandbox state rules for Mach messages.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
12:29 PM Changeset in webkit [289068] by Patrick Griffis
  • 2 edits in trunk/LayoutTests

[Win] Update expectations for failing CSP test
https://bugs.webkit.org/show_bug.cgi?id=236093

Unreviewed expectations update.

  • platform/win/TestExpectations:
12:15 PM Changeset in webkit [289067] by Fujii Hironori
  • 2 edits in trunk/Tools

REGRESSION(r288878) webkitpy.layout_tests.controllers.layout_test_finder_legacy_unittest.LayoutTestFinderTests tests are failing with Windows Python
https://bugs.webkit.org/show_bug.cgi?id=236043

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/port/base.py:

(Port.relative_test_filename): Normalize filename with
TEST_PATH_SEPARATOR before comparing with layout_tests_dir().

11:59 AM Changeset in webkit [289066] by Mikhail R. Gadelha
  • 2 edits in trunk/Source/bmalloc

Fix BSD compilation after r289056
https://bugs.webkit.org/show_bug.cgi?id=236086

Unreviewed, fixes missing header in BSD systems.

The include is moved up so it is included in both UNIX and BSD systems,
as adding the include in both #if triggers a code style warning (header
included twice), even though the includes are guarded.

  • bmalloc/AvailableMemory.cpp:
11:50 AM Changeset in webkit [289065] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Rename NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded()
https://bugs.webkit.org/show_bug.cgi?id=236088

Reviewed by Darin Adler.

Rename NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded() to make it clear it is for the
service worker connection, to avoid confusing with the shared workers.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::serviceWorkerServerToContextConnectionNoLongerNeeded):
(WebKit::NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::connectionIsNoLongerNeeded):

11:46 AM Changeset in webkit [289064] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: [Flexbox] Add setting to guard Flexbox Inspector feature
https://bugs.webkit.org/show_bug.cgi?id=236091
<rdar://problem/88443529>

Reviewed by Patrick Angle.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createEngineeringSettingsView):

11:44 AM Changeset in webkit [289063] by Chris Dumez
  • 10 edits
    2 moves in trunk/Source/WebKit

Rename ServiceWorkerInitializationData / ServiceWorkerInformation so they can be reused by shared workers
https://bugs.webkit.org/show_bug.cgi?id=236089

Reviewed by Alex Christensen.

  • Shared/RemoteWorkerInitializationData.cpp: Renamed from Source/WebKit/Shared/ServiceWorkerInitializationData.cpp.

(WebKit::RemoteWorkerInitializationData::encode const):
(WebKit::RemoteWorkerInitializationData::decode):

  • Shared/RemoteWorkerInitializationData.h: Renamed from Source/WebKit/Shared/ServiceWorkerInitializationData.h.
  • Sources.txt:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::enableServiceWorkers):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::hasServiceWorkerPageProxy):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):

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

(WebKit::WebProcess::establishServiceWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
11:18 AM Changeset in webkit [289062] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Crash at com.apple.WebKit: WebKit::RemoteLayerBackingStore::display
https://bugs.webkit.org/show_bug.cgi?id=236003
Source/WebCore:

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-03
Reviewed by Simon Fraser.

  • platform/graphics/GraphicsLayerContentsDisplayDelegate.h:

Add a comment not to call PlatformCALayer::setBackingStoreAttached()

  • platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm:

Clear the PlatformCALayer contents in more explicit way.

Source/WebKit:

<rdar://87617695>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-03
Reviewed by Simon Fraser.

Using UI-side compositing, following chain would be the cause a crash:
PlatformCALayerRemote::recursiveBuildTransaction
RemoteLayerBackingStore::display
PlatformCALayer::platformCALayerLayerDisplay
WebProcessGraphicsContextGLCocoa.mm DisplayBufferDisplayDelegate::display
PlatformCALayer::setContents(nullptr)

The nullptr contents happens when the WebGL context does not have
display buffer yet or when the display buffer creation would fail.

Setting empty layer contents would destroy the RemoteLayerBackingStore,
even though the callstack is in process of displaying the layer to the
backing store.

When setting PlatformCALayer contents "empty", clear the backing store instead
of removing the backing store.

Tested by LayoutTests/webgl (under ASAN, ios simulator)

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::setContents):

11:01 AM Changeset in webkit [289061] by Chris Dumez
  • 7 edits in trunk/Source

Move and rename ServiceWorkerThreadProxy::setupPageForServiceWorker()
https://bugs.webkit.org/show_bug.cgi?id=236085

Reviewed by Darin Adler.

Move and rename ServiceWorkerThreadProxy::setupPageForServiceWorker() so that it can be reused for shared workers.

Source/WebCore:

  • page/Page.cpp:

(WebCore::Page::setupForRemoteWorker):

  • page/Page.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::setupPageForServiceWorker): Deleted.

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

10:46 AM Changeset in webkit [289060] by ntim@apple.com
  • 3 edits
    2 adds in trunk

null ptr deref in RenderTreeBuilder::Block::attachIgnoringContinuation
https://bugs.webkit.org/show_bug.cgi?id=234170

Patch by Frédéric Wang <fwang@igalia.com> on 2022-02-03
Reviewed by Antti Koivisto.

Source/WebCore:

When an element with "display: contents" is put into the top layer, its computed style for
the display property becomes "block" [1]. However, RenderTreeUpdater::updateElementRenderer
does not manage well this transition. In particular, a null ptr deref happens for some
special configuration involving a <dialog style="display: contents">. To work around that
issue, always force tearing down renderers when updating an element in the top layer.

[1] https://fullscreen.spec.whatwg.org/#new-stacking-layer

Test: fast/layers/top-layer-display-contents-crash.html

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer): Always force tearing down renderers
for top layer element.

LayoutTests:

Add regression test.

  • fast/css/top-layer-display-contents-crash-expected.txt: Added.
  • fast/css/top-layer-display-contents-crash.html: Added.
10:01 AM Changeset in webkit [289059] by J Pascoe
  • 4 edits in trunk

[WebAuthn] Allow use of hardware-fixed credentials while using alternate store
https://bugs.webkit.org/show_bug.cgi?id=235923
rdar://88102108

Reviewed by Brent Fulgham.

Source/WebKit:

This patch allows use of credentials created before a user started using
the alternate credential store by searching regardless of status when
querying credentials.

Added API test + tested manually.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):

Tools:

Add new test for querying credentials created both before and after enabling
alternative credential store.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::WebCore::addKeyToKeychain):
(TestWebKitAPI::WebCore::cleanUpKeychain):
(TestWebKitAPI::TEST):

9:58 AM Changeset in webkit [289058] by Chris Dumez
  • 12 edits
    2 adds in trunk

Implement AbortSignal.timeout()
https://bugs.webkit.org/show_bug.cgi?id=236039

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import AbortSignal.timeout() tests from upstream WPT.

  • web-platform-tests/dom/abort/AbortSignal.any-expected.txt:
  • web-platform-tests/dom/abort/AbortSignal.any.js:

(async_test.t.signal.onabort.t.step_func_done):
(async_test.t.string_appeared_here.signal.onabort.t.step_func):

  • web-platform-tests/dom/abort/AbortSignal.any.worker-expected.txt:
  • web-platform-tests/dom/abort/abort-signal-timeout-expected.txt: Added.
  • web-platform-tests/dom/abort/abort-signal-timeout.html: Added.
  • web-platform-tests/dom/abort/w3c-import.log:

Source/WebCore:

Implement the new AbortSignal.timeout() as per:

Test: imported/w3c/web-platform-tests/dom/abort/abort-signal-timeout.html

  • bindings/js/JSAbortSignalCustom.cpp:

(WebCore::JSAbortSignalOwner::isReachableFromOpaqueRoots):

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::timeout):
(WebCore::AbortSignal::eventListenersDidChange):

  • dom/AbortSignal.h:
  • dom/AbortSignal.idl:
  • page/DOMTimer.cpp:

(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):

  • page/DOMTimer.h:
8:38 AM Changeset in webkit [289057] by mark.lam@apple.com
  • 5 edits in trunk/Source/WebCore

Flaky scope.assertNoException() assertion in ~JSExecState when running workers WPT tests
https://bugs.webkit.org/show_bug.cgi?id=235978

Reviewed by Yusuke Suzuki.

Because Web workers can be terminated at any point, it is possible for JSExecState::loadModule()
to get a termination exception, which would incorrectly cause it to assert and crash in debug.
This patch updates the code so that termination exceptions are properly dealt with instead of
crashing.

No new tests, covered by imported/w3c/web-platform-tests/workers that flakily crash in
debug.

  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::reportException):

  • bindings/js/JSExecState.h:

(WebCore::JSExecState::call):
(WebCore::JSExecState::evaluate):
(WebCore::JSExecState::profiledCall):
(WebCore::JSExecState::profiledEvaluate):
(WebCore::JSExecState::linkAndEvaluateModule):
(WebCore::JSExecState::~JSExecState):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):

7:29 AM Changeset in webkit [289056] by Mikhail R. Gadelha
  • 2 edits in trunk/Source/bmalloc

Fix undefined behavior when querying linux memory size
https://bugs.webkit.org/show_bug.cgi?id=228280

Reviewed by Mark Lam.

When running JSC compiled with the undefined behavior sanitizer enabled in a 32 bits machine:

../../Source/bmalloc/bmalloc/AvailableMemory.cpp:115:60: runtime error:
signed integer overflow: 32839056 * 4096 cannot be represented in type 'long int'

This patch slighly rewrites how the available memory is calculated to
use sysinfo (like it's done for FREEBSD).

  • bmalloc/AvailableMemory.cpp:

(bmalloc::LinuxMemory::singleton):
(bmalloc::computeAvailableMemory):
(bmalloc::memoryStatus):

7:23 AM Changeset in webkit [289055] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Add file-ioctl telemetry
https://bugs.webkit.org/show_bug.cgi?id=236031
<rdar://88334007>

Reviewed by Darin Adler.

Add file-ioctl telemetry in the WebContent process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
7:21 AM Changeset in webkit [289054] by Chris Dumez
  • 16 edits
    8 copies
    21 adds in trunk

Start connecting SharedWorker to the WebKit2 layer
https://bugs.webkit.org/show_bug.cgi?id=236052

Reviewed by Darin Adler.

Source/WebCore:

Start connecting SharedWorker to the WebKit2 layer with a provider / connection, similarly to what is done
for service workers.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/shared/SharedWorker.cpp:

(WebCore::mainThreadConnection):
(WebCore::SharedWorker::create):

  • workers/shared/SharedWorkerManager.h:
  • workers/shared/SharedWorkerObjectConnection.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.
  • workers/shared/SharedWorkerObjectConnection.h: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.
  • workers/shared/SharedWorkerProvider.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.

(WebCore::SharedWorkerProvider::singleton):
(WebCore::SharedWorkerProvider::setSharedProvider):

  • workers/shared/SharedWorkerProvider.h: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.

(WebCore::SharedWorkerProvider::~SharedWorkerProvider):

  • workers/shared/SharedWorkerScriptLoader.h:

Source/WebKit:

Start connecting SharedWorker to the WebKit2 layer with a provider / connection, similarly to what is done
for service workers.

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::sharedWorkerConnection):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Storage/WebSharedWorkerObjectConnection.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.

(WebKit::WebSharedWorkerObjectConnection::messageSenderConnection const):
(WebKit::WebSharedWorkerObjectConnection::requestSharedWorker):

  • WebProcess/Storage/WebSharedWorkerObjectConnection.h: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.
  • WebProcess/Storage/WebSharedWorkerProvider.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.

(WebKit::WebSharedWorkerProvider::singleton):
(WebKit::WebSharedWorkerProvider::sharedWorkerConnection):

  • WebProcess/Storage/WebSharedWorkerProvider.h: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

LayoutTests:

Skip pure SharedWorkers tests on WK1 since we will only implement this for WebKit2 in the short term.
Land WK1-specific baselines for tests that use SharedWorkers but also cover other things.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/script-src/worker-importscripts.sub-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/script-src/worker-set-timeout.sub-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.https-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/webmessaging/broadcastchannel/workers-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/workers/abrupt-completion-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/workers/semantics/multiple-workers/001-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/workers/semantics/run-a-worker/003-expected.txt: Added.
  • platform/win/TestExpectations:
7:19 AM Changeset in webkit [289053] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][GPUP] Add access to sysctl property
https://bugs.webkit.org/show_bug.cgi?id=235973
<rdar://problem/88345212>

Reviewed by Darin Adler.

Add access to required sysctl property "hw.ncpu" in the GPU process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
7:14 AM Changeset in webkit [289052] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[GPUP] Add read access to sysctl properties
https://bugs.webkit.org/show_bug.cgi?id=236018
<rdar://problem/88382949>

Reviewed by Darin Adler.

Add read access to sysctl properties based on telemetry.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
6:51 AM Changeset in webkit [289051] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] imported/w3c/web-platform-tests/css/css-writing-modes/text-align-vlr* tests are failing
https://bugs.webkit.org/show_bug.cgi?id=236059

Reviewed by Antti Koivisto.

Content (alignment) offset should be flipped for vertical writing mode.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingMode):
(WebCore::Layout::InlineDisplayContentBuilder::movePointHorizontallyForWritingMode const):

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
6:31 AM Changeset in webkit [289050] by youenn@apple.com
  • 7 edits
    1 delete in trunk/Source/WebKit

MediaRecorderPrivate should not need to create IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=235953

Reviewed by Eric Carlson.

Make use of SharedVideoFrameReader and SharedVideoFrameWriter between SampleBufferDisplayLayer and RemoteSampleBufferDisplayLayer.
Covered by existing MediaRecorder tests.

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::videoSampleAvailable):
(WebKit::RemoteMediaRecorder::setSharedVideoFrameSemaphore):
(WebKit::RemoteMediaRecorder::setSharedVideoFrameMemory):

  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::videoSampleAvailable):
(WebKit::MediaRecorderPrivate::copySharedVideoFrame):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.mm: Removed.
6:07 AM Changeset in webkit [289049] by youenn@apple.com
  • 3 edits
    2 adds in trunk

RealtimeIncomingVideoSourceCocoa should not need to create IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=235952

Reviewed by Eric Carlson.

Source/WebCore:

Test: webrtc/vp8-then-h264.html

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

Instead of using an IOSurface-based buffer pool, we use a regular memory buffer pool.
A follow-up should probably remove the need to convert YUV420 webrtc video frames to NV12 CVPixelBuffers in RealtimeIncomingVideoSourceCocoa,
so as to leave that to when copying the webrtc video frames into shared memory buffers used for IPC.

LayoutTests:

  • webrtc/vp8-then-h264-expected.txt: Added.
  • webrtc/vp8-then-h264.html: Added.
6:02 AM Changeset in webkit [289048] by graouts@webkit.org
  • 6 edits in trunk

Incorrect KeyframesEffect generated for background
https://bugs.webkit.org/show_bug.cgi?id=229398
<rdar://problem/82516118>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:

Source/WebCore:

Our keyframe merging code when dealing with input from the Web Animations JS API was incorrect.

First, we would iterate over proprties on a keyframe based on the MutableStyleProperties object we
use instead of the HashMap<CSSPropertyID, String> map we use to keep track of the properties set
on the keyframe and its original string value (which we use to return the exact same string when
getKeyframes() is called).

This was incorrect because calling MutableStyleProperties::setProperty() expands shorthands into
longhands, so our property count wouldn't accurate.

Second, honestly I have no idea what I was thinking when I wrote this code as it only ever worked
with a single property on the kefyrame to merge. We now correctly merge all properties from the
keyframe-to-merge into the previous keyframe by using MutableStyleProperties::mergeAndOverrideOnConflict()
and then iterate over all known properties in the HashMap<CSSPropertyID, String> to merge the
properties and strings input.

  • animation/KeyframeEffect.cpp:

(WebCore::processPropertyIndexedKeyframes):

5:45 AM Changeset in webkit [289047] by Carlos Garcia Campos
  • 1 edit
    1 add in trunk/WebDriverTests

Unreviewed. Add another missing file after r288871.

  • imported/w3c/tools/webdriver/webdriver/bidi/error.py: Added.
5:43 AM Changeset in webkit [289046] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Test /webkit/WebKitAccessibility/accessible/children-changed times out
https://bugs.webkit.org/show_bug.cgi?id=236070

Reviewed by Adrian Perez de Castro.

This happens because when the new node is added the a11y object children are not updated and the wrapper for the
new child is not created.

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification): Call updateChildrenIfNecessary on AXChildrenChanged.

5:42 AM Changeset in webkit [289045] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][WPE][a11y] Handle parameter of org.a11y.atspi.Text.RemoveSelection
https://bugs.webkit.org/show_bug.cgi?id=236079

Reviewed by Adrian Perez de Castro.

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
5:23 AM Changeset in webkit [289044] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Crash in AXIsolatedObject::associatedAXObject.
https://bugs.webkit.org/show_bug.cgi?id=236053
<rdar://problem/88413232>

Reviewed by Darin Adler.

The crash occurs because we are using an axObject pointer after we call
updateBackingStore() which may destroy the object pointed to by axObject.
This was added as a fix for
https://bugs.webkit.org/show_bug.cgi?id=220446
So I will submit a follow up patch with the correct fix for that bug as well.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::associatedAXObject const):

5:21 AM Changeset in webkit [289043] by Chris Lord
  • 3 edits in trunk/Source/WebCore

Add specialize type traits to GLContext
https://bugs.webkit.org/show_bug.cgi?id=236076

Reviewed by Alejandro G. Castro.

Make GLContext downcastable.

No new tests, no change in behaviour.

  • platform/graphics/GLContext.h:
  • platform/graphics/egl/GLContextEGL.h:
5:11 AM Changeset in webkit [289042] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

WebDriver: selenium tests are executed more than once
https://bugs.webkit.org/show_bug.cgi?id=236075

Reviewed by Darin Adler.

I think this happens since we updated the pytest version. Pytest is now collecting test files that don't
contain any test like init.py files. When that's given to the runner all the tests under the directory are
executed.

  • Scripts/webkitpy/webdriver_tests/pytest_runner.py:

(CollectRecorder.pytest_collectreport): Do not include files with no tests.

5:06 AM Changeset in webkit [289041] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebCore

[atspi] missing-braces clang warnings
https://bugs.webkit.org/show_bug.cgi?id=236074

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-03
Reviewed by Darin Adler.

Wrap structure padding in braces.

  • accessibility/atspi/AccessibilityAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectActionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectImageAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp:
  • accessibility/atspi/AccessibilityRootAtspi.cpp:
3:39 AM Changeset in webkit [289040] by Carlos Garcia Campos
  • 1 edit
    4 adds in trunk/WebDriverTests

Unreviewed. Add missing files after r283798.

  • imported/selenium/py/selenium/webdriver/common/bidi/init.py: Added.
  • imported/selenium/py/selenium/webdriver/common/bidi/cdp.py: Added.
  • imported/selenium/py/selenium/webdriver/remote/script_key.py: Added.
3:30 AM Changeset in webkit [289039] by Carlos Garcia Campos
  • 1 edit
    2 adds in trunk/WebDriverTests

Unreviewed. Add missing file after r288871.

  • imported/w3c/webdriver/tests/bidi/session_subscribe/subscribe.py: Added.
2:13 AM Changeset in webkit [289038] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

SampleBufferDiplayLayer should not need to create IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=235954

Reviewed by Eric Carlson.

Make use of SharedVideoFrameReader and SharedVideoFrameWriter between SampleBufferDisplayLayer and RemoteSampleBufferDisplayLayer.
Manually tested.

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
2:07 AM Changeset in webkit [289037] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Use MetadataTable instead of UnlinkedMetadataTable
https://bugs.webkit.org/show_bug.cgi?id=236063
rdar://88269480

Reviewed by Robin Morisset.

Use MetadataTable from profiled CodeBlock instead of UnlinkedMetadataTable in concurrent JIT compiler.

  • bytecode/MetadataTable.h:

(JSC::MetadataTable::offsetInMetadataTable):

  • bytecode/UnlinkedMetadataTable.h:

(JSC::UnlinkedMetadataTable::offsetInMetadataTable):

  • jit/JITInlines.h:

(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::loadPtrFromMetadata):
(JSC::JIT::load32FromMetadata):
(JSC::JIT::load8FromMetadata):
(JSC::JIT::store8ToMetadata):
(JSC::JIT::store32ToMetadata):
(JSC::JIT::materializePointerIntoMetadata):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emit_op_get_from_scope):

1:18 AM Changeset in webkit [289036] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.35.2

WebKitGTK 2.35.2

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

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.35.2 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.35.2.
12:52 AM Changeset in webkit [289034] by mmaxfield@apple.com
  • 3 edits in trunk/Tools

Allow using STIX Two in layout tests
https://bugs.webkit.org/show_bug.cgi?id=236048

Reviewed by Darin Adler.

Add the fonts to the allow-list.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(allowedFontFamilySet):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::allowedFontFamilySet):

12:41 AM Changeset in webkit [289033] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix GTK make distcheck

Move mac specific file from Sources.txt to SourcesCocoa.txt

  • Sources.txt:
  • SourcesCocoa.txt:
12:35 AM Changeset in webkit [289032] by Martin Robinson
  • 29 edits
    1 delete in trunk

Transform interpolation should blend between shared transform function primitives
https://bugs.webkit.org/show_bug.cgi?id=235311
<rdar://problem/88012700>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Mark some tests as newly passing.

  • web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/matrix-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-002-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-translate-composition-expected.txt:

Source/WebCore:

No new tests. This is covered by existing WPT tests.

Allow direct interpolation between mismatching transform functions that share a primitive.
This fixes many tests expecting a certain computed transformation matrix in WPT, but also
allows using hardware animations more often for the CoreAnimation backend.

Rotation, scale, and translate are the only functions that have shared primitives, so they
are the only ones in this change to allow for this new behavior.

When determining if a list of keyframes has shared compatible lists of transforms, return
the vector of primitives that can represent them. In addition code for calculating big
rotations has been removed, because it was unused.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::gSharedPrimitivesForTransformKeyframe): Added.
(WebCore::GraphicsLayer::getSharedPrimitivesForTransformKeyframes): Added.

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Modified to take a vector of shared
primitive types instead of a pointer to an array of operations.
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::addAnimation): Use new method.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::addAnimation): Ditto.

  • platform/graphics/transforms/Matrix3DTransformOperation.cpp:

(WebCore::Matrix3DTransformOperation::blend): Use the new sharedPrimitiveType method
to determine if the two operations can blend.

  • platform/graphics/transforms/MatrixTransformOperation.cpp:

(WebCore::MatrixTransformOperation::blend): Ditto.

  • platform/graphics/transforms/PerspectiveTransformOperation.cpp:

(WebCore::PerspectiveTransformOperation::blend): Ditto.

  • platform/graphics/transforms/RotateTransformOperation.cpp:

(WebCore::RotateTransformOperation::blend): Ditto.

  • platform/graphics/transforms/RotateTransformOperation.h:
  • platform/graphics/transforms/ScaleTransformOperation.cpp:

(WebCore::ScaleTransformOperation::blend): Ditto.

  • platform/graphics/transforms/ScaleTransformOperation.h:
  • platform/graphics/transforms/SkewTransformOperation.cpp:

(WebCore::SkewTransformOperation::blend): Ditto.

  • platform/graphics/transforms/TransformOperation.cpp:

(WebCore::TransformOperation::sharedPrimitiveType const):

  • platform/graphics/transforms/TransformOperation.h:

(WebCore::TransformOperation::primitiveType const): Added this virtual function which
return the type for the base class. Rotation, scale, and translate specialize this to
return a compatible primitive type.

  • platform/graphics/transforms/TransformOperations.cpp:

(WebCore::TransformOperations::operationsMatch const): Modified to check whether operations
share primitives.

  • platform/graphics/transforms/TranslateTransformOperation.cpp:

(WebCore::TranslateTransformOperation::blend): Use the new sharedPrimitiveType method.

  • platform/graphics/transforms/TranslateTransformOperation.h:

LayoutTests:

Remove a duplicated baseline.

  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt: Removed.
12:15 AM Changeset in webkit [289031] by ntim@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

Create PDFDocument stub
https://bugs.webkit.org/show_bug.cgi?id=235970

Reviewed by Brent Fulgham.

Create an empty stub with an iframe where the viewer will be loaded.

Changing about:blank?file= to https://mozilla.github.io/pdf.js/web/viewer.html?file= is one way
to test the stub.

That stub is guarded behind the PDF.js viewer internal setting which is only enabled in captive portal mode.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • dom/Document.h:

(WebCore::Document::isPDFDocument const):

  • html/PDFDocument.cpp: Added.

(WebCore::PDFDocument::PDFDocument):
(WebCore::m_viewerRendered):
(WebCore::PDFDocumentParser::document const):
(WebCore::PDFDocumentParser::appendBytes):
(WebCore::PDFDocumentParser::finish):
(WebCore::PDFDocument::createParser):
(WebCore::PDFDocument::createDocumentStructure):
(WebCore::PDFDocument::updateDuringParsing):
(WebCore::PDFDocument::finishedParsing):

  • html/PDFDocument.h: Added.

(isType):

Feb 2, 2022:

11:33 PM Changeset in webkit [289030] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. [GTK] Apply the same cmake changes of r289029 to GTK port

  • Source/cmake/OptionsGTK.cmake:
11:05 PM Changeset in webkit [289029] by Pablo Saavedra
  • 31 edits in trunk

[WPE] Fix for non-unified builds with ACCESSIBILITY=OFF
https://bugs.webkit.org/show_bug.cgi?id=236024

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

  • accessibility/atspi/AXObjectCacheAtspi.cpp:
  • accessibility/atspi/AccessibilityAtspi.cpp:
  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityAtspiEnums.h:
  • accessibility/atspi/AccessibilityObjectActionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectImageAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp:
  • accessibility/atspi/AccessibilityRootAtspi.cpp:
  • accessibility/atspi/AccessibilityRootAtspi.h:
  • editing/atspi/FrameSelectionAtspi.cpp:
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::setSelectedState):

  • page/Page.h:

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
10:36 PM Changeset in webkit [289028] by Carlos Garcia Campos
  • 31 edits
    1 delete in trunk

[GTK][a11y] Set platform name to atspi in WTR
https://bugs.webkit.org/show_bug.cgi?id=232227

Reviewed by Adrian Perez de Castro.

Tools:

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::AccessibilityController::platformName): Use atspi instead of atk.

LayoutTests:

Update tests to use atspi instead of atk.

  • accessibility/add-children-pseudo-element.html:
  • accessibility/aria-hidden-false-works-in-subtrees.html:
  • accessibility/aria-label-on-label-element.html:
  • accessibility/aria-option-role.html:
  • accessibility/auto-fill-crash.html:
  • accessibility/combo-box-collapsed-selection-changed.html:
  • accessibility/content-editable-as-textarea.html:
  • accessibility/focusable-inside-hidden.html:
  • accessibility/form-control-value-settable.html:
  • accessibility/gtk/caret-offsets-and-extraneous-white-spaces.html:
  • accessibility/gtk/caret-offsets.html:
  • accessibility/gtk/resources/atk-helpers.js: Removed.
  • accessibility/gtk/text-in-span-block-in-a-block.html:
  • accessibility/ignore-spacer-elements.html:
  • accessibility/insert-children-assert.html:
  • accessibility/list-detection.html:
  • accessibility/menu-list-sends-change-notification.html:
  • accessibility/radio-button-title-label.html:
  • accessibility/render-counter-text.html:
  • accessibility/roles-computedRoleString.html:
  • accessibility/roles-exposed.html:
  • accessibility/secure-textfield-title-ui.html:
  • accessibility/select-element-at-index.html:
  • accessibility/svg-bounds.html:
  • accessibility/table-column-headers-with-captions.html:
  • accessibility/table-fallback-roles-expose-element-attributes.html:
  • accessibility/table-with-footer-section-above-body.html:
  • platform/glib/accessibility/platform-name-expected.txt:
  • resources/accessibility-helper.js:

(platformValueForW3CName):
(platformValueForW3CDescription):
(platformRoleForComboBox):
(platformRoleForStaticText):
(spinnerForTextInput):

10:06 PM Changeset in webkit [289027] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty

[XCBuild] Users of libgtest.a depend on headers from gtest.framework
https://bugs.webkit.org/show_bug.cgi?id=236045

Patch by Elliott Williams <Elliott Williams> on 2022-02-02
Reviewed by Alexey Proskuryakov.

In Make-based sequential builds, gtest's dynamic target builds, even though we don't use
it. Downstream projects were relying on that target to build and produce a gtest.framework
with headers in it.

Instead, configure gtest's static target to copy the project's include directory into
build products. Headers are copied to $BUILT_PRODUCTS_DIR/usr/lib/include/gtest.

  • gtest/xcode/gtest.xcodeproj/project.pbxproj: Added folder reference to include.
9:32 PM Changeset in webkit [289026] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Remove debug log accidentally added with r289018
https://bugs.webkit.org/show_bug.cgi?id=236000

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

9:07 PM Changeset in webkit [289025] by Fujii Hironori
  • 3 edits in trunk/Tools

[MiniBrowser][Win][WK2] Show MessageBox for alert, confirm and prompt
https://bugs.webkit.org/show_bug.cgi?id=236047

Reviewed by Don Olmstead.

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(createWKString):
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::runJavaScriptAlert):
(WebKitBrowserWindow::runJavaScriptConfirm):
(WebKitBrowserWindow::runJavaScriptPrompt):

  • MiniBrowser/win/WebKitBrowserWindow.h:
8:16 PM Changeset in webkit [289024] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

SecureARM64EHashPins should check g_jscConfig.useFastJITPermissions
https://bugs.webkit.org/show_bug.cgi?id=236055
<rdar://88222677>

Reviewed by Mark Lam.

  • assembler/SecureARM64EHashPins.cpp:

(JSC::SecureARM64EHashPins::initializeAtStartup):
(JSC::SecureARM64EHashPins::allocatePinForCurrentThread):
(JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):

  • assembler/SecureARM64EHashPinsInlines.h:

(JSC::SecureARM64EHashPins::pinForCurrentThread):

6:19 PM Changeset in webkit [289023] by Chris Dumez
  • 11 edits
    1 copy in trunk/Source/WebCore

Move connect event dispatch logic to SharedWorkerGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=236038

Reviewed by Darin Adler.

Move connect event dispatch logic to SharedWorkerGlobalScope and add logging.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/Logging.h:
  • workers/shared/SharedWorkerGlobalScope.cpp:

(WebCore::SharedWorkerGlobalScope::SharedWorkerGlobalScope):
(WebCore::SharedWorkerGlobalScope::thread):
(WebCore::SharedWorkerGlobalScope::close):
(WebCore::SharedWorkerGlobalScope::postConnectEvent):

  • workers/shared/SharedWorkerGlobalScope.h:
  • workers/shared/SharedWorkerIdentifier.h: Copied from Source/WebCore/workers/shared/context/SharedWorkerThread.h.
  • workers/shared/SharedWorkerManager.cpp:

(WebCore::SharedWorkerManager::scriptLoadedSuccessfully):

  • workers/shared/context/SharedWorkerThread.cpp:

(WebCore::SharedWorkerThread::SharedWorkerThread):
(WebCore::SharedWorkerThread::createWorkerGlobalScope):

  • workers/shared/context/SharedWorkerThread.h:

(WebCore::SharedWorkerThread::identifier const):

  • workers/shared/context/SharedWorkerThreadProxy.cpp:

(WebCore::SharedWorkerThreadProxy::startWorkerGlobalScope):
(WebCore::SharedWorkerThreadProxy::identifier const):

  • workers/shared/context/SharedWorkerThreadProxy.h:
6:17 PM Changeset in webkit [289022] by Patrick Griffis
  • 17 edits in trunk

CSP: Implement wasm-unsafe-eval
https://bugs.webkit.org/show_bug.cgi?id=235408

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations with new passes.

  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt:

Source/WebCore:

This is similar to 'unsafe-eval' except limited in scope to WebAssembly.

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::checkWasmEval):
(WebCore::ContentSecurityPolicyDirectiveList::create):

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parseSource):

  • page/csp/ContentSecurityPolicySourceList.h:

(WebCore::ContentSecurityPolicySourceList::allowWasmEval const):

  • page/csp/ContentSecurityPolicySourceListDirective.h:

(WebCore::ContentSecurityPolicySourceListDirective::allowWasmEval const):

LayoutTests:

Update expectations with new CSP message.

  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-about-blank-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-external-script-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-subframe-expected.txt:
6:00 PM Changeset in webkit [289021] by Patrick Griffis
  • 5 edits
    1 move
    1 add
    1 delete in trunk

CSP: Fix matching wildcard hosts
https://bugs.webkit.org/show_bug.cgi?id=235992

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations.

  • web-platform-tests/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub-expected.txt:

Source/WebCore:

As per the spec wildcard hosts must include the leading '.' for matches:
https://www.w3.org/TR/CSP3/#match-hosts.

Test: http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked.html

  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::hostMatches const):

LayoutTests:

Rewrite test to expect CSP3 compliant behavior.

  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-allowed-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked.html: Renamed from LayoutTests/http/tests/security/contentSecurityPolicy/image-full-host-wildcard-allowed.html.
5:03 PM Changeset in webkit [289020] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

Speed-up JSON.stringify() by avoiding "toJSON" property lookups
https://bugs.webkit.org/show_bug.cgi?id=235996

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-02-02
Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/json-stringify-many-objects-to-json.js:

Make this test a little more realistic by moving "toJSON" onto prototype.

  • microbenchmarks/vanilla-todomvc-json-stringify.js: Added.

Source/JavaScriptCore:

Speedometer2/Vanilla* subtests are highly reliant on JSON.stringify() for "storage":
it accounts for 10-15% of running time. EmberJS* subtests rely on JSON.stringify() as
well, although they are significantly slower overall, and also encounter only a few
different structures.

This patch caches "toJSON" properties on Structure's rare data; it's the same technique
we are using in toPrimitive() to avoid "toString" / "valueOf" lookups. The microbenchmark,
which was carefully extracted from Speedometer2/Vanilla* subtests, progressed by 3.7%.

While we could come up with a solution that doesn't involve creating StructureRareData
for all structures we stringify, like keeping a list of StructureIDs w/o "toJSON" method,
which will be correct as long as m_hasFastObjectProperties || m_isJSArray is true for all
seen objects, that would probably miss some edge case, won't persist between JSON.stringify()
calls, and won't speed-up structures with "toJSON" methods like Dates.

  • runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp:

(JSC::CachedSpecialPropertyAdaptiveStructureWatchpoint::fireInternal):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::toJSON):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::cacheSpecialPropertySlow):
(JSC::CachedSpecialPropertyAdaptiveInferredPropertyValueWatchpoint::handleFire):

  • runtime/StructureRareData.h:
4:59 PM Changeset in webkit [289019] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/87830583

REGRESSION(r287684) speedtest.net uses many GB of memory
https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

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

4:58 PM Changeset in webkit [289018] by commit-queue@webkit.org
  • 40 edits
    1 add in trunk/Source

Use private relay for all subresources if the main document main resource was loaded using private relay
https://bugs.webkit.org/show_bug.cgi?id=236000
Source/WebCore:

<rdar://87358372>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

This can be manually tested using instructions in the radar.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setMainResourceWasPrivateRelayed):
(WebCore::DocumentLoader::mainResourceWasPrivateRelayed const):

Source/WebCore/PAL:

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::didReceiveResponse):

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveResponse):

  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::didReceiveResponse):

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::notifyDidReceiveResponse):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::sendDidReceiveResponsePotentiallyInNewBrowsingContextGroup):
(WebKit::NetworkResourceLoader::didFinishWithRedirectResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::didReceiveResponse):

  • NetworkProcess/PingLoad.h:
  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::didReceiveResponse):

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::processResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:

(WebKit::ServiceWorkerNavigationPreloader::loadWithCacheEntry):
(WebKit::ServiceWorkerNavigationPreloader::willSendRedirectedRequest):
(WebKit::ServiceWorkerNavigationPreloader::didReceiveResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::didReceiveResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

  • Shared/PrivateRelayed.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::addParametersShared):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::mainFrameMainResource const):
(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::didReceiveResponse):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
4:56 PM Changeset in webkit [289017] by commit-queue@webkit.org
  • 8 edits in trunk/Source

[Xcode] Fix redundant execution of "Check VTables..." script
https://bugs.webkit.org/show_bug.cgi?id=236032

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

Source/JavaScriptCore:

Tools/Scripts/check-for-weak-vtables-and-externals already touches a timestamp file after
every execution. Add it as an output file to all "Check For Weak VTables and Externals"
script phases.

These script phases already list their respective executables as inputs. This change shaves
a few seconds off the null build time.

  • JavaScriptCore.xcodeproj/project.pbxproj: Add timestamp file to script phase.

Source/ThirdParty/libwebrtc:

  • libwebrtc.xcodeproj/project.pbxproj: Add timestamp file to script phase.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Add timestamp file to script phase.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Add timestamp file to script phase.
4:48 PM Changeset in webkit [289016] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GLIB] Unreviewed debug buildfix after r288872
https://bugs.webkit.org/show_bug.cgi?id=236036

The actual issue was the roleNames array provided to SortedArrayMap
constructor wasn't fully ordered, making isSortedConstExpr to fail,
generating the call to WTFReport..., which is non-constexpr and thus
the compile failure.

This commit revert the previous fix from r288990 and fix the ordering of
roleNames.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::localizedRoleName):

4:34 PM Changeset in webkit [289015] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename CompileWebKitWithoutPatch to CompileWebKitWithoutChange
https://bugs.webkit.org/show_bug.cgi?id=235949
<rdar://problem/88325688>

Reviewed by Aakash Jain.

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

(CompileWebKit.evaluateCommand): Rename CompileWebKitWithoutPatch
to CompileWebKitWithoutChange.
(CompileWebKitWithoutChange): Ditto.
(AnalyzeCompileWebKitResults.analyzeResults): Ditto.
(ReRunWebKitTests.evaluateCommand): Rename CompileWebKitWithoutPatch
to CompileWebKitWithoutChange, only retry if build is for a patch.
(RunWebKitTestsRedTree.evaluateCommand): Ditto.
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.
(CompileWebKitWithoutPatch): Renamed to CompileWebKitWithoutChange.

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

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

4:32 PM Changeset in webkit [289014] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

Keyframe resolution methods should use reference instead of pointer parameters
https://bugs.webkit.org/show_bug.cgi?id=236020

Reviewed by Dean Jackson.

The Style::Resolver::styleForKeyframe() method would take in a const RenderStyle*
and a const StyleRuleKeyframe* but these parameters were used without null checks.
This patch changes this method signature to take in references instead, which involves
also changing the signature for Style::Resolver::keyframeStylesForAnimation().

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::fillImplicitKeyframes):

  • rendering/style/KeyframeList.h:
  • style/StyleResolver.cpp:

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

  • style/StyleResolver.h:
4:30 PM Changeset in webkit [289013] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Improve color contrast of dark mode syntax highlighting
https://bugs.webkit.org/show_bug.cgi?id=236041

Reviewed by Simon Fraser.

  • wp-content/themes/webkit/style.css:

(@media(prefers-color-scheme:dark) :root):

4:09 PM Changeset in webkit [289012] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebKit

Remove OriginStorageManager if it's not in use
https://bugs.webkit.org/show_bug.cgi?id=236029

Reviewed by Darin Adler.

We should remove OriginStorageManager if it does not contains in-memory data and its origin data is not being
used by any web process.

  • NetworkProcess/storage/FileSystemStorageManager.cpp:

(WebKit::FileSystemStorageManager::isActive const):

  • NetworkProcess/storage/FileSystemStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::stopReceivingMessageFromConnection):

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::connectionClosed):
(WebKit::OriginStorageManager::StorageBucket::isActive const):

4:07 PM Changeset in webkit [289011] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.0.4

Tag Safari-613.1.16.0.4.

4:07 PM Changeset in webkit [289010] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.3

Tag Safari-613.1.16.1.3.

4:05 PM Changeset in webkit [289009] by Russell Epstein
  • 1 delete in tags/Safari-613.1.16.0.4

Delete tag.

4:05 PM Changeset in webkit [289008] by Russell Epstein
  • 1 delete in tags/Safari-613.1.16.1.3

Delete tag.

3:57 PM Changeset in webkit [289007] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

Percentage word spacing doesn't incorporate synthetic bold expansion
https://bugs.webkit.org/show_bug.cgi?id=236007

Reviewed by Alan Bujtas.

Source/WebCore:

The solution is to copy the approach in https://trac.webkit.org/changeset/288944/webkit
to make sure the space glyph works correctly with synthetic bold and fallback fonts.

This also renames FontCascade::spaceWidth() to FontCascade::widthOfSpaceString(),
so it's more clear what it's actually doing.

Test: fast/text/synthetic-bold-percentage-word-spacing.html

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::metricsOfPrimaryFont const):
(WebCore::FontCascade::spaceWidth const): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setWordSpacing):

LayoutTests:

  • fast/text/synthetic-bold-percentage-word-spacing-expected.html: Added.
  • fast/text/synthetic-bold-percentage-word-spacing.html: Added.
3:55 PM Changeset in webkit [289006] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/87830583

REGRESSION(r287684) speedtest.net uses many GB of memory
https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

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

3:50 PM Changeset in webkit [289005] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.0.4

Tag Safari-612.4.9.0.4.

3:49 PM Changeset in webkit [289004] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.1.8

Tag Safari-612.4.9.1.8.

3:43 PM Changeset in webkit [289003] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.3

Tag Safari-613.1.16.1.3.

3:42 PM Changeset in webkit [289002] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.0.4

Tag Safari-613.1.16.0.4.

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

[JSC] Crash on several pages after r287986
https://bugs.webkit.org/show_bug.cgi?id=236033

Reviewed by Tim Horton.

I noticed that Safari crashes when opening https://linux.die.net/man/3/localtime.
This is happening after r287986: we are calling [self release], but the [JSValue dealloc]
cannot work if _context is nil. We should add a guard.

  • API/JSValue.mm:

(-[JSValue dealloc]):

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):

3:25 PM Changeset in webkit [289000] by Chris Dumez
  • 7 edits
    1 move in trunk/Source/WebCore

Move TransferredMessagePort to its own header
https://bugs.webkit.org/show_bug.cgi?id=236028

Reviewed by Geoffrey Garen.

Move TransferredMessagePort to its own header so that Shared Worker doesn't need to include the whole MessageWithMessagePorts.h header.
It also facilitates passing a TransferredMessagePort in IPC, which will be needed.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentanglePorts):
(WebCore::MessagePort::entanglePorts):

  • dom/MessagePort.h:
  • dom/messageports/MessageWithMessagePorts.h:
  • dom/messageports/TransferredMessagePort.h: Copied from Source/WebCore/dom/messageports/MessageWithMessagePorts.h.
3:04 PM Changeset in webkit [288999] by timothy@apple.com
  • 24 edits in trunk

Web Inspector: didShowExtensionTab needs to pass the frameID of the tab
https://bugs.webkit.org/show_bug.cgi?id=236023
rdar://problem/88383984

Reviewed by BJ Burg.

Source/WebCore:

  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::didShowExtensionTab):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::didShowExtensionTab):

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:

Source/WebInspectorUI:

  • UserInterface/Views/WebInspectorExtensionTabContentView.js:

(WI.WebInspectorExtensionTabContentView.prototype._maybeDispatchDidShowExtensionTab):
(WI.WebInspectorExtensionTabContentView):

Source/WebKit:

  • UIProcess/API/APIInspectorExtensionClient.h:

(API::InspectorExtensionClient::didShowExtensionTab):

  • UIProcess/API/Cocoa/_WKInspectorExtensionDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.mm:

(WebKit::InspectorExtensionDelegate::InspectorExtensionDelegate):
(WebKit::InspectorExtensionDelegate::InspectorExtensionClient::didShowExtensionTab):

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::didShowExtensionTab):

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.messages.in:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::didShowExtensionTab):

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::didShowExtensionTab):

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp:

(WebKit::WebInspectorUIExtensionController::didShowExtensionTab):

  • WebProcess/Inspector/WebInspectorUIExtensionController.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:

(-[InspectorExtensionDelegateForTestingInspectorExtension inspectorExtension:didShowTabWithIdentifier:withFrameHandle:]):
(-[InspectorExtensionDelegateForTestingInspectorExtension inspectorExtension:didShowTabWithIdentifier:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:

(-[InspectorExtensionDelegateForTesting inspectorExtension:didShowTabWithIdentifier:withFrameHandle:]):
(-[InspectorExtensionDelegateForTesting inspectorExtension:didShowTabWithIdentifier:]): Deleted.

2:37 PM Changeset in webkit [288998] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.0-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/87830583

REGRESSION(r287684) speedtest.net uses many GB of memory
https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

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

2:30 PM Changeset in webkit [288997] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebInspectorUI

WebInspector: Add additional image MIME types to frontend
https://bugs.webkit.org/show_bug.cgi?id=235977

Reviewed by Patrick Angle.

Add MIME types around JPEG 2000, JPEG XL and AVIF. Sort the listings based on the file
extension to make it easier to spot missing image formats.

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.mimeTypeForFileExtension):
(WI.fileExtensionForMIMEType):

2:13 PM Changeset in webkit [288996] by Patrick Angle
  • 6 edits
    1 add in trunk

No breakpoints hit on github.com, and some are invalid
https://bugs.webkit.org/show_bug.cgi?id=235607

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Added test case in: inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html

Previously not all line terminations resulted in setting the m_lineStart to the current m_code, which meant
that the location for pause-able locations and stack traces were inaccurate when they were on a line that
terminated multi-line comments, strings, or template strings. We now always update m_lineStart when shifting for
a line terminator, instead of only when the terminator appears outside a string or comment.

  • debugger/Breakpoint.cpp:

(JSC::Breakpoint::resolve):

  • The existing assertions were somewhat in conflict with each other. If we permit the line number to increase,

there is no guarantee that the column number will remain the same or increase, which can now more easily occur
with multi-line strings. Instead, we should make sure that the overall offset has increase.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::shiftLineTerminator):
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
(JSC::Lexer<T>::scanTemplateString):

  • Make sure the token start offset and start line offset are correctly set for strings.

LayoutTests:

Add test cases for resolving breakpoints on lines that begin with the end of multi-line strings, comments, and
template strings.

  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html:
  • inspector/debugger/breakpoints/resources/dump-multiline.js: Added.
1:53 PM Changeset in webkit [288995] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] YarrJIT m_checkedOffset should be pre-computed and stored to Yarr op
https://bugs.webkit.org/show_bug.cgi?id=235932

Reviewed by Keith Miller.

Instead of adhocly calculating m_checkedOffset while generating the machine code,
let's just pre-compute it and store it to Yarr JIT IR so that we can simplify
m_checkedOffset handling. This paves the way to also pre-compute safe-length
so that we can skip some of length check in parenthesized-assertions.

  • yarr/YarrJIT.cpp:
1:41 PM Changeset in webkit [288994] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Stop defaulting to ld.gold
https://bugs.webkit.org/show_bug.cgi?id=235476

Reviewed by Michael Catanzaro.

Remove the USE_LD_GOLD option, and let the build use by default the system linker.

The output from running the linker with -Wl,--version is matched to determine which linker
is currently in use, and set variables LD_SUPPORTS_<feature> accordingly. This is needed
because not all of them support certain features and after a few attempts at doing feature
checks it was becoming clear that on one hand the checks were getting gnarly, and on the
other hand vetting certain linkers provides a stronger guarantee of sucessful builds.

Similarly, extend the check used to determine whether the static library archiver supports
thin archivers to cover the one included with LLVM (llvm-ar), and enable usage of think
archivers if they can be both created by the archiver and consumed by the linker. Previously
the build system was enabling thin archives without knowing whether the linker would succeed
using them.

  • Source/cmake/OptionsCommon.cmake:
1:38 PM Changeset in webkit [288993] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[JSC] Remove compiler warning in TrailingArray.h
https://bugs.webkit.org/show_bug.cgi?id=236014

Patch by Xan Lopez <Xan Lopez> on 2022-02-02
Reviewed by Yusuke Suzuki.

  • wtf/TrailingArray.h:

(WTF::TrailingArray::TrailingArray): cast the std::distance result
to size_t, we want to compare the absolute value of the distance
with the 'unsigned int' size.

1:10 PM Changeset in webkit [288992] by Patrick Griffis
  • 20 edits in trunk

CSP: Fix returned WebAssembly error type when blocked
https://bugs.webkit.org/show_bug.cgi?id=235319

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations with more passes.

  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt:

Source/JavaScriptCore:

As per the spec it should return WebAssembly.CompileError.

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::tryCreate):

LayoutTests:

Update expectations.

  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-about-blank-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-external-script-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-subframe-expected.txt:
1:08 PM Changeset in webkit [288991] by Said Abou-Hallawa
  • 16 edits in trunk

[GPU Process] Remove DisplayList::Replayer::Delegate and DisplayList::RecorderImpl::Delegate
https://bugs.webkit.org/show_bug.cgi?id=235939

Reviewed by Wenson Hsieh.

Source/WebCore:

These classes are abstract classes and they are not overridden by any
client right now. These unused classes should be removed after the display
list stream connection refactoring.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::changeDestinationImageBuffer): Deleted.
(WebCore::ImageBuffer::prepareToAppendDisplayListItems): Deleted.

  • platform/graphics/displaylists/DisplayListDrawingContext.cpp:

(WebCore::DisplayList::DrawingContext::DrawingContext):

  • platform/graphics/displaylists/DisplayListDrawingContext.h:

(WebCore::DisplayList::DrawingContext::DrawingContext):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::ImageBuffer):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::RecorderImpl):
(WebCore::DisplayList::RecorderImpl::recordResourceUse):
(WebCore::DisplayList::RecorderImpl::canAppendItemOfType const): Deleted.
(WebCore::DisplayList::RecorderImpl::canDrawImageBuffer const): Deleted.
(WebCore::DisplayList::RecorderImpl::renderingMode const): Deleted.

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:

(WebCore::DisplayList::RecorderImpl::append):
(WebCore::DisplayList::RecorderImpl::Delegate::~Delegate): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::canAppendItemOfType): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::recordNativeImageUse): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::isCachedImageBuffer const): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::recordFontUse): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::recordImageBufferUse): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::renderingMode const): Deleted.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::Replayer):
(WebCore::DisplayList::applyImageBufferItem):
(WebCore::DisplayList::applyNativeImageItem):
(WebCore::DisplayList::applySetStateItem):
(WebCore::DisplayList::applyFontItem):
(WebCore::DisplayList::Replayer::applyItem):

  • platform/graphics/displaylists/DisplayListReplayer.h:

(WebCore::DisplayList::Replayer::Delegate::~Delegate): Deleted.
(WebCore::DisplayList::Replayer::Delegate::apply): Deleted.
(WebCore::DisplayList::Replayer::Delegate::didCreateMaskImageBuffer): Deleted.
(WebCore::DisplayList::Replayer::Delegate::didResetMaskImageBuffer): Deleted.
(WebCore::DisplayList::Replayer::Delegate::recordResourceUse): Deleted.

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):
(WebKit::RemoteDisplayListRecorderProxy::canDrawImageBuffer const): Deleted.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:

(TestWebKitAPI::TEST):

12:54 PM Changeset in webkit [288990] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GLIB] Unreviewed debug buildfix after r288872
https://bugs.webkit.org/show_bug.cgi?id=236036

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::localizedRoleName):

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

Unmute link errors for ES module scripts
https://bugs.webkit.org/show_bug.cgi?id=235925

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

LayoutTests/imported/w3c:

Adjust test expectations for error handling changes.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/choice-of-error-2-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/error-type-3-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-1-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-2-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-6-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-7-expected.txt:

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld):

12:49 PM Changeset in webkit [288988] by Ryan Haddad
  • 2 edits in trunk/Tools

Bring up additional test queues on Big Sur
https://bugs.webkit.org/show_bug.cgi?id=235446

Unreviewed infrastructure fix.

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot): Move the performance queue to the Big Sur section of the dashboard.

12:41 PM Changeset in webkit [288987] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r288955. rdar://problem/88359001

Unreviewed, reverting r286988.
https://bugs.webkit.org/show_bug.cgi?id=236006

Broke form submission for multiple <input type='image'>

Reverted changeset:

"A FormData constructed in the form's submit event listener
shouldn't include the submitter"
https://bugs.webkit.org/show_bug.cgi?id=234069
https://commits.webkit.org/r286988

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

12:41 PM Changeset in webkit [288986] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288423. rdar://problem/87701738

m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.

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

12:40 PM Changeset in webkit [288985] by Pablo Saavedra
  • 4 edits in trunk/Source/WebCore

Fixes for non-unified builds after r288868
https://bugs.webkit.org/show_bug.cgi?id=235984

Reviewed by Chris Dumez.

  • layout/integration/InlineIteratorInlineBox.cpp:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderInline.cpp:
12:40 PM Changeset in webkit [288984] by Russell Epstein
  • 12 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/86150540

12:33 PM Changeset in webkit [288983] by Russell Epstein
  • 6 edits in branches/safari-613.1.16.1-branch

Cherry-pick r288955. rdar://problem/88359001

Unreviewed, reverting r286988.
https://bugs.webkit.org/show_bug.cgi?id=236006

Broke form submission for multiple <input type='image'>

Reverted changeset:

"A FormData constructed in the form's submit event listener
shouldn't include the submitter"
https://bugs.webkit.org/show_bug.cgi?id=234069
https://commits.webkit.org/r286988

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

12:33 PM Changeset in webkit [288982] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.16.1-branch

Cherry-pick r288423. rdar://problem/87701738

m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.

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

12:33 PM Changeset in webkit [288981] by Russell Epstein
  • 12 edits in branches/safari-613.1.16.1-branch/Source/WebKit

Apply patch. rdar://problem/86150540

12:28 PM Changeset in webkit [288980] by Russell Epstein
  • 6 edits in branches/safari-613.1.16.0-branch

Cherry-pick r288955. rdar://problem/88359001

Unreviewed, reverting r286988.
https://bugs.webkit.org/show_bug.cgi?id=236006

Broke form submission for multiple <input type='image'>

Reverted changeset:

"A FormData constructed in the form's submit event listener
shouldn't include the submitter"
https://bugs.webkit.org/show_bug.cgi?id=234069
https://commits.webkit.org/r286988

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

12:28 PM Changeset in webkit [288979] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.16.0-branch

Cherry-pick r288423. rdar://problem/87701738

m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.

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

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

Versioning.

WebKit-7613.1.16.1.3

12:06 PM Changeset in webkit [288977] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

REGRESSION(r288865): SourceImage should never sink its ImageBuffer to a NativeImage
https://bugs.webkit.org/show_bug.cgi?id=236005

Reviewed by Simon Fraser.

Source/WebCore:

The r288865 changes SourceImage::nativeImage() such that if the image
variant has an ImageBuffer, it will sink this ImageBuffer into a NativeImage
and return this NativeImage to the caller. This was incorrect change
because this would invalidate the ImageBufferBackend of the SourceImage.

The fix is to copy the ImageBuffer to a NativeImage (DontCopyBackingStore)
and store it into another image variant. This will keep the ImageBuffer
valid and will prevent subsequent conversion if this function is called
multiple times.

Similar changes should be applied to SourceImage::imageBuffer().

Test: svg/custom/pattern-multiple-referencing.html

  • platform/graphics/SourceImage.cpp:

(WebCore::nativeImageOf):
(WebCore::SourceImage::nativeImageIfExists const):
(WebCore::SourceImage::nativeImage const):
(WebCore::imageBufferOf):
(WebCore::SourceImage::imageBufferIfExists const):
(WebCore::SourceImage::imageBuffer const):

  • platform/graphics/SourceImage.h:

LayoutTests:

  • svg/custom/pattern-multiple-referencing-expected.txt: Added.
  • svg/custom/pattern-multiple-referencing.html: Added.
11:58 AM Changeset in webkit [288976] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.0-branch/Source

Versioning.

WebKit-7613.1.16.0.4

11:56 AM Changeset in webkit [288975] by Chris Dumez
  • 8 edits
    4 moves
    1 add in trunk/Source/WebCore

Move SharedWorkerThread & SharedWorkerProxy to workers/shared/context/
https://bugs.webkit.org/show_bug.cgi?id=236017

Reviewed by Youenn Fablet.

Move SharedWorkerThread & SharedWorkerProxy to workers/shared/context/, for consistency with service workers.
Also rename SharedWorkerProxy to SharedWorkerThreadProxy.

  • CMakeLists.txt:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/shared/SharedWorker.cpp:

(WebCore::SharedWorker::SharedWorker):

  • workers/shared/SharedWorker.h:
  • workers/shared/SharedWorkerManager.cpp:
  • workers/shared/context/SharedWorkerThread.cpp: Renamed from Source/WebCore/workers/shared/SharedWorkerThread.cpp.
  • workers/shared/context/SharedWorkerThread.h: Renamed from Source/WebCore/workers/shared/SharedWorkerThread.h.
  • workers/shared/context/SharedWorkerThreadProxy.cpp: Renamed from Source/WebCore/workers/shared/SharedWorkerProxy.cpp.
  • workers/shared/context/SharedWorkerThreadProxy.h: Renamed from Source/WebCore/workers/shared/SharedWorkerProxy.h.
11:51 AM Changeset in webkit [288974] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Support sending WorkerOptions over IPC
https://bugs.webkit.org/show_bug.cgi?id=236026

Reviewed by Sam Weinig.

Support sending WorkerOptions over IPC, as this is will needed by Shared Workers.

  • workers/WorkerGlobalScopeProxy.h:
  • workers/WorkerOptions.h:

(WebCore::WorkerOptions::encode const):
(WebCore::WorkerOptions::decode):

  • workers/WorkerType.h:
  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerRegistrationOptions.h:
  • workers/service/server/SWServerWorker.h:
11:30 AM Changeset in webkit [288973] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Enable overflow:clip feature
https://bugs.webkit.org/show_bug.cgi?id=236008

Patch by Rob Buis <rbuis@igalia.com> on 2022-02-02
Reviewed by Simon Fraser.

Enable overflow:clip feature.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
11:13 AM Changeset in webkit [288972] by Chris Dumez
  • 9 edits
    3 adds in trunk/Source

Move and rename ServiceWorkerFrameLoaderClient & ServiceWorkerLibWebRTCProvider
https://bugs.webkit.org/show_bug.cgi?id=236016

Reviewed by Youenn Fablet.

Move and rename ServiceWorkerFrameLoaderClient & ServiceWorkerLibWebRTCProvider so that they can be reused by Shared Workers.

Source/WebCore:

  • loader/FrameLoaderClient.h:

Source/WebKit:

  • Platform/Logging.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

  • WebProcess/Storage/RemoteWorkerFrameLoaderClient.cpp: Added.

(WebKit::RemoteWorkerFrameLoaderClient::RemoteWorkerFrameLoaderClient):
(WebKit::RemoteWorkerFrameLoaderClient::createDocumentLoader):

  • WebProcess/Storage/RemoteWorkerFrameLoaderClient.h: Added.

(isType):

  • WebProcess/Storage/RemoteWorkerLibWebRTCProvider.h: Added.
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):
(WebKit::WebSWContextManagerConnection::continueDidReceiveFetchResponse):
(): Deleted.
(WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient): Deleted.
(WebKit::ServiceWorkerFrameLoaderClient::createDocumentLoader): Deleted.

  • WebProcess/Storage/WebSWContextManagerConnection.h:

(isType): Deleted.

10:54 AM Changeset in webkit [288971] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Generate webrtc encoder src pad template based on supported platform encoders
https://bugs.webkit.org/show_bug.cgi?id=235964

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-02
Reviewed by Xabier Rodriguez-Calvar.

Without this patch there was no guarantee the encoder would setup correctly in case the
encoder matching the requested caps is not available at runtime.

  • platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp:

(Encoders::registerEncoder):
(createSrcPadTemplateCaps):
(webkit_webrtc_video_encoder_class_init):

10:50 AM Changeset in webkit [288970] by mark.lam@apple.com
  • 6 edits in trunk/Source

Update computation of FAST_TLS base.
https://bugs.webkit.org/show_bug.cgi?id=235934

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::loadFromTLS32):
(JSC::MacroAssemblerARM64::loadFromTLS64):
(JSC::MacroAssemblerARM64::storeToTLS32):
(JSC::MacroAssemblerARM64::storeToTLS64):

  • assembler/SecureARM64EHashPinsInlines.h:

(JSC::SecureARM64EHashPins::keyForCurrentThread):

  • offlineasm/arm64.rb:

Source/WTF:

  • wtf/PlatformHave.h:
10:46 AM Changeset in webkit [288969] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

  • Tools/Scripts/git-webkit: Log to 'info' not 'warning.'

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

10:46 AM Changeset in webkit [288968] by Jonathan Bedard
  • 7 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

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

(Branch.main): Make it clear why we're prompting the user for a branch name.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:

(TestBranch.test_prompt_git):

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

10:46 AM Changeset in webkit [288967] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

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

(Setup.git): Make it clear to users that configurations are being set only
on the local repository.

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

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

10:46 AM Changeset in webkit [288966] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py:

(Terminal.input): Gracefully handle keyboard interrupt

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/terminal_unittest.py:

(TerminalTests.test_interrupt):

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

10:45 AM Changeset in webkit [288965] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py: Use token form url.
  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py: Use token form url.

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

10:44 AM Changeset in webkit [288964] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

CSSPropertyAnimation::animatableShorthandsAffectingProperty() is unused
https://bugs.webkit.org/show_bug.cgi?id=236022

Reviewed by Dean Jackson.

This method is a remnant from the legacy animation engine and should be removed.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty): Deleted.

  • animation/CSSPropertyAnimation.h:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::gatherEnclosingShorthandProperties): Deleted.
(WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty): Deleted.

  • animation/CSSPropertyAnimation.h:
10:42 AM Changeset in webkit [288963] by Andres Gonzalez
  • 5 edits in trunk/Source/WebCore

Make modifications to the isolated Tree atomic.
https://bugs.webkit.org/show_bug.cgi?id=235683
<rdar://problem/88108412>

Reviewed by Chris Fleizach.

Covered by existing tests.

The isolated tree is currently updated in a non-atomic fashion, i.e.,
nodes are added or removed while clients are accessing the tree in an
inconsistent state. The idea of this patch is to make all necessary
changes in the tree in one atomic operation while the client thread,
or AX secondary thread, is blocked. To accomplish this and still be
responsive to client's requests on the AX thread, it is necessary that
all the processing in preparation for the update of the isolated tree
happens on the main thread without blocking the AX thread, and then do
the update of the tree in one atomic operation.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):
Rearranged the properties of the AXCoreObject to log most relevant on top.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
Removed AXTRACE from this method since it is called so often that it is
just noise in the log.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::generateSubtree):
It now collects all the changes to be perform and queues them in one
operation under lock.
(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueChange):
Queues one single change, must be called under lock.
(WebCore::AXIsolatedTree::queueChangesAndRemovals):
Queues all necessary changes to the isolated tree, additions and removals.
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
Collects on the main thread all the additions/changes to be done to the
isolated tree.
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::nodeAncestryChanges):
Connects a new isolated node to the existing hierarchy.
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
(WebCore::AXIsolatedTree::updateChildrenIDs): Deleted.
(WebCore::AXIsolatedTree::createSubtree): Deleted.
Replaced with collectNodeChanges and queueChangesAndRemovals.
(WebCore::AXIsolatedTree::updateSubtree): Deleted, not used.
(WebCore::AXIsolatedTree::removeSubtree): Deleted, not used.

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::queueChangesAndRemovals):

10:32 AM Changeset in webkit [288962] by Sam Sneddon
  • 2 edits in trunk/Tools

REGRESSION (r288869): webkitpy.w3c.test_converter_unittest.W3CTestConverterTest.test_convert_prefixed_properties is failing
https://bugs.webkit.org/show_bug.cgi?id=235961
<rdar://problem/88332029>

Reviewed by Ryan Haddad.

  • Scripts/webkitpy/w3c/test_converter_unittest.py:

(test_convert_prefixed_properties): Correct magic constant for number of tests.
(generate_test_content): Simplify, add clear assertion to catch in future.

10:14 AM Changeset in webkit [288961] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the macOS build after r288956
https://bugs.webkit.org/show_bug.cgi?id=235991

  • UIProcess/Cocoa/WebViewImpl.h:
10:10 AM Changeset in webkit [288960] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

null ptr deref in Editor::pasteWithPasteboard
https://bugs.webkit.org/show_bug.cgi?id=235966

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-02-02
Reviewed by Wenson Hsieh.

Add an additional check as pasteAsFragment's dispatchEvent can end up removing the client.

No new tests due to requiring Node web server (and cannot reproduce in LayoutTests/http/tests).

  • editing/mac/EditorMac.mm:

(WebCore::Editor::pasteWithPasteboard):

10:05 AM Changeset in webkit [288959] by Patrick Griffis
  • 5 edits
    55 adds in trunk/LayoutTests

WPT: Import WebAssembly CSP tests
https://bugs.webkit.org/show_bug.cgi?id=235319

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/w3c-import.log: Added.

LayoutTests:

Skip CSP tests that time out.

10:03 AM Changeset in webkit [288958] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] unit tests have become slower
https://bugs.webkit.org/show_bug.cgi?id=235364
<rdar://problem/88073408>

Reviewed by Aakash Jain.

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

time.sleep when testing PushCommitToWebKitRepo.

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

9:54 AM Changeset in webkit [288957] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Add access in sandbox to Mach message
https://bugs.webkit.org/show_bug.cgi?id=236021
<rdar://88300200>

Reviewed by Brent Fulgham.

Add access in sandbox to required Mach message in the WebContent process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
9:52 AM Changeset in webkit [288956] by Wenson Hsieh
  • 6 edits in trunk/Source/WebKit

Adjust some Live Text code to only use VKC-prefixed VisionKit classes if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS)
https://bugs.webkit.org/show_bug.cgi?id=235991

Reviewed by Megan Gardner.

Rather than creating VKCImageAnalysis/VKCImageAnalyzer/VKCImageAnalyzerRequest and statically casting to
VKImageAnalysis/VKImageAnalyzer/VKImageAnalyzerRequest respectively, add a typedef that abstracts away the
differing VK/VKC prefixes behind CocoaImage(Analysis|Analyzer|AnalyzerRequest), and use this typedef everywhere
we currently use the VK-prefixed types.

Since the VK-prefixed classes are being entirely removed and replaced with VKC-prefixed classes at some point,
this allows us to be consistent (at least, within a given OS version) about the VisionKit object types we're
creating and passing around in Live Text code.

No change in behavior.

  • Platform/cocoa/TextRecognitionUtilities.h:
  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::createImageAnalyzer):
(WebKit::createImageAnalyzerRequest):
(WebKit::makeTextRecognitionResult):
(WebKit::hasVisionKitCorePrefixedClasses): Deleted.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::ensureImageAnalyzer):
(WebKit::createImageAnalyzerRequest):
(WebKit::WebViewImpl::requestTextRecognition):
(WebKit::WebViewImpl::computeHasImageAnalysisResults):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView imageAnalyzer]):
(-[WKContentView createImageAnalyzerRequest:image:imageURL:]):
(-[WKContentView createImageAnalyzerRequest:image:]):
(-[WKContentView _updateContextMenuForMachineReadableCodeForImageAnalysis:]):
(-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]):
(-[WKContentView imageAnalysisGestureDidBegin:]):
(-[WKContentView _completeImageAnalysisRequestForContextMenu:requestIdentifier:hasTextResults:]):
(-[WKContentView imageAnalysisGestureDidTimeOut:]):

9:19 AM Changeset in webkit [288955] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r286988.
https://bugs.webkit.org/show_bug.cgi?id=236006

Broke form submission for multiple <input type='image'>

Reverted changeset:

"A FormData constructed in the form's submit event listener
shouldn't include the submitter"
https://bugs.webkit.org/show_bug.cgi?id=234069
https://commits.webkit.org/r286988

8:57 AM Changeset in webkit [288954] by youenn@apple.com
  • 9 edits in trunk/Source

RealtimeVideoSource::adaptVideoSample should not create IOSurfaces when running in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=236011
<rdar://88367968>

Reviewed by Eric Carlson.

Source/WebCore:

Add a way to not use IOSurfaces when using ImageTransferSessionVT.
Use this in RealtimeVideoSource to toggle IOSurface use on and off when downsampling samples.

Covered by existing tests.

  • platform/graphics/cv/CVUtilities.h:
  • platform/graphics/cv/CVUtilities.mm:
  • platform/graphics/cv/ImageTransferSessionVT.h:
  • platform/graphics/cv/ImageTransferSessionVT.mm:
  • platform/mediastream/RealtimeVideoSource.cpp:
  • platform/mediastream/RealtimeVideoSource.h:

Source/WebKit:

Disable IOSurface use for WebProcess RealtimeVideoSources.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:
8:43 AM Changeset in webkit [288953] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Display startObject and anchorObject objectID when logging AccessibilitySearchCriteria from AXLogger
https://bugs.webkit.org/show_bug.cgi?id=235997

Reviewed by Chris Fleizach.

With this patch, logging AccessibilitySearchCriteria will look like:

(SearchCriteria 0x2a7d13a80

(anchorObject 0x315ba9980, ID 492)
(startObject 0x0, ID 0)
...truncated...

This will help us correlate the IDs of anchorObject and startObject with other
log statements.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):

7:37 AM Changeset in webkit [288952] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/loadConfig.py

[ews] Read buildbot try credentials from passwords.json instead of env variables
https://bugs.webkit.org/show_bug.cgi?id=236015

Reviewed by Jonathan Bedard.

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

(loadBuilderConfig):

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

5:20 AM Changeset in webkit [288951] by youenn@apple.com
  • 21 edits
    4 adds in trunk/Source

LibWebRTCCodecs should not need to create IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=235951
<rdar://problem/88326654>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Introduce helper routines to copy a webrtc VideoFrame into a memory buffer and get a CVPixelBuffer from a webrtc VideoFrame.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

Source/WebCore:

Introduce SharedVideoFrameInfo as a helper class to serialize a CVPixelBuffer into memory and create a CVPixelBuffer from reading memory.

Covered by existing webrtc tests.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/SharedVideoFrameInfo.h: Added.
  • platform/cocoa/SharedVideoFrameInfo.mm: Added.
  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/graphics/RemoteVideoSample.cpp:
  • platform/graphics/RemoteVideoSample.h:

Source/WebKit:

Introduce SharedVideoFrameWriter and SharedVideoFrameReader to support shared memory sending of CVPixelBuffers that are non IOSurface backed.
To do so, we make use of SharedVideoFrameInfo from WebCore.
What we do is:

  • When getting a frame, allocate a shared memory that is big enough to copy its data and info in it. Create a semaphore to sync reader and writer.
  • If we allocate shared memory/semphore, send them over IPC to the SharedVideoFrameReader.
  • Wait for semaphore to tell us reader is fine for writing.
  • Write SharedVideoFrameInfo into the shared memory, then copy the raw bytes into the shared memory.
  • Send through IPC the video frame, no MacSendRight means to read the shared memory.

On reader side, for every frame that does not have an IOSurface, we read the shared memory, create an IOSurface from it and notify WebProcess that it can write the next frame.

In memory buffers are used for black frames at least.
webrtc/video-mute.html covers the patch.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp: Added.
  • WebProcess/GPU/webrtc/SharedVideoFrame.h: Added.
2:30 AM Changeset in webkit [288950] by youenn@apple.com
  • 60 edits in trunk

Clarify that some UUID routines are dedicated to UUID v4
https://bugs.webkit.org/show_bug.cgi?id=235430

Reviewed by Darin Adler.

Source/WebCore:

No change of behavior, this is renaming only.

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::CDMSessionClearKey):

  • Modules/entriesapi/DOMFileSystem.cpp:

(WebCore::DOMFileSystem::DOMFileSystem):

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::createAppHighlightRangeData):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::generateUUID):

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::MediaDevices):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::create):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::generateDatabaseFileName):

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::registerRoot):
(WebCore::AccessibilityAtspi::registerObject):
(WebCore::AccessibilityAtspi::registerHyperlink):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):

  • dom/Document.cpp:

(WebCore::Document::originIdentifierForPasteboard const):
(WebCore::Document::didInsertAttachmentElement):

  • fileapi/BlobURL.cpp:

(WebCore::BlobURL::createBlobURL):

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::ensureUniqueIdentifier):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::writeDataToUniqueFileInDirectory):

  • page/Crypto.cpp:

(WebCore::Crypto::randomUUID const):

  • platform/ScriptExecutionContextIdentifier.h:

(WebCore::ProcessQualified<UUID>::generate):

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

(WebCore::CDMSessionAVFoundationCF::CDMSessionAVFoundationCF):

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

(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):

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

(WebCore::CDMSessionAVStreamSession::update):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::create):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::RealtimeMediaSource):

  • platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:

(WebCore::GStreamerDisplayCaptureDeviceManager::computeCaptureDevices):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcPostStreamCollection):

  • platform/mediastream/ios/ReplayKitCaptureSource.mm:

(WebCore::screenDeviceUUID):

  • testing/Internals.cpp:

(WebCore::Internals::isDocumentAlive const):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstanceSession::requestLicense):

Source/WebDriver:

  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::startAutomationSession):

  • socket/SessionHostSocket.cpp:

(WebDriver::SessionHost::startAutomationSession):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::ensureSession):

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::toRecordInformation):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::open):

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::registerMDNSName):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::handleForWebPageProxy):
(WebKit::WebAutomationSession::handleForWebFrameID):

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/Cocoa/WKShareSheet.mm:

(+[WKShareSheet createRandomSharingDirectoryForFile:]):

  • UIProcess/GeolocationPermissionRequestManagerProxy.cpp:

(WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:

(WebKit::VirtualAuthenticatorManager::createAuthenticator):

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::WaylandCompositor):

  • UIProcess/ios/WKModelView.mm:

(-[WKModelView createFileForModel:]):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::createUUID):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::createFile):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::openWithPreview):
(WebKit::PDFPlugin::openWithNativeApplication):

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::ensureSession):

Source/WTF:

Rename UUID::create to UUID::createVersion4.
Add a UUID::parseVersion4 that validates the parsed UUID is a v4.
Rename createCanonicalUUIDString to createVersion4UUIDString for consistency.

Update UUID constructor to generate a UUID v4 as per spec.
Update UUID::toString to generate a string representation of any UUID, and not specifically to v4.

  • wtf/Identified.h:

(WTF::UUIDIdentified::UUIDIdentified):

  • wtf/URL.cpp:

(WTF::URL::fakeURLWithRelativePart):

  • wtf/UUID.cpp:

(WTF::UUID::UUID):
(WTF::UUID::toString const):
(WTF::UUID::parse):
(WTF::UUID::parseVersion4):
(WTF::createVersion4UUIDString):
(WTF::isVersion4UUID):
(WTF::createCanonicalUUIDString): Deleted.

  • wtf/UUID.h:

(WTF::UUID::createVersion4):
(WTF::UUID::create): Deleted.

  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::openTemporaryFile):

Tools:

  • TestWebKitAPI/Tests/WTF/UUID.cpp:

(parseAndStringifyUUID):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(waitUntilNetworkProcessIsResponsive):

  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::saltForOrigin):

2:15 AM Changeset in webkit [288949] by youenn@apple.com
  • 5 edits
    2 adds in trunk

ServiceWorkerNavigationPreloader should only be used once
https://bugs.webkit.org/show_bug.cgi?id=235882
<rdar://88226432>

Reviewed by Chris Dumez.

Source/WebKit:

In case service worker preload is being used and related service worker context crashes (or service worker context sends bad messages),
We can end up in a bad state where we will ask the preload twice for the same response (once for good, and the next one as we go to didNotHandle case).
To prevent this, we add checks in loadResponseFromPreloader and loadBodyFromPreloader.
As part of this investigation, I found out that ServiceWorkerNavigationPreloader is not correctly handling the case of preload responses coming from cache.
In particular, no body will be given since we return early in waitForBody in case the preload network load is null.
Prevent this by making sure waitForBody calls the response completion handler if available, even if the preload network load is null.
And update the response body callback before executing the response completion handler to make sure data received synchronously from the preload is given to the service worker fetch task.

Test: http/wpt/service-workers/fetch-service-worker-preload-cache.https.html

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:

LayoutTests:

  • http/wpt/service-workers/fetch-service-worker-preload-cache.https-expected.txt: Added.
  • http/wpt/service-workers/fetch-service-worker-preload-cache.https.html: Added.
  • http/wpt/service-workers/resources/fetch-service-worker-preload-script.py:
2:07 AM Changeset in webkit [288948] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[GStreamer] Add support for custom message handling in simpleBusMessageCallback
https://bugs.webkit.org/show_bug.cgi?id=235822

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-02
Reviewed by Xabier Rodriguez-Calvar.

Refactor most custom GStreamer message handlers to rely on the common "simple" handler,
which can now be augmented with an optional closure to do further message processing.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::handleMessage):
(WebCore::messageCallback): Deleted.

  • platform/audio/gstreamer/AudioDestinationGStreamer.h:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::disconnectSimpleBusMessageCallback):
(WebCore::CustomMessageHandlerHolder::CustomMessageHandlerHolder):
(WebCore::connectSimpleBusMessageCallback):
(WebCore::simpleBusMessageCallback): Deleted.

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::connectSimpleBusMessageCallback):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

1:12 AM Changeset in webkit [288947] by Martin Robinson
  • 6 edits
    2 adds in trunk

scroll-margin-top doesn't work on inline elements
https://bugs.webkit.org/show_bug.cgi?id=235933
<rdar://87983307>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scroll-snap/scroll-target-margin-006-expected.txt: Added.
  • web-platform-tests/css/css-scroll-snap/scroll-target-margin-006.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005.html

Move the implementation of absoluteAnchorRectWithScrollMargin which actually processes
the CSS scroll-margin property to RenderElement. This allows it to be used for inline
as well as block elements. The specification says it should apply to both. The box
sizes passed in here do not matter too much, because the Length should never be a
percentage.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::absoluteAnchorRectWithScrollMargin const): Deleted.

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

(WebCore::RenderElement::absoluteAnchorRectWithScrollMargin const):

  • rendering/RenderElement.h:
12:40 AM Changeset in webkit [288946] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Merge r286308 - Scripting attributes are sometimes not properly stripped from elements when JS is disabled
https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>

Reviewed by Geoffrey Garen.

Source/WebCore:

HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().

Covered by new API tests.

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:

(TEST):

12:22 AM Changeset in webkit [288945] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] wasm atomic opcodes should be rejected if alignment is not equal to natural width
https://bugs.webkit.org/show_bug.cgi?id=235990

Reviewed by Saam Barati.

JSTests:

  • wasm/stress/invalid-atomic-alignment.js: Added.

(async buildAndThrow):

Source/JavaScriptCore:

While normal load and store can accept larger alignment than an access width,
wasm module validator rejects if atomic ops' alignment is not equal to an access width.
This patch applies this restriction.
No runtime semantics change since atomic ops are always checked against an access width alignment.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::atomicLoad):
(JSC::Wasm::FunctionParser<Context>::atomicStore):
(JSC::Wasm::FunctionParser<Context>::atomicBinaryRMW):
(JSC::Wasm::FunctionParser<Context>::atomicCompareExchange):
(JSC::Wasm::FunctionParser<Context>::atomicWait):
(JSC::Wasm::FunctionParser<Context>::atomicNotify):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

Note: See TracTimeline for information about the timeline view.