Timeline



Feb 21, 2022:

10:53 PM Changeset in webkit [290290] by rmorisset@apple.com
  • 20 edits
    1 add
    1 delete in trunk/Source

[JSC] Format the output of --reportTotalPhaseTimes=1 more nicely
https://bugs.webkit.org/show_bug.cgi?id=237005

Reviewed by Saam Barati.

Source/JavaScriptCore:

Before this patch:
[B3] moveConstants total ms: 64.307583 max ms: 1.703167
[B3] lowerToAir total ms: 151.297782 max ms: 5.426375
[B3] generateToAir total ms: 1623.987166 max ms: 92.826750
[B3] simplifyCFG total ms: 11.760463 max ms: 1.088083
[B3] Air::lowerMacros total ms: 5.975679 max ms: 0.382000

After this patch:
total ms: 66.328 max ms: 2.283 [B3] moveConstants
total ms: 148.097 max ms: 5.361 [B3] lowerToAir
total ms: 1619.115 max ms: 96.307 [Total B3] generateToAir
total ms: 11.959 max ms: 1.185 [Air] simplifyCFG
total ms: 6.519 max ms: 0.697 [Air] Air::lowerMacros

Concretely there are two changes:

  • use FixedWidthDouble (also introduced to WTF in this patch) to line-up the total times. This makes it possible to see at a glance which phases are worth optimizing and which aren't.
  • Tag phases more precisely, and in particular replace [B3] by [Air] where relevant, and give different tags to measurements that correspond to groups of phases instead of a single phase (e.g. generateToAir).

(JSC::B3::compile):

  • b3/B3FixSSA.cpp:
  • b3/B3Generate.cpp:

(JSC::B3::prepareForGeneration):
(JSC::B3::generateToAir):

  • b3/B3PhaseScope.cpp:

(JSC::B3::PhaseScope::PhaseScope):

  • b3/B3PhaseScope.h:
  • b3/B3TimingScope.h: Removed.

(JSC::B3::TimingScope::TimingScope): Deleted.

  • b3/B3VariableLiveness.cpp:

(JSC::B3::VariableLiveness::VariableLiveness):

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

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

  • b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):

  • b3/air/AirLiveness.h:

(JSC::B3::Air::Liveness::Liveness):

  • b3/air/AirPhaseScope.cpp:

(JSC::B3::Air::PhaseScope::PhaseScope):

  • b3/air/AirPhaseScope.h:
  • tools/CompilerTimingScope.cpp:

Source/WTF:

Add FixedWidthDouble, which allows easily printing a double with some whitespace to pad it out if it is smaller than expected.
Its design roughly follows RawPointer which similarly allows special formatting of a kind of number.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/FixedWidthDouble.h: Added.

(WTF::FixedWidthDouble::FixedWidthDouble):
(WTF::FixedWidthDouble::value const):
(WTF::FixedWidthDouble::width const):
(WTF::FixedWidthDouble::precision const):

  • wtf/PrintStream.cpp:

(WTF::printInternal):

  • wtf/PrintStream.h:
10:43 PM Changeset in webkit [290289] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Use ArgumentParser for parsing args in generate-compile-commands
https://bugs.webkit.org/show_bug.cgi?id=236995

Patch by Brandon Stewart <Brandon> on 2022-02-21
Reviewed by Alexey Proskuryakov.

Use argument parser instead of sys.argv[1] for getting build dir.

  • Scripts/generate-compile-commands:
8:57 PM Changeset in webkit [290288] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Allow adattributiond to start on iOS devices
https://bugs.webkit.org/show_bug.cgi?id=237009
<rdar://89062166>

Reviewed by Per Arne Vollan.

There were three more problems preventing it from starting:

  1. The code signature said to look for a sandbox profile with "webkit" in the name, but the profile had "WebKit" in the name. These names are case sensitive.
  2. The sandbox profile would not let it load the WebKit framework, so dyld would fail and the process would fail to launch. I added the framework directories that the XPC services are allowed to access.
  3. Once it started, it would crash inside WTF::initializeMainThread when calling WTF::pageSize which requires access to the hw.pagesize_compat syscall. As a starting point, I'm going to allow all the syscalls that the network process currently has access to, which is enough to get it to respond without crashing.
  4. We need access to com.apple.diagnosticd and com.apple.analyticsd in order to be able to generate crash reports. This is quite useful.

Yes, I know I said there were only three problems, but the 4th is so useful I thought I'd put it in the list.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
  • Scripts/process-entitlements.sh:
8:57 PM Changeset in webkit [290287] by achristensen@apple.com
  • 6 edits in trunk/Source

Improve const correctness for SecurityOrigin accessors
https://bugs.webkit.org/show_bug.cgi?id=236983

Reviewed by Chris Dumez.

Source/WebCore:

  • loader/SubresourceLoader.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::origin const):
(WebCore::CachedResource::origin):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::origin const):
(WebCore::CachedResourceRequest::origin):

Source/WebKit:

  • UIProcess/Notifications/WebNotification.h:

(WebKit::WebNotification::origin const):
(WebKit::WebNotification::origin):

8:03 PM Changeset in webkit [290286] by Wenson Hsieh
  • 14 edits in trunk

[iOS] Adjust some behaviors around the "Markup Image" action in the callout bar
https://bugs.webkit.org/show_bug.cgi?id=236980

Reviewed by Aditya Keerthi.

Source/WebKit:

Adjust the following behaviors around the "Markup Image" callout bar item on iOS:

  1. The item should be present as long as the selection range contains a single image item (not only if the

selection range exactly encompasses a single image element.

  1. The item should appear in the callout bar before other WebKit-client-provided menu controller items.

This patch also adds a new API test to exercise these behaviors and, in doing so, also refactors logic around
determining whether or not to show this item so that it's dependent on a WebKit internal feature instead of just
the system feature flag (with the default value of the internal feature being equal to whether or not the system
feature is enabled). This means we can run tests for these features without requiring the system feature flag to
be enabled.

See below for more details.

Test: ImageAnalysisTests.MenuControllerItems

  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::makeTextRecognitionResult):

Drive-by fix for some API tests: only attempt to send the platform image analysis result over IPC if it is a
VKCImageAnalysis. In some API tests, we use mock objects here instead, which currently causes the IPC message
send to fail due to encoding failure.

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::defaultImageAnalysisMarkupEnabled):

  • Shared/WebPreferencesDefaultValues.h:

Make the new internal feature flag default to the system feature flag.

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):

Consult a new delegate method (-actionSheetAssistantShouldIncludeCopyCroppedImageAction:) instead of checking
the system feature flag directly.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView updateImageAnalysisMarkupMenuItems:]):

Append the "Markup Image" item at the start of the list of additional menu items.

(-[WKContentView canPerformImageAnalysisMarkup]):

Check the internal feature instead of the system feature flag.

(-[WKContentView performImageAnalysisMarkup:]):

Now that this action can be triggered even when the current selection doens't encompass only a single image, we
need to use replaceWithPasteboardData() instead, passing in the element context of the image element we want
to replace.

(-[WKContentView actionSheetAssistantShouldIncludeCopyCroppedImageAction:]):

Only attempt to show the new items if the internal feature is enabled. Consulted by WKActionSheetAssistant
above.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

Check the internal feature instead of the system feature flag.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const):

Make a minor adjustment here to bail early only if we find multiple image elements in the selected range,
rather than bailing if we find anything that's not an image element.

Source/WTF:

Add a WebKit internal feature flag to control whether or not the "Markup Image" and related "Copy Cropped Image"
menu items should be enabled on iOS and macOS. This enables us to test these features in API and layout tests
without requiring the corresponding system feature flag to be enabled.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Add an API test to verify that "Markup Image" appears as the first non-default callout bar item when a single
image element is in the selection range. The test is comprised of three parts:

  1. Select just a single image, and expect the "Markup Image" item.
  2. Select all images in the document, and expect no "Markup Image" item.
  3. Select a single image and some surrounding text, and expect the "Markup Image" item.

See WebKit/ChangeLog for more details.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::createWebViewWithTextRecognitionEnhancements):
(TestWebKitAPI::swizzledSetMenuItems):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:

Add some text before and after each image so that we can select a single image alongside some text, and exercise
the changes in WebPage::getPlatformEditorState (see WebKit changes for more information).

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

Ensure layer has backing during traversal
https://bugs.webkit.org/show_bug.cgi?id=236858

Patch by Brandon Stewart <Brandon> on 2022-02-21
Reviewed by Simon Fraser.

Ensure the layer has a backing attached to it before trying to append
the node id.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::collectStationaryLayerRelatedOverflowNodes):

7:36 PM Changeset in webkit [290284] by Cameron McCormack
  • 22 edits
    3 adds in trunk

Make input element UA shadow tree creation lazy
https://bugs.webkit.org/show_bug.cgi?id=236747

Reviewed by Aditya Keerthi.

Source/WebCore:

We currently delay InputType creation for parser inserted elements until
just after the attributes have been set, so that we don't wastefully
create an InputType and the UA shadow tree creation if a non-text
type="" was specified on the tag. We don't do anything similar for
script inserted input elements. We could make the InputType creation
lazy, but most of the wasted time is due to the shadow tree creation.

This patch makes InputType shadow tree creation lazy by delaying it
until one of the following happens:

  1. the element is inserted into the document
  2. the type="" or value="" attributes are changed before the element is inserted into the document
  3. any DOM methods that need access to the innerTextElement() are called on the element before the element is inserted into the document

Not all places where we call innerTextElement() on the
HTMLInputElement are safe to lazily create the shadow trees, so we
have two accessors:

  • innerTextElement() returns the inner text element if it's been created already
  • innerTextElementCreatingShadowSubtreeIfNeeded will perform the lazy shadow tree construction if it hasn't already been done

Since the existing
createShadowSubtreeAndUpdateInnerTextElementEditability function has
more responsibility than just creating the subtree and ensuring the
editability is set appropriately, it's renamed to a more manageable
createShadowSubtree.

This change is a 0.5% progression on Speedometer 2.

Test: fast/forms/lazy-shadow-tree-creation.html

  • html/BaseDateAndTimeInputType.h:
  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::createShadowSubtree):
(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/ColorInputType.h:
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtree):
(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/FileInputType.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::createShadowSubtree):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/InputType.cpp:

(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/RangeInputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtree):
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/SearchInputType.h:
  • html/SearchInputType.cpp:

(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed createShadowSubtreeAndUpdateInnerTextElementEditability to
createShadowSubtree and remove the "isInnerTextElementEditable"
argument, since we can ask the element() for its value if needed.
createShadowSubtree is now also responsible for creating the shadow
root.

  • html/TextFieldInputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed. Ensure all shadow tree state is up to date now that it can be
created later.

  • html/InputType.h:
  • html/InputType.cpp:

(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::hasCreatedShadowSubtree const):
New functions to create the shadow subtree if it hasn't been done
already, and to query whether it's been done.

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::innerTextElementCreatingShadowSubtreeIfNeeded):

  • html/HTMLTextAreaElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::innerTextElementCreatingShadowSubtreeIfNeeded):

  • html/HTMLTextFormControlElement.h:
  • html/InputType.h:
  • html/InputType.cpp:

(WebCore::InputType::innerTextElementCreatingShadowSubtreeIfNeeded):
New functions to first create the shadow subtree before returning
innerTextElement(). HTMLTextAreaElement never lazily creates its
shadow subtree and so just returns innerTextElement().

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):
Deleted. Just call through to m_inputType->createShadowTree()
directly.

(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::updateType):
Don't immediately create the shadow tree.

(WebCore::HTMLInputElement::didFinishInsertingNode):
Create the shadow subtree now that the element's been inserted. No
need to call dataListMayHaveChanged since
TextFieldInputType::createShadowSubtree will now do this.

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::updateInnerTextValue):
Ensure the shadow subtree is created since we need to poke at it.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::forwardEvent):
Don't forward the event if the shadow tree hasn't been created yet.

(WebCore::HTMLTextFormControlElement::setSelectionRange):
Ensure the shadow tree has been created. This is needed if the
selection APIs are called on the input element before it's inserted
into the document.

(WebCore::HTMLTextFormControlElement::visiblePositionForIndex const):
Assert that the shadow tree has been created, since editing
functionality should only be needed if the element's been inserted
into the document.

(WebCore::HTMLTextFormControlElement::setInnerTextValue):
Ensure the shadow tree has been created.

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::handleMouseDownEvent):
(WebCore::RangeInputType::handleTouchEvent):
(WebCore::RangeInputType::handleKeydownEvent):
Ensure the shadow tree has been created in case the event will change
the value.

(WebCore::RangeInputType::sliderTrackElement const):
Only return the element if it's been created.

(WebCore::RangeInputType::typedSliderThumbElement const):
Assert that the element has been created.

(WebCore::RangeInputType::dataListMayHaveChanged):
Only try to re-layout if the shadow tree has been created.

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::isEmptyValue const):
Avoid creating the shadow subtree.

(WebCore::TextFieldInputType::forwardEvent):
Move the element assertion up to be consistent with other functions.

(WebCore::TextFieldInputType::innerTextElement const):
Don't assert, since this now can legitimately return null.

  • html/FileInputType.cpp:

(WebCore::FileInputType::disabledStateChanged):
(WebCore::FileInputType::attributeChanged):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::disabledStateChanged):
(WebCore::RangeInputType::attributeChanged):
(WebCore::RangeInputType::setValue):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::disabledStateChanged):
(WebCore::TextFieldInputType::readOnlyStateChanged):
(WebCore::TextFieldInputType::updatePlaceholderText):
(WebCore::TextFieldInputType::updateAutoFillButton):
(WebCore::TextFieldInputType::dataListMayHaveChanged):
Don't update the shadow tree contents if it hasn't been created yet.
createShadowTree is responsible for ensuring it creates the shadow
tree contents reflecting the current state.

LayoutTests:

  • fast/forms/lazy-shadow-tree-creation-expected.html: Added.
  • fast/forms/lazy-shadow-tree-creation.html: Added.
  • fast/forms/lazy-shadow-tree-creation.js: Added.

(supportsType):
(makeAndAppendInput):

6:16 PM Changeset in webkit [290283] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Fix ShadowRealm unwinding
https://bugs.webkit.org/show_bug.cgi?id=237001

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch fixes a crash bug found by test262. Regardless of it is RemoteFunction,
we should handle it as the same way to the other normal host functions except
for setting m_seenRemoteFunction = true flag. Previously, we are early returning,
this is wrong since we should stop unwinding if the caller is entry frame.

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator() const):

6:12 PM Changeset in webkit [290282] by ysuzuki@apple.com
  • 9 edits in trunk

[JSC] Temporal.PlainDate should validate input range
https://bugs.webkit.org/show_bug.cgi?id=236936

Reviewed by Darin Adler.

JSTests:

  • stress/temporal-plaindate.js:

(shouldThrow):

Source/JavaScriptCore:

Implement https://tc39.es/proposal-temporal/#sec-temporal-isodatetimewithinlimits check in
PlainDate to validate input range. For example, 0x7fffffff year should be rejected since
it is larger than ECMAScript datetime representation value. This is checked via ISODateTimeWithinLimits
in the spec.

We also remove isValid assertions in ExactTime. This should not be checked in these accessors, rather,
we should call that function when we would like to check, since PlainDate can represent a bit smaller
value than ExactTime's minValue (minValue - nsPerDay).

We also extend ExactTime::fromISOPartsAndOffset to handle values via Int128 to accept int32_t range years.
By using Int128 for nanoseconds, we can even represent int32_t max / min years. And we remove
ASSERT(y >= -999999 && y <= 999999) check since this is not necessary.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::ExactTime::fromISOPartsAndOffset):
(JSC::ISO8601::isDateTimeWithinLimits):

  • runtime/ISO8601.h:

(JSC::ISO8601::ExactTime::ExactTime): Deleted.
(JSC::ISO8601::ExactTime::fromEpochSeconds): Deleted.
(JSC::ISO8601::ExactTime::fromEpochMilliseconds): Deleted.
(JSC::ISO8601::ExactTime::fromEpochMicroseconds): Deleted.
(JSC::ISO8601::ExactTime::epochSeconds const): Deleted.
(JSC::ISO8601::ExactTime::epochMilliseconds const): Deleted.
(JSC::ISO8601::ExactTime::epochMicroseconds const): Deleted.
(JSC::ISO8601::ExactTime::epochNanoseconds const): Deleted.
(JSC::ISO8601::ExactTime::nanosecondsFraction const): Deleted.
(JSC::ISO8601::ExactTime::asString const): Deleted.
(JSC::ISO8601::ExactTime::isValid const): Deleted.
(JSC::ISO8601::ExactTime::operator< const): Deleted.
(JSC::ISO8601::ExactTime::operator<= const): Deleted.
(JSC::ISO8601::ExactTime::operator== const): Deleted.
(JSC::ISO8601::ExactTime::operator!= const): Deleted.
(JSC::ISO8601::ExactTime::operator>= const): Deleted.
(JSC::ISO8601::ExactTime::operator> const): Deleted.

  • runtime/TemporalPlainDate.cpp:

(JSC::toPlainDate):

Source/WTF:

Add code to allow dataLog(Int128).

  • wtf/Int128.cpp:

(WTF::printInternal):

  • wtf/Int128.h:
6:01 PM Changeset in webkit [290281] by jonlee@apple.com
  • 9 edits in trunk/LayoutTests

Unreviewed gardening for the GPU Process bots.

  • css3/color-filters/color-filter-text-decoration-shadow.html:
  • fast/gradients/conic-gradient-alpha-unpremultiplied.html:
  • fast/gradients/conic-gradient-alpha.html:
  • fast/gradients/linear-two-hints-angle.html:
  • fast/scrolling/overflow-inside-foreignobject.html:
  • gpu-process/TestExpectations:
  • imported/blink/svg/custom/crisp-edges-leak.svg:
  • platform/ios/TestExpectations:
5:48 PM Changeset in webkit [290280] by jonlee@apple.com
  • 5 edits in trunk

Add test name to the image diff template
https://bugs.webkit.org/show_bug.cgi?id=237003

Reviewed by Sam Weinig.

Tools:

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.write_image_diff_files):

LayoutTests:

Include the test name in the page. Workflow to update fuzzy match data becomes easier to copy-paste the name there instead of from the location bar.

  • fast/harness/image-diff-template-expected.txt:
  • fast/harness/image-diff-template.html:
5:42 PM Changeset in webkit [290279] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix racy parallel build of WebKit2-4.0.gir
https://bugs.webkit.org/show_bug.cgi?id=232935

Patch by Alexander Kanavin <alex@linutronix.de> on 2022-02-21
Reviewed by Michael Catanzaro.

This is a target and not a command because it's used to build another .gir
and a .typelib, which would trigger two racy parallel builds when using command
(e.g. command would run twice, target runs only once).

  • PlatformGTK.cmake:
5:37 PM Changeset in webkit [290278] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Add test coverage for the pasteboard writing codepath added in r289839
https://bugs.webkit.org/show_bug.cgi?id=236944

Reviewed by Aditya Keerthi.

Add test coverage for the changes in r289839 in the case where ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) is turned
on. To do this, we set the platform image analysis results to a new internal mock object,
FakeImageAnalysisResult, that returns a string for a given NSRange. This code is then exercised by several
existing layout tests that copy and paste text inside image overlays:

  • fast/images/text-recognition/image-overlay-line-wrapping.html
  • fast/images/text-recognition/image-overlay-text-without-leading-whitespace.html
  • fast/images/text-recognition/mac/copy-image-overlay-text-with-context-menu.html
  • testing/Internals.cpp:

(WebCore::Internals::installImageOverlay):

  • testing/Internals.h:
  • testing/Internals.mm:

(-[FakeImageAnalysisResult initWithString:]):
(-[FakeImageAnalysisResult _attributedStringForRange:]):
(WebCore::Internals::fakeImageAnalysisResultForTesting):

5:13 PM Changeset in webkit [290277] by mmaxfield@apple.com
  • 4 edits in trunk/Source

Sort WebCore and WebKit Xcode project files
https://bugs.webkit.org/show_bug.cgi?id=237010

Unreviewed.

Source/WebCore:

No new tests because there is no behavior change.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:
5:07 PM Changeset in webkit [290276] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[WebGPU] Fix build
https://bugs.webkit.org/show_bug.cgi?id=237008

Unreviewed.

If you add a header to PAL that WebKit needs to #include, you'd better mark the header as Private.

  • PAL.xcodeproj/project.pbxproj:
4:22 PM Changeset in webkit [290275] by Aditya Keerthi
  • 3 edits in trunk/Source/WebKit

[iOS] Fix the internal build after rdar://88354008
https://bugs.webkit.org/show_bug.cgi?id=236999

Unreviewed build fix.

Mark deprecated implementations.

  • UIProcess/API/ios/WKWebViewIOS.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
4:05 PM Changeset in webkit [290274] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix release build
https://bugs.webkit.org/show_bug.cgi?id=237004

Unreviewed.

If you include WTF, you must have set NDEBUG in release builds.

  • Configurations/Base.xcconfig:
3:57 PM Clangd edited by Brandon
(diff)
3:53 PM clangd_screenshot.png attached to Clangd by Brandon
clangd autocomplete
3:50 PM Clangd edited by Brandon
(diff)
3:38 PM Clangd edited by Brandon
(diff)
3:24 PM Changeset in webkit [290273] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix iOS build
https://bugs.webkit.org/show_bug.cgi?id=237000

The lowPower selector doesn't exist on iOS.

Unreviewed.

  • WebGPU/Instance.mm:

(WebGPU::sortedDevices):
(WebGPU::Instance::requestAdapter):

3:11 PM Changeset in webkit [290272] by Adrian Perez de Castro
  • 8 edits
    8 copies in trunk

Rolled over to ChangeLog-2022-02-22

3:11 PM Changeset in webkit [290271] by Kocsen Chung
  • 2 edits in branches/safari-614.1.5-branch/Source/WebKit

Cherry-pick r290237. rdar://problem/58057431

Turn WebGL in GPU Process on by default
https://bugs.webkit.org/show_bug.cgi?id=236382
rdar://58057431

Reviewed by Tim Horton.

  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultUseGPUProcessForWebGLEnabled):

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

2:56 PM Clangd created by Brandon
2:56 PM WikiStart edited by Brandon
Add wiki page for clangd (diff)
2:09 PM Changeset in webkit [290270] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 12: Migrate from C function callbacks to blocks
https://bugs.webkit.org/show_bug.cgi?id=236934

Reviewed by Dean Jackson.

For all the C function pointer / userdata pairs, simply create a parallel entry point which accepts a block instead.

  • WebGPU/Adapter.mm:

(wgpuAdapterRequestDeviceWithBlock):

  • WebGPU/Buffer.mm:

(wgpuBufferMapAsyncWithBlock):

  • WebGPU/CommandEncoder.mm:

(wgpuCommandEncoderSetLabel):

  • WebGPU/ComputePipeline.mm:

(wgpuComputePipelineSetLabel):

  • WebGPU/Device.mm:

(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDevicePopErrorScopeWithBlock):
(wgpuDeviceSetDeviceLostCallbackWithBlock):
(wgpuDeviceSetUncapturedErrorCallbackWithBlock):

  • WebGPU/Instance.mm:

(wgpuInstanceRequestAdapterWithBlock):

  • WebGPU/Queue.mm:

(wgpuQueueOnSubmittedWorkDoneWithBlock):
(wgpuQueueSetLabel):

  • WebGPU/RenderPipeline.mm:

(wgpuRenderPipelineSetLabel):

  • WebGPU/ShaderModule.mm:

(wgpuShaderModuleGetCompilationInfoWithBlock):
(wgpuShaderModuleSetLabel):

  • WebGPU/Surface.mm:

(wgpuSurfaceGetPreferredFormat):

  • WebGPU/SwapChain.mm:

(wgpuSwapChainPresent):

  • WebGPU/WebGPUExt.h:
2:06 PM Changeset in webkit [290269] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] ShadowRealm wrapArgument should check exceptions
https://bugs.webkit.org/show_bug.cgi?id=236984
JSTests:

Reviewed by Alexey Shvayka.

  • stress/exception-in-wrap-argument-for-shadow-realm.js: Added.

(shouldThrow):

Source/JavaScriptCore:

rdar://89226554

Reviewed by Alexey Shvayka.

We should check exceptions after wrapArgument.

  • runtime/JSRemoteFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

2:00 PM Changeset in webkit [290268] by ysuzuki@apple.com
  • 132 edits
    18 copies
    3 moves
    404 adds
    5 deletes in trunk/JSTests

[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=236990

Reviewed by Alexey Shvayka.

  • test262/expectations.yaml:
  • test262/test262-Revision.txt:
1:34 PM Changeset in webkit [290267] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 11: Implement shader creation methods
https://bugs.webkit.org/show_bug.cgi?id=236933

Reviewed by Dean Jackson.

This implements Device::createShaderModule() and Device::createComputePipeline(). The async versions (neither
the WebGPU nor the Metal flavor) aren't implemented yet; this is just the first basic implementation.

  • WebGPU/ComputePipeline.mm:

(WebGPU::createLibrary):
(WebGPU::createConstantValues):
(WebGPU::createFunction):
(WebGPU::createComputePipelineState):
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/PipelineLayout.h:
  • WebGPU/PipelineLayout.mm:

(WebGPU::PipelineLayout::operator== const):
(WebGPU::PipelineLayout::operator!= const):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::create):

  • WebGPU/ShaderModule.mm:

(WebGPU::findShaderModuleParameters):
(WebGPU::ShaderModule::createLibrary):
(WebGPU::earlyCompileShaderModule):
(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::ShaderModule):
(WebGPU::CompilationMessageData::CompilationMessageData):
(WebGPU::convertMessages):
(WebGPU::ShaderModule::getCompilationInfo):
(WebGPU::ShaderModule::setLabel):
(WebGPU::ShaderModule::convertPipelineLayout):
(WebGPU::ShaderModule::ast const):
(WebGPU::ShaderModule::pipelineLayoutHint const):
(WebGPU::ShaderModule::entryPointInformation const):

1:32 PM Changeset in webkit [290266] by mmaxfield@apple.com
  • 23 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 10: Implement setLabel() and Metal accessors
https://bugs.webkit.org/show_bug.cgi?id=236910

Reviewed by Dean Jackson.

By adding a few various trivial functions in classes that need them, this patch completely finishes the
implementation of CommandBuffer, QuerySet, RenderBundle, Sampler, and TextureView classes (other than
their creation functions).

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::setLabel):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::commandBuffer const):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):
(WebGPU::CommandBuffer::setLabel):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::CommandEncoder):
(WebGPU::CommandEncoder::setLabel):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):
(WebGPU::ComputePassEncoder::setLabel):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::computePipelineState const):

  • WebGPU/ComputePipeline.mm:

(WebGPU::ComputePipeline::ComputePipeline):
(WebGPU::ComputePipeline::setLabel):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::counterSampleBuffer const):

  • WebGPU/QuerySet.mm:

(WebGPU::QuerySet::QuerySet):
(WebGPU::QuerySet::setLabel):

  • WebGPU/Queue.mm:

(WebGPU::Queue::Queue):
(WebGPU::Queue::setLabel):

  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::indirectCommandBuffer const):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):
(WebGPU::RenderBundle::setLabel):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::setLabel):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):
(WebGPU::RenderPassEncoder::setLabel):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::renderPipelineState const):

  • WebGPU/RenderPipeline.mm:

(WebGPU::RenderPipeline::RenderPipeline):
(WebGPU::RenderPipeline::setLabel):

  • WebGPU/Sampler.mm:

(WebGPU::Sampler::setLabel):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::library const):

  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::ShaderModule):
(WebGPU::ShaderModule::setLabel):

  • WebGPU/Texture.h:

(WebGPU::Texture::texture const):

  • WebGPU/Texture.mm:

(WebGPU::Texture::Texture):
(WebGPU::Texture::setLabel):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::setLabel):

1:29 PM Changeset in webkit [290265] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Add explicit exception check after appendWithoutSideEffects
https://bugs.webkit.org/show_bug.cgi?id=236986
rdar://88258776

Reviewed by Saam Barati.

JSTests:

  • stress/array-to-string-oom.js: Added.

Source/JavaScriptCore:

Add exception check after JSStringJoiner::appendWithoutSideEffects call since JSString::value can throw OOM error.

  • runtime/ArrayPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSStringJoiner.h:

(JSC::JSStringJoiner::append):

1:27 PM Changeset in webkit [290264] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 9: Basic implementation of bindings
https://bugs.webkit.org/show_bug.cgi?id=236903

Reviewed by Dean Jackson.

This is a basic implementation of the BindGroup, BindGroupLayout, and PipelineLayout methods.
Eventually we'll want to suballocate multiple BindGroups so they coexist within the same Buffer,
but this is an initial simple implementation that doesn't do that.

  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::vertexArgumentBuffer const):
(WebGPU::BindGroup::fragmentArgumentBuffer const):
(WebGPU::BindGroup::computeArgumentBuffer const):

  • WebGPU/BindGroup.mm:

(WebGPU::bufferIsPresent):
(WebGPU::samplerIsPresent):
(WebGPU::textureViewIsPresent):
(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):
(WebGPU::BindGroup::setLabel):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::vertexArgumentEncoder const):
(WebGPU::BindGroupLayout::fragmentArgumentEncoder const):
(WebGPU::BindGroupLayout::computeArgumentEncoder const):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::isPresent):
(WebGPU::createArgumentDescriptor):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):
(WebGPU::BindGroupLayout::setLabel):
(WebGPU::BindGroupLayout::encodedLength const):

  • WebGPU/Buffer.h:

(WebGPU::Buffer::buffer const):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::Buffer):

  • WebGPU/PipelineLayout.h:

(WebGPU::PipelineLayout::create):
(WebGPU::PipelineLayout::numberOfBindGroupLayouts const):
(WebGPU::PipelineLayout::bindGroupLayout const):

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):
(WebGPU::PipelineLayout::PipelineLayout):
(WebGPU::PipelineLayout::setLabel):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::samplerState const):

  • WebGPU/Sampler.mm:

(WebGPU::Sampler::Sampler):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::texture const):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

1:20 PM Changeset in webkit [290263] by Fujii Hironori
  • 7 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/css/font-face-implicit-local-font-expected.txt:
  • platform/wincairo/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/wincairo/fast/text/international/bidi-override-expected.txt:
  • platform/wincairo/fast/text/international/text-combine-image-test-expected.txt:
  • platform/wincairo/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
12:49 PM Changeset in webkit [290262] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 8: Basic implementation of device creation routines
https://bugs.webkit.org/show_bug.cgi?id=236902

Reviewed by Dean Jackson.

This is a basic implementation of the Instance, Adapter, and Device methods. Device limits are not
implemented yet, so for now we claim every limits is 0.

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::Adapter):
(WebGPU::Adapter::enumerateFeatures):
(WebGPU::Adapter::getLimits):
(WebGPU::Adapter::getProperties):
(WebGPU::Adapter::hasFeature):
(WebGPU::deviceMeetsRequiredLimits):
(WebGPU::Adapter::requestDevice):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::Device):
(WebGPU::Device::destroy):
(WebGPU::Device::enumerateFeatures):
(WebGPU::Device::getLimits):
(WebGPU::Device::getQueue):
(WebGPU::Device::hasFeature):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::pushErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
(WebGPU::Device::setLabel):

  • WebGPU/Instance.mm:

(WebGPU::sortedDevices):
(WebGPU::Instance::requestAdapter):

12:42 PM Changeset in webkit [290261] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Support local library in existing path
https://bugs.webkit.org/show_bug.cgi?id=236978
<rdar://problem/89237767>

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/autoinstall.py:

(AutoInstall.register): Handle case where library is in an exisiting sys.path.

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

12:11 PM Changeset in webkit [290260] by Elliott Williams
  • 5 edits
    1 add
    1 delete in trunk/Source

[XCBuild] Use native build phases to copy PAL's headers
https://bugs.webkit.org/show_bug.cgi?id=236683

Reviewed by Alexey Proskuryakov.

Replaces the "Copy PAL Headers" script with a native Headers phase. Xcode copies the headers
to a flattened directory, but we hack around this using build rules. This is a different
approach than we took with WTF <https://bugs.webkit.org/show_bug.cgi?id=235744> but could be
replicated there to remove the one-build-phase-per-directory boilerplate.

The idea is that we have one build rule for each "depth" of headers: Build rule "pal/*.h" is
depth 1 and matches headers like "pal/FileSizeFormatter.h", buld rule "pal/*/*.h" is depth 2
and matches headers like "pal/text/EncodingTables.h", etc.

Each rule uses build setting macros to determine the header's relative path within
/usr/local/include/pal, and copies it there. Having one build rule per depth level is hacky,
but it's superior to adding 23 copy file phases. In the future, we'll simplify this with
<rdar://88771729>.

The legacy build system doesn't support running build rules on headers. To compensate,
legacy builds copy to a separate directory, /usr/local/include/pal_flattened. A script phase
that runs after the native Headers phase copies these flattened headers into the right place.

  • Configurations/CopyPALHeaders.xcconfig: Removed.
  • Configurations/PAL.xcconfig: Header settings, notably PRIVATE_HEADERS_FOLDER_PATH.
  • PAL.xcodeproj/project.pbxproj: Remove target, add phases, set header attrs.
12:03 PM Changeset in webkit [290259] by mmaxfield@apple.com
  • 48 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 7: Clean up includes a bit
https://bugs.webkit.org/show_bug.cgi?id=236900

Reviewed by Dean Jackson.

We can put includes that literally every file uses into a single place.

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:
  • WebGPU/BindGroup.h:
  • WebGPU/BindGroup.mm:
  • WebGPU/BindGroupLayout.h:
  • WebGPU/BindGroupLayout.mm:
  • WebGPU/Buffer.h:
  • WebGPU/Buffer.mm:
  • WebGPU/CommandBuffer.h:
  • WebGPU/CommandBuffer.mm:
  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:
  • WebGPU/ComputePassEncoder.h:
  • WebGPU/ComputePassEncoder.mm:
  • WebGPU/ComputePipeline.h:
  • WebGPU/ComputePipeline.mm:
  • WebGPU/Device.h:
  • WebGPU/Device.mm:
  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:
  • WebGPU/PipelineLayout.h:
  • WebGPU/PipelineLayout.mm:
  • WebGPU/QuerySet.h:
  • WebGPU/QuerySet.mm:
  • WebGPU/Queue.h:
  • WebGPU/Queue.mm:
  • WebGPU/RenderBundle.h:
  • WebGPU/RenderBundle.mm:
  • WebGPU/RenderBundleEncoder.h:
  • WebGPU/RenderBundleEncoder.mm:
  • WebGPU/RenderPassEncoder.h:
  • WebGPU/RenderPassEncoder.mm:
  • WebGPU/RenderPipeline.h:
  • WebGPU/RenderPipeline.mm:
  • WebGPU/Sampler.h:
  • WebGPU/Sampler.mm:
  • WebGPU/ShaderModule.h:
  • WebGPU/ShaderModule.mm:
  • WebGPU/Surface.h:
  • WebGPU/Surface.mm:
  • WebGPU/SwapChain.h:
  • WebGPU/SwapChain.mm:
  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:
  • WebGPU/TextureView.h:
  • WebGPU/TextureView.mm:
  • WebGPU/config.h:
11:58 AM Changeset in webkit [290258] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 6: Give a RunLoop to Instance
https://bugs.webkit.org/show_bug.cgi?id=236899

Reviewed by Dean Jackson.

The shared header has a function, wgpuInstanceProcessEvents(), which is supposed
to synchronously call all outstanding callbacks. A natural way to do this is to
hook this up to [NSRunLoop runMode:beforeDate:].

  • WebGPU/Instance.h:

(WebGPU::Instance::runLoop const):
(WebGPU::Instance::create): Deleted.

  • WebGPU/Instance.mm:

(WebGPU::Instance::create):
(WebGPU::Instance::Instance):
(WebGPU::Instance::createSurface):
(WebGPU::Instance::processEvents):
(wgpuCreateInstance):

11:48 AM Changeset in webkit [290257] by Antti Koivisto
  • 6 edits
    2 adds in trunk

[CSS Container Queries] Support nested container queries
https://bugs.webkit.org/show_bug.cgi?id=236963

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-nested-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-nested.html: Added.

Source/WebCore:

"Style rules defined on an element inside multiple nested container queries apply when all of the wrapping container queries are true for that element."

https://drafts.csswg.org/css-contain-3/#container-rule

Test: imported/w3c/web-platform-tests/css/css-contain/container-queries/container-nested.html

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::containerQueriesMatch):

All nested queries need to match.

(WebCore::Style::ElementRuleCollector::containerQueryMatches): Deleted.

  • style/ElementRuleCollector.h:
  • style/RuleSet.h:

(WebCore::Style::RuleSet::hasContainerQueries const):
(WebCore::Style:: const):
(WebCore::Style::RuleSet::containerQueryFor const): Deleted.

Return all nested queries.
Don't unnecessarily copy FilteredContainerQuery, refer to the StyleRuleContainer instead.

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addChildRules):

11:32 AM Changeset in webkit [290256] by mmaxfield@apple.com
  • 43 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 5: Give Metal objects to WebGPU objects
https://bugs.webkit.org/show_bug.cgi?id=236898

Reviewed by Dean Jackson.

Each WebGPU object gets its own backing Metal object.

  • WebGPU/Adapter.h:

(WebGPU::Adapter::create):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::Adapter):

  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::create):

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::create):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):

  • WebGPU/Buffer.h:

(WebGPU::Buffer::create):

  • WebGPU/Buffer.mm:

(WebGPU::Device::createBuffer):
(WebGPU::Buffer::Buffer):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::create):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::create):

  • WebGPU/CommandEncoder.mm:

(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::CommandEncoder):
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::finish):

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::create):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::create):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipeline):
(WebGPU::ComputePipeline::ComputePipeline):
(WebGPU::ComputePipeline::getBindGroupLayout):

  • WebGPU/Device.h:

(WebGPU::Device::create): Deleted.

  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::Device):
(WebGPU::Device::getQueue):

  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:

(WebGPU::Instance::requestAdapter):
(wgpuInstanceRequestAdapter):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::create):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):
(WebGPU::QuerySet::QuerySet):

  • WebGPU/Queue.h:

(WebGPU::Queue::create):

  • WebGPU/Queue.mm:

(WebGPU::Queue::Queue):

  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::create):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::create):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::finish):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::create):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::create):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipeline):
(WebGPU::RenderPipeline::RenderPipeline):
(WebGPU::RenderPipeline::getBindGroupLayout):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::create):

  • WebGPU/Sampler.mm:

(WebGPU::Device::createSampler):
(WebGPU::Sampler::Sampler):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::create):

  • WebGPU/ShaderModule.mm:

(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::ShaderModule):

  • WebGPU/SwapChain.mm:

(WebGPU::SwapChain::getCurrentTextureView):

  • WebGPU/Texture.h:

(WebGPU::Texture::create):

  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):
(WebGPU::Texture::Texture):
(WebGPU::Texture::createView):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::create):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

  • WebGPU/config.h:
11:23 AM Changeset in webkit [290255] by mmaxfield@apple.com
  • 15 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 4: Move Device's construction methods to the files of the things they create
https://bugs.webkit.org/show_bug.cgi?id=236891

Reviewed by Dean Jackson.

Device is kind of a factory object, and has lots of methods which create
other objects in the API. To avoid Device.cpp becoming a catch-all place
for tons of unrelated creation routines, this patch moves the routine that
creates an X into X.mm.

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):

  • WebGPU/Buffer.mm:

(WebGPU::Device::createBuffer):

  • WebGPU/CommandEncoder.mm:

(WebGPU::Device::createCommandEncoder):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/Device.mm:

(WebGPU::Device::createBindGroup): Deleted.
(WebGPU::Device::createBindGroupLayout): Deleted.
(WebGPU::Device::createBuffer): Deleted.
(WebGPU::Device::createCommandEncoder): Deleted.
(WebGPU::Device::createComputePipeline): Deleted.
(WebGPU::Device::createComputePipelineAsync): Deleted.
(WebGPU::Device::createPipelineLayout): Deleted.
(WebGPU::Device::createQuerySet): Deleted.
(WebGPU::Device::createRenderBundleEncoder): Deleted.
(WebGPU::Device::createRenderPipeline): Deleted.
(WebGPU::Device::createRenderPipelineAsync): Deleted.
(WebGPU::Device::createSampler): Deleted.
(WebGPU::Device::createShaderModule): Deleted.
(WebGPU::Device::createSwapChain): Deleted.
(WebGPU::Device::createTexture): Deleted.

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::Device::createRenderBundleEncoder):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):

  • WebGPU/Sampler.mm:

(WebGPU::Device::createSampler):

  • WebGPU/ShaderModule.mm:

(WebGPU::Device::createShaderModule):

  • WebGPU/SwapChain.mm:

(WebGPU::Device::createSwapChain):

  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):

11:15 AM Changeset in webkit [290254] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Implement SVG2 rules to establish a stacking context
https://bugs.webkit.org/show_bug.cgi?id=236193

Reviewed by Rob Buis.

Follow the rules specified in https://www.w3.org/TR/SVG2/render.html#RenderingOrder,
when to create a stacking context. This is necessary to enforce layer creation.

Unlike SVG 1.1, SVG2 defines its whole rendering model, as well as painting operations
such as masking/clipping around the 'stacking-context' term that stems from CSS.
The definition is backwards compatible with SVG 1.1, except for un-spec'ed territory
missing from SVG 1.1, that's now specified for SVG2 (e.g. <foreignObject> + stacking context).

LBSE handles clipping / masking / etc. via RenderLayer, which is also responsbile for
for stacking-context managment. Therefore we need to follow the existing rules to enforce
a stacking context / RenderLayer creation in StyleAdjuster, by enforcing a non-auto 'used z-index'.

Covered by existing tests, no change in behaviour.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustSVGElementStyle):

10:57 AM Changeset in webkit [290253] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 3: Tweak WGSL API
https://bugs.webkit.org/show_bug.cgi?id=236889

Reviewed by Dean Jackson.

  • Give SuccessfulCheck a move constructor
  • Use UniqueRef instead of std::unique_ptr
  • Allow specialization constants to be looked up by name
  • Model missing pipeline layouts as absent from the HashMap, rather than using an optional type
  • WGSL/WGSL.cpp:

(WGSL::prepare):
(WGSL::SuccessfulCheck::~SuccessfulCheck): Deleted.

  • WGSL/WGSL.h:
10:55 AM Changeset in webkit [290252] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

[WebGPU] Tracer bullet part 2: Fix infinite recursion in GPUDevice::ref()
https://bugs.webkit.org/show_bug.cgi?id=236888

Reviewed by Dean Jackson.

refEventTarget() calls ref() which called refEventTarget(). The solution is
to tell GPUDevice that it's using RefCounted::ref().

  • Modules/WebGPU/GPUDevice.cpp:
  • Modules/WebGPU/GPUDevice.h:
10:23 AM Changeset in webkit [290251] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] WebGPU.xcodeproj cannot be opened on Big Sur's Xcode
https://bugs.webkit.org/show_bug.cgi?id=236982

Unreviewed.

Just change the project version number from 55 to 51, like the rest of the projects in WebKit.

  • WebGPU.xcodeproj/project.pbxproj:
10:10 AM Changeset in webkit [290250] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Remove resource access in sandbox for older OS versions
https://bugs.webkit.org/show_bug.cgi?id=236975

Reviewed by Brent Fulgham.

Remove access to some resources in sandbox for older OS versions. Access to these resources were initially
added in https://trac.webkit.org/changeset/290180/webkit and https://trac.webkit.org/changeset/290066/webkit,
and was only intended to land on a branch.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:07 AM Changeset in webkit [290249] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check parent node in outdentParagraph
https://bugs.webkit.org/show_bug.cgi?id=235914

Patch by Rob Buis <rbuis@igalia.com> on 2022-02-21
Reviewed by Wenson Hsieh.

Source/WebCore:

Null check parent node of enclosing node in outdentParagraph.

Test: editing/execCommand/outdent-paragraph-crash.html

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph):

LayoutTests:

  • editing/execCommand/outdent-paragraph-crash-expected.txt: Added.
  • editing/execCommand/outdent-paragraph-crash.html: Added.
9:56 AM Changeset in webkit [290248] by ysuzuki@apple.com
  • 9 edits in trunk

[JSC] Add CalendarDateTime parsing
https://bugs.webkit.org/show_bug.cgi?id=236886

Reviewed by Dean Jackson.

JSTests:

  • stress/temporal-instant.js:
  • stress/temporal-plaindate.js:
  • stress/temporal-plaintime.js:

Source/JavaScriptCore:

This patch adds calendar parsing code to ISO8601 so that Temporal.Instant / Temporal.PlainDate / Temporal.PlainTime
can parse string with calendar correctly via "from" methods. Currently, we are just ignoring these calendar values,
but we should create a calendar instance from that in a subsequent patch.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::canBeCalendar):
(JSC::ISO8601::canBeTimeZone):
(JSC::ISO8601::parseTimeZone):
(JSC::ISO8601::parseCalendar):
(JSC::ISO8601::parseTime):
(JSC::ISO8601::parseDateTime):
(JSC::ISO8601::parseCalendarTime):
(JSC::ISO8601::parseCalendarDateTime):
(JSC::ISO8601::parseInstant):

  • runtime/ISO8601.h:
  • runtime/TemporalPlainDate.cpp:

(JSC::TemporalPlainDate::from):

  • runtime/TemporalPlainTime.cpp:

(JSC::TemporalPlainTime::from):

9:50 AM Changeset in webkit [290247] by Noam Rosenthal
  • 4 edits in trunk

PerformanceObserver: buffered flag not working in Paint Timing
https://bugs.webkit.org/show_bug.cgi?id=225305
<rdar://problem/77746237>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/paint-timing/fcp-only/buffered-flag.window-expected.txt: This test now passes

Source/WebCore:

Include paint entries when collecting buffered performance entries.

A previously failing W3C test is now marked as passing.

  • page/Performance.cpp:

(WebCore::Performance::appendBufferedEntriesByType const): Add the existing FCP entry

9:07 AM Changeset in webkit [290246] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Change IPC encoding of boolean type to use one bit
https://bugs.webkit.org/show_bug.cgi?id=236801
rdar://85811396

Patch by Simon Lewis <simon.lewis@apple.com> on 2022-02-21
Reviewed by Chris Dumez.

This patch ensures that only the lower bit is set in a boolean for IPC messages.

  • Platform/IPC/ArgumentCoder.h:

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

7:46 AM Changeset in webkit [290245] by Tyler Wilcock
  • 5 edits
    5 adds in trunk/LayoutTests

AX: Add test for r290130 (https://trac.webkit.org/changeset/290130/webkit)
https://bugs.webkit.org/show_bug.cgi?id=236848

Reviewed by Chris Fleizach.

  • accessibility/dynamically-changing-iframe-remains-accessible-expected.txt: Added.
  • accessibility/dynamically-changing-iframe-remains-accessible.html: Added.
  • accessibility/resources/purple-pineapple-text.html:

Added so we can switch iframe source between multiple simple documents.

  • platform/ios/TestExpectations:

Enable new test.

  • platform/mac-wk1/accessibility/dynamically-changing-iframe-remains-accessible-expected.txt: Added.
  • resources/accessibility-helper.js:

(sleep): Added.

7:24 AM Changeset in webkit [290244] by Jonathan Bedard
  • 3 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016>

Reviewed by Dewei Zhu and Stephanie Lewis.

  • Tools/CISupport/build-webkit-org/steps.py:

(RunWebKitTests): Change invocation to Python 3.

  • Tools/CISupport/build-webkit-org/steps_unittest.py:

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

7:19 AM Changeset in webkit [290243] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Enable GTK and Windows queues for PRs
https://bugs.webkit.org/show_bug.cgi?id=236814
<rdar://problem/89117205>

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/config.json:

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

7:13 AM Changeset in webkit [290242] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Update pango and gtk4
https://bugs.webkit.org/show_bug.cgi?id=236939

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

Update to GTK 4.6.2, which requires Pango 1.50.x, so also update Pango.

  • elements/freedesktop-sdk.bst:
  • elements/sdk/gtk.bst:
  • patches/fdo-0001-pango-Bump-to-1.50.4.patch: Added.
6:31 AM Changeset in webkit [290241] by commit-queue@webkit.org
  • 3 edits in trunk

[GTK][WPE] ANGLE: make USE_ANGLE_WEBGL build option public
https://bugs.webkit.org/show_bug.cgi?id=236962

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-02-21
Reviewed by Chris Lord.

Since it introduces new dependencies, the build option should be public and a fatal error message should be
shown when the option is enabled and any for the dependencies is missing.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
6:12 AM Changeset in webkit [290240] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Take vertical-rl writing mode value into account when converting visual margin/border/padding value to logical
https://bugs.webkit.org/show_bug.cgi?id=236948

Reviewed by Antti Koivisto.

This is in preparation for supporting vertical-rl content.
(Note that the RTL inline direction != the "rl" part of the writing mode.)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::horizontalLogicalMargin):
(WebCore::LayoutIntegration::verticalLogicalMargin):
(WebCore::LayoutIntegration::logicalBorder):
(WebCore::LayoutIntegration::logicalPadding):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateFormattingRootGeometryAndInvalidate):

1:23 AM Changeset in webkit [290239] by sihui_liu@apple.com
  • 4 edits in trunk

Fetching website data may get wrong record after migrating data to general storage directory
https://bugs.webkit.org/show_bug.cgi?id=236905

Reviewed by Chris Dumez.

Source/WebKit:

To decide if an origin has data, we need to not only check if its directory exists but also if the directory is
empty.

Modified existing test to add test coverage.

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath): directory should be created before moving
files.
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInListFromDisk): given that IndexedDB and
LocalStorage can have custom paths, we may just check data by type.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

Feb 20, 2022:

7:55 PM Changeset in webkit [290238] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fixes after 247508@main
https://bugs.webkit.org/show_bug.cgi?id=236945

  • dom/ImageOverlay.h: Forward declare document.
4:02 PM Changeset in webkit [290237] by jonlee@apple.com
  • 2 edits in trunk/Source/WebKit

Turn WebGL in GPU Process on by default
https://bugs.webkit.org/show_bug.cgi?id=236382
rdar://58057431

Reviewed by Tim Horton.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultUseGPUProcessForWebGLEnabled):

3:58 PM Changeset in webkit [290236] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bots

  • gpu-process/TestExpectations:
  • platform/ios-wk2/TestExpectations: Newly revealed flaky timeout.
3:50 PM Changeset in webkit [290235] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

Unreviewed gardening.

  • TestExpectations: Tests are passing after r290229.
  • gpu-process/TestExpectations:
  • platform/ios-simulator/TestExpectations:
3:36 PM Changeset in webkit [290234] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed garden for GPU Process bots.

  • gpu-process/TestExpectations: Annotate tests with filed bugs.
3:09 PM Changeset in webkit [290233] by sihui_liu@apple.com
  • 5 edits in trunk

Origin file may not be created after migrating data to general storage directory
https://bugs.webkit.org/show_bug.cgi?id=236901

Reviewed by Chris Dumez.

Source/WebKit:

In r289081, we started writing origin file asynchronouly (we used to write it at creation of
OriginStorageManager), to avoid delay in replying sync WebStorage message. In the async task, we check if the
OriginStorageManager still exists. If it does not, we will not write origin file, because the
OriginStorageManager may be removed after origin data gets deleted, and there's no need to add new origin file.
It's also possible that the OriginStorageManager is created for website data fetch, and removed immediately
after the fetch task is done (see NetworkStorageManager::fetchDataFromDisk). We used to not store
new data in general storage directory during data fetch, so it's fine to not write origin file in this case.

With r289878, existing data can be migrated to general storage directory at data fetch, so it is important to
ensure we write origin to file; otherwise, we will lose track of the origin. To solve this, let's restore the
old behavior that synchronouly writes origin file at creation of OriginStorageManager. To solve the delay issue,
in the sync message handler (NetworkStorageManager::connectToStorageArea), we specifically ask to not write
origin file, and manually write origin file after message is replied.

Updated existing API test to add test coverage.

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::localOriginStorageManager):
(WebKit::NetworkStorageManager::connectToStorageArea):

  • NetworkProcess/storage/NetworkStorageManager.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

12:47 PM Changeset in webkit [290232] by ntim@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline inert-focus-in-frames.html after r290197.

Unreviewed test gardening.

For some reason, the rebaselining changes didn't make it in the patch.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:
10:32 AM Changeset in webkit [290231] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Flip inline block coords for vertical-rl before painting
https://bugs.webkit.org/show_bug.cgi?id=236896

Reviewed by Antti Koivisto.

This is similar to what we do in LegacyInlineElementBox::paint.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

9:54 AM Changeset in webkit [290230] by Kocsen Chung
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.6

9:53 AM Changeset in webkit [290229] by Alan Bujtas
  • 46 edits
    1 copy in trunk

[IFC][Integration] Enable non-paginated vertical-lr writing mode
https://bugs.webkit.org/show_bug.cgi?id=236481
<rdar://problem/89123721>

Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:

Progressions.

  • web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationCoverage.h:

LayoutTests:

Progression:

  • css3/flexbox/line-wrapping.html:

Legacy layout bounds floor/ceil mismatch:

  • fast/block/float/float-with-fractional-height-vertical-lr.html:
  • imported/blink/fast/multicol/vertical-lr/float-big-line-expected.html:
  • imported/blink/fast/multicol/vertical-lr/float-big-line.html:

Progression (visually matching Chrome)

  • platform/mac/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-radius-clipping-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt:
  • platform/mac/fast/writing-mode/box-shadow-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/text-orientation-basic-expected.txt:
9:51 AM Changeset in webkit [290228] by Kocsen Chung
  • 1 copy in branches/safari-614.1.5-branch

New branch.

8:01 AM Changeset in webkit [290227] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

Generate compile_commands.json on macOS Builds
https://bugs.webkit.org/show_bug.cgi?id=235686

Patch by Brandon Stewart <Brandon> on 2022-02-20
Reviewed by Saam Barati.

Add support for generating compile_commands.json file to WebKit.

compile_commands.json can be used by tools like clangd to provide code complete,
refactoring, formatting, and cross references.

Steps to generate the compile commands file:
make d EXPORT_COMPILE_COMMANDS=YES
generate-compile-commands WebKitBuild/Debug

.:

  • Makefile.shared:

Source/WebKit:

  • UIProcess/API/C/WKPageUIClient.h:

Tools:

  • Scripts/build-jsc:
  • Scripts/build-webkit:
  • Scripts/generate-compile-commands: Added.
7:45 AM Changeset in webkit [290226] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Enable iOS Simulator queues for PRs
https://bugs.webkit.org/show_bug.cgi?id=236816
<rdar://problem/89117393>

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/config.json:

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

6:17 AM Changeset in webkit [290225] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

RenderBox::flipForWritingModeForChild should take const RenderBox& as the child renderer
https://bugs.webkit.org/show_bug.cgi?id=236895

Reviewed by Antti Koivisto.

  • rendering/LegacyInlineElementBox.cpp:

(WebCore::LegacyInlineElementBox::paint):
(WebCore::LegacyInlineElementBox::nodeAtPoint):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintChild):
(WebCore::RenderBlock::hitTestContents):
(WebCore::RenderBlock::paintExcludedChildrenInBorder):
(WebCore::RenderBlock::hitTestExcludedChildrenInBorder):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::paintColumnRules):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::flipForWritingModeForChild const):
(WebCore::RenderBox::topLeftLocation const):

  • rendering/RenderBox.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::hitTestChildren):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::paintObject):
(WebCore::RenderTable::nodeAtPoint):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::nodeAtPoint):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::paintCell):
(WebCore::RenderTableSection::paintObject):
(WebCore::RenderTableSection::nodeAtPoint):

5:14 AM Changeset in webkit [290224] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r289470): [Flatpak SDK] Broken local SDK handling
https://bugs.webkit.org/show_bug.cgi?id=236940

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-20
Reviewed by Martin Robinson.

The .Local path was incorrectly generated to WebKitBuild/UserFlatpak/.Local.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.clean_args): Revert .Local SDK path handling to the version before r289470.

Feb 19, 2022:

11:12 PM Changeset in webkit [290223] by Chris Dumez
  • 21 edits in trunk/Source

Optimize DOM storage event dispatch
https://bugs.webkit.org/show_bug.cgi?id=236871

Reviewed by Sihui Liu.

Made the following optimization to DOM storage event dispatch:

  1. Pass a SecurityOrigin around instead of a SecurityOriginData. Otherwise, dispatchLocalStorageEvents() / dispatchSessionStorageEvents() just keep reconstructing the SecurityOrigin from the SecurityOriginData for every frame.
  2. When gathering the list of frames where we need to dispatch the storage event, discard the ones that do not have a "storage" event listener.

Source/WebCore:

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didDispatchDOMStorageEventImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):

  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::storageId):
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • inspector/agents/InspectorDOMStorageAgent.h:
  • loader/EmptyClients.cpp:
  • page/DOMWindow.cpp:
  • storage/StorageEventDispatcher.cpp:

(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):

  • storage/StorageEventDispatcher.h:
  • storage/StorageNamespace.h:
  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::localStorageArea):

Source/WebKit:

  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::framesForEventDispatching):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

  • WebProcess/WebStorage/StorageAreaMap.h:
  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::storageArea):

  • WebProcess/WebStorage/StorageNamespaceImpl.h:

Source/WebKitLegacy:

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::create):
(WebKit::StorageAreaImpl::clearForOriginDeletion):
(WebKit::StorageAreaImpl::sync):
(WebKit::StorageAreaImpl::sessionChanged):

  • Storage/StorageAreaImpl.h:
  • Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::storageArea):

  • Storage/StorageNamespaceImpl.h:
9:15 PM Changeset in webkit [290222] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bots.

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
9:13 PM Changeset in webkit [290221] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening. Relating tests failing due to turning accel drawing on to b236904.

  • platform/ios/TestExpectations:
8:35 PM Changeset in webkit [290220] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Test gardening for [CSS Blending] Non-separable blend modes don't work
https://bugs.webkit.org/show_bug.cgi?id=131354

LayoutTests/imported/mozilla:

Unreviewed. Add fuzzy data.

  • svg/blend-color.svg:
  • svg/blend-hue.svg:
  • svg/blend-luminosity.svg:

LayoutTests:

Unreviewed.

5:42 PM Changeset in webkit [290219] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

macCatalyst: WKWebView crashes whenever the view frame changes
https://bugs.webkit.org/show_bug.cgi?id=236887
<rdar://problem/89182039>

Reviewed by Chris Dumez.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _acquireResizeAssertionForReason:]):
Add a respondsToSelector check.

5:34 PM Changeset in webkit [290218] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

Set custom general storage directory for custom WebsiteDataStore in TestController
https://bugs.webkit.org/show_bug.cgi?id=236893

Reviewed by Chris Dumez.

If we don't set custom generalStorageDirectory for a custom WebsiteDataStore, it will use the same path as the
default WebsiteDataStore. That means when WebKitTestRunner creates multiple WebsiteDataStores (it may create
mutliple TestControllers to run tests in parallel), the directory will be accessed concurrently and data can be
corrupted.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):

3:05 PM Changeset in webkit [290217] by mark.lam@apple.com
  • 91 edits
    2 adds in trunk/Source/WebCore

[Re-landing] Provide a WebCore subspaceImplFor template to make code more readable.
https://bugs.webkit.org/show_bug.cgi?id=236868
rdar://problem/89170090

Reviewed by Yusuke Suzuki.

The pre-existing code is difficult to follow, especially in CodeGeneratorJS.pm.
This change also consolidates the framework implementation of subspaceForImpl in
one place rather than scattered across 3 locations. This will make it easier to
change this code in the future.

Also introduced ExtendedDOMIsoSubspace and ExtendedDOMClientIsoSubspaces classes
and moved the FileSystemDirectoryHandleIterator subspaces in there. This makes
the code behave more consistently for FileSystemDirectoryHandleIterator's
IsoSubspace as for other IsoSubspaces.

Also rebased bindings test results.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ExtendedDOMClientIsoSubspaces.h: Added.
  • bindings/js/ExtendedDOMIsoSubspaces.h: Added.
  • bindings/js/JSFileSystemDirectoryHandleIterator.cpp:

(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSHeapData::JSHeapData):
(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSHeapData::subspaces):
(WebCore::JSVMClientData::idbSerializationSpace):
(WebCore::JSVMClientData::clientSubspaces):
(WebCore::subspaceForImpl):
(WebCore::JSHeapData::fileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSHeapData::setFileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSVMClientData::fileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSVMClientData::setFileSystemDirectoryHandleIteratorSpace): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateIterableDefinition):

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

(WebCore::JSDOMWindow::subspaceForImpl):

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

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSExposedStar::subspaceForImpl):

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

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

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

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

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

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSShadowRealmGlobalScope::subspaceForImpl):

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

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSTestCEReactions::subspaceForImpl):

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

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

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

(WebCore::JSTestCallTracer::subspaceForImpl):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestConditionalIncludes::subspaceForImpl):

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

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

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

(WebCore::JSTestDOMJIT::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSON::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

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

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

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

(WebCore::JSTestDomainSecurity::subspaceForImpl):

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

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

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

(WebCore::JSTestEnabledForContext::subspaceForImpl):

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

(WebCore::JSTestEventConstructor::subspaceForImpl):

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

(WebCore::JSTestEventTarget::subspaceForImpl):

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

(WebCore::JSTestException::subspaceForImpl):

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

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

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

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

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

(WebCore::JSTestGlobalObject::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):

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

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

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

(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):

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

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

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

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

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

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestMapLike::subspaceForImpl):

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

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestNamespaceObject::subspaceForImpl):

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

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceForImpl):

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

(WebCore::JSTestOperationConditional::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

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

(WebCore::JSTestPluginInterface::subspaceForImpl):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

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

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

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

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

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

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

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

(WebCore::JSTestSetLike::subspaceForImpl):

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

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

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

(WebCore::JSTestStringifier::subspaceForImpl):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

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

(WebCore::JSTestTaggedWrapper::subspaceForImpl):

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

(WebCore::JSTestTypedefs::subspaceForImpl):

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

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

3:01 PM Changeset in webkit [290216] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.4.1

Tag Safari-614.1.4.1.

2:33 PM Changeset in webkit [290215] by Kocsen Chung
  • 9 edits in branches/safari-614.1.4-branch/Source

Versioning.

WebKit-7614.1.4.1

1:42 PM Changeset in webkit [290214] by Chris Dumez
  • 4 edits in trunk

Unreviewed, reverting r290196.

Caused Network Process crashes <rdar://89190571>

Reverted changeset:

"Add assertion that no two network sessions share the same
storage path"
https://bugs.webkit.org/show_bug.cgi?id=236844
https://commits.webkit.org/r290196

1:16 PM Changeset in webkit [290213] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk

Unreviewed, reverting r290194 and r290210.
https://bugs.webkit.org/show_bug.cgi?id=236890

debug crash

Reverted changesets:

"[JSC] Make ArrayPrototype just an array"
https://bugs.webkit.org/show_bug.cgi?id=236869
https://commits.webkit.org/r290194

"Unreviewed, use ArrayWithUndecided in ArrayPrototype"
https://bugs.webkit.org/show_bug.cgi?id=236869
https://commits.webkit.org/r290210

1:02 PM Changeset in webkit [290212] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the internal iOS build after r290154

-[ASCAgentProtocol performAutoFillAuthorizationRequestsForContext:] only exists on macOS and Catalyst; as
such, this call site needs to be guarded for those platforms.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::WebAuthenticatorCoordinatorProxy::performRequest):

11:24 AM Changeset in webkit [290211] by Wenson Hsieh
  • 13 edits in trunk/Source/WebKit

[macOS] Hovering over "Copy Cropped Image" context menu item should reveal the cropped image
https://bugs.webkit.org/show_bug.cgi?id=236845
rdar://89152746

Reviewed by Dean Jackson.

Add support for revealing the "cropped" region of an image element (while dimming out the rest of the image)
when the user highlights the new "Copy Cropped Image" context menu item on macOS. See below for more details.

  • Platform/cocoa/TextRecognitionUtilities.h:

Adjust requestImageAnalysisMarkup to take a completion handler with both the resulting CGImageRef, as well as
a CGRect that represents the frame of the cropped image with respect to the source image, normalized to the unit
square. Additionally, tweak all call sites of requestImageAnalysisMarkup to pass in completion handlers that
accept both arguments.

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::hitTestedElementContext const):

Add an optional ElementContext representing the inner hit-tested element for the context menu. We use this below
in WebPageProxy::willHighlightContextMenuItem to know where we need to install the cropped image overlay.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didDismissContextMenu):

Reset the cached cropped image result as well as the cropped image overlay state when the context menu is
dismissed.

(WebKit::WebPageProxy::resetStateAfterProcessExited):

Also clear the above state if the process crashes.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView doAfterComputingImageAnalysisResultsForMarkup:]):
(-[WKContentView actionSheetAssistant:copyCroppedImage:sourceMIMEType:]):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(-[WKMenuDelegate menu:willHighlightItem:]):

Implement this NSMenu delegate method and call out to WebPageProxy whenever the highlighted context menu item
changes. See below for more details.

(WebKit::WebContextMenuProxyMac::applyMarkupToControlledImage):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::willHighlightContextMenuItem):

This method coordinates showing or hiding the cropped image overlay when the user highlights (but does not yet
select) the "Copy Cropped Image" context menu item. When the user first highlights this item, we trigger an
analysis request in VisionKit; when we later obtain the results, we send the image to the web process as TIFF
data, and inject it into the image using ImageOverlay::CroppedImage::install. Un-highlighting and re-
highlighting the menu item then respectively hides and shows the cropped image overlay by setting visibility.

(WebKit::WebPageProxy::handleContextMenuCopyCroppedImage):

Adjust this to use the cached m_croppedImageResult if it has already been computed.

  • WebProcess/WebPage/WebContextMenu.cpp:

(WebKit::WebContextMenu::show):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didDismissContextMenu):

Destroy the m_croppedImageOverlay after the context menu is dismissed (which uninstalls the cropped image
overlay in the process).

(WebKit::WebPage::installCroppedImageOverlay):
(WebKit::WebPage::setCroppedImageOverlayVisibility):

Add methods to install and toggle the visibility of the cropped image overlay.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
9:51 AM Changeset in webkit [290210] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

Unreviewed, use ArrayWithUndecided in ArrayPrototype
https://bugs.webkit.org/show_bug.cgi?id=236869

JSTests:

  • stress/array-prototype-concat.js: Added.

Source/JavaScriptCore:

  • runtime/ArrayPrototype.h:
9:43 AM Changeset in webkit [290209] by dino@apple.com
  • 16 edits
    7 adds in trunk

[JSC] Implement Temporal.PlainDate
https://bugs.webkit.org/show_bug.cgi?id=230033
<rdar://problem/83127747>

Reviewed by Yusuke Suzuki.

JSTests:

Some basic tests for PlainDate.

  • stress/temporal-plaindate.js: Added.

(shouldBe):
(shouldThrow):
(shouldBe.String.Temporal.PlainDate.from):
(let.text.of.failures.shouldThrow):

Source/JavaScriptCore:

Implement the constructor, from and compare for Temporal.PlainDate.
This is only a partial implementation, because from doesn't
support object parameters, and the compare function creates some
internally. However, it is a start!

  • DerivedSources-input.xcfilelist: Add new files.
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • heap/Heap.cpp: Create the temporalPlainDateSpace.
  • heap/Heap.h:
  • heap/HeapSubspaceTypes.h:
  • runtime/ISO8601.cpp:

(JSC::ISO8601::daysInMonth): Make this publicly visible.
(JSC::ISO8601::temporalDateToString): New method for printing a date.

  • runtime/ISO8601.h:
  • runtime/JSGlobalObject.cpp: Make the m_plainDateStructure object.

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::plainDateStructure):

  • runtime/TemporalObject.cpp: Add the PlainDate constructor.

(JSC::createPlainDateConstructor):

  • runtime/TemporalObject.h:
  • runtime/TemporalPlainDate.cpp: Added.

(JSC::TemporalPlainDate::create):
(JSC::TemporalPlainDate::createStructure):
(JSC::TemporalPlainDate::TemporalPlainDate):
(JSC::TemporalPlainDate::finishCreation):
(JSC::TemporalPlainDate::visitChildrenImpl):
(JSC::toPlainDate):
(JSC::TemporalPlainDate::tryCreateIfValid):
(JSC::TemporalPlainDate::toString const):
(JSC::TemporalPlainDate::from):
(JSC::TemporalPlainDate::compare):

  • runtime/TemporalPlainDate.h: Added.
  • runtime/TemporalPlainDateConstructor.cpp: Added.

(JSC::TemporalPlainDateConstructor::create):
(JSC::TemporalPlainDateConstructor::createStructure):
(JSC::TemporalPlainDateConstructor::TemporalPlainDateConstructor):
(JSC::TemporalPlainDateConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalPlainDateConstructor.h: Added.
  • runtime/TemporalPlainDatePrototype.cpp: Added.

(JSC::TemporalPlainDatePrototype::create):
(JSC::TemporalPlainDatePrototype::createStructure):
(JSC::TemporalPlainDatePrototype::TemporalPlainDatePrototype):
(JSC::TemporalPlainDatePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • runtime/TemporalPlainDatePrototype.h: Added.
  • runtime/VM.h: Define the temporalPlainDateSpace.
9:31 AM Changeset in webkit [290208] by jonlee@apple.com
  • 11 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bots.

LayoutTests/imported/mozilla:

  • svg/blend-hard-light.svg:

LayoutTests:

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
  • compositing/images/positioned-image-content-rect.html:
  • compositing/overlap-blending/nested-overlap.html:
  • css2.1/20110323/height-applies-to-010a.htm:
  • fast/borders/border-radius-on-html.html:
  • fast/replaced/ul-li-word-break-break-word.html:
  • imported/blink/fast/scrolling/fractional-scroll-offset-iframe-fixed-position.html:
8:16 AM Changeset in webkit [290207] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add support for ideographic baseline with font fallback
https://bugs.webkit.org/show_bug.cgi?id=236872

Reviewed by Antti Koivisto.

Let's use the pre-collected fallback fonts to adjust the inline box layout bounds with their ideographic baselines.
This is in preparation for enabling vertical text.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustLayoutBoundsWithFallbackFonts const):
(WebCore::Layout::LineBoxBuilder::collectFallbackFonts):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
6:45 AM Changeset in webkit [290206] by commit-queue@webkit.org
  • 14 edits
    1 add
    5 deletes in trunk

[WPE][GTK] Enable Thunder and remove old Clearkey CDM/Decryptor
https://bugs.webkit.org/show_bug.cgi?id=235492

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-19
Reviewed by Xabier Rodriguez-Calvar.

.:

Enable Thunder in developer builds, this is now needed for the clearkey EME layout tests.

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

Source/WebCore:

The Thunder decryptor can now handle ClearKey payloads, as long as the underlying ocdm
library advertises it as supported. Thus the dedicated ClearKey decryptor is no longer
needed and can be removed.

Covered by existing EME ClearKey layout tests.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::registerWebKitGStreamerElements):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp:

(WebCore::CDMFactory::platformRegisterFactories):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp: Removed.

(): Deleted.
(WebCore::CDMProxyFactoryClearKey::singleton): Deleted.
(WebCore::CDMProxyFactoryClearKey::createCDMProxy): Deleted.
(WebCore::CDMProxyFactoryClearKey::supportsKeySystem): Deleted.
(WebCore::CDMProxyClearKey::~CDMProxyClearKey): Deleted.
(WebCore::CDMProxyClearKey::cencSetCounterVector): Deleted.
(WebCore::CDMProxyClearKey::cencSetDecryptionKey): Deleted.
(WebCore::CDMProxyClearKey::cencDecryptFullSample): Deleted.
(WebCore::CDMProxyClearKey::cencDecryptSubsampled): Deleted.
(WebCore::CDMProxyClearKey::cencDecrypt): Deleted.
(WebCore::CDMProxyClearKey::closeGCryptHandle): Deleted.
(WebCore::CDMProxyClearKey::gCryptHandle): Deleted.

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.h: Removed.

(): Deleted.

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::CDMFactoryThunder::supportedKeySystems const):

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: Removed.

(webkit_media_clear_key_decrypt_class_init): Deleted.
(protectionSystemId): Deleted.
(cdmProxyAttached): Deleted.
(decrypt): Deleted.

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h: Removed.
  • platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webKitMediaSrcSendEvent):

LayoutTests:

Update EME ClearKey baselines, a few more tests were enabled.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/encrypted-media/idlharness.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/idlharness.https-expected.txt: Removed.
6:05 AM Changeset in webkit [290205] by Antti Koivisto
  • 15 edits in trunk

[CSS Container Queries] Match container queries correctly in non-rendered subtrees
https://bugs.webkit.org/show_bug.cgi?id=236840

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:

Source/WebCore:

"If the query container does not have a principal box ... then the result of evaluating the size feature is unknown."

https://drafts.csswg.org/css-contain-3/#size-container

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::styleForFirstLetter):

Remove the assert, this issue is tested by marked-as-failure
imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative.html

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::ContainerQueryEvaluator):
(WebCore::Style::ContainerQueryEvaluator::evaluate const):
(WebCore::Style::ContainerQueryEvaluator::resolveContainer const):

Factor into a function.
If we don't have selector matching state (like we do during style resolution) then look up containers from DOM.
An element without a renderer may still be a valid container (size queries againt it evaluate to unknown).

(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

  • style/ContainerQueryEvaluator.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::containerQueryMatches):

Evaluate to unknown if we don't have a principal box.

5:30 AM Changeset in webkit [290204] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Introduce LineBoxBuilder::collectFallbackFonts
https://bugs.webkit.org/show_bug.cgi?id=236866

Reviewed by Antti Koivisto.

Let's move fallback font collect to a dedicated function and stop leaking internal line types to TextUtil.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::collectFallbackFonts):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::fallbackFontHasVerticalGlyph): Deleted.

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

(WebCore::Layout::TextUtil::fallbackFontsForText):
(WebCore::Layout::TextUtil::fallbackFontsForRun): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
4:36 AM Changeset in webkit [290203] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(r290175): ASSERTION FAILED: platformSample.type == PlatformSample::CMSampleBufferType while running webgl tests
https://bugs.webkit.org/show_bug.cgi?id=236878

Add a missing hunk.
Unreviewed, TBR Eric Carlson.

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-19

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::getVideoFrameBuffer):

1:01 AM Changeset in webkit [290202] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] layoutBoundsForInlineBox should read layoutBoundsPrimaryMetricsForInlineBox
https://bugs.webkit.org/show_bug.cgi?id=236864

Reviewed by Antti Koivisto.

layoutBoundsForInlineBox returns the layout bounds based on the primary font.
This is in preparation for adding font fallback support for ideographic baseline.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::layoutBoundsPrimaryMetricsForInlineBox):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):
(WebCore::Layout::layoutBoundsMetricsForInlineBox): Deleted.

12:48 AM Changeset in webkit [290201] by graouts@webkit.org
  • 8 edits
    2 adds in trunk

REGRESSION (r287524): hihello.me does not show sliding sheet at the bottom of the page
https://bugs.webkit.org/show_bug.cgi?id=236838
rdar://88672183

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add new WPT tests to check we correctly compute implicit keyframes when a 0% and/or 100% keyframe
is defined but only specifies a timing function. One test checks the output of getKeyframes() and
the other that we correctly account for the implicit vaues when computing styles.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
  • web-platform-tests/css/css-animations/animation-multiple-from-to-keyframes-with-only-timing-function-expected.txt: Added.
  • web-platform-tests/css/css-animations/animation-multiple-from-to-keyframes-with-only-timing-function.html: Added.

Source/WebCore:

When we fixed bug 234799 we fixed the behavior of keyframe deduplication in
Style::Resolver::keyframeRulesForName(). While this was a good fix, code that
relied on the KeyframeList that would eventually be yielded from that function
did not quite correctly add implicit keyframes for the 0% and 100% case in some
relatively obscure situation.

The site hihello.me made this shortcoming apparent. This site has this odd keyframe rule:

from, 60%, 75%, 90%, to {

animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

}

It appears the intention of the author with this rule is to replicate the timing function
on multiple keyframes. However, this does not work. This timing function will not be used
for *anything* since if a rule is specified without an animation-timing-function value it
will use the value set on the element, not one on a different keyframe.

This also means that while there are explicit 0% and 100% keyframes, they are not adequate
to then compute implicit properties since the timing function wouldn't match the default
timing function (unless the element that those keyframes are applied to would happen to
specify that exact same timing function).

To correctly handle this, we need to do several things.

First of all, we remove the implicit keyframe code found in KeyframeEffect::getKeyframes()
and let KeyframeList::fillImplicitKeyframes() do all the work to correctly fill-in values
for properties not eplicitly specified on a 0% or 100% keyframe.

This means we need to improve that function to correctly do the task that it's supposed to
do. Now provided with a KeyframeEffect and an underlying style as parameters, for 0% and
100% it correctly:

  1. compiles a list of implicit properties for the given keyframe
  2. find a compatible keyframe for the implicit properties or create one
  3. set the implicit properties on that compatible keyframe to match the values found in the underlying style

This correctly takes cares of calls to getKeyframes() as well as the generation of keyframes
passed down to RenderLayerBacking when starting an accelerated animation.

But RenderLayerBacking also had some outdated assumptions on the KeyframeList it receives.
Indeed, it would always assume that a 0% or 100% keyframe would *always* specify properties
for the animated property. That was incorrect since we correctly deduplicate keyframes and
having several 0% or 100% keyframes is perfectly valid. Now we don't give special treatment
to 0% or 100% keyframes in RenderLayerBacking::startAnimation() and always check that a keyframe
features values for the animated property before creating an animation value to send down
to GraphicsLayer.

Finally, another place we make assumptions on implicit keyframes was when resolving styles
as effects are applied in KeyframeEffect::setAnimatedPropertiesInStyle(). There we assumed
that a 0% or 100% keyframe would always qualify as a keyframe containing the animated property,
whereas the steps for resolving styles as specified by the Web Animations specification has
logic to deal with the case where we don't find a 0% or 100% keyframe with an explicit value
for the animated property. So we simplified the checks there to only ever check for an
explicit value.

This rather obscure way to specify keyframes was not previously tested by WPT, so this patch
improves the testing coverage in a way that would have caught this regression in the first place.

Test: imported/w3c/web-platform-tests/css/css-animations/animation-multiple-from-to-keyframes-with-only-timing-function.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::insert):
(WebCore::KeyframeList::fillImplicitKeyframes):

  • rendering/style/KeyframeList.h:

Feb 18, 2022:

11:22 PM Changeset in webkit [290200] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

ASSERTION FAILED: !hasAnyOpenConnections() in UniqueIDBDatabase::~UniqueIDBDatabase()
https://bugs.webkit.org/show_bug.cgi?id=236856

Reviewed by Chris Dumez.

The assertion is hit when running API test WebKit.MigrateIndexedDBDataToGeneralStorageDirectory. We need to
properly close UniqueIDBDatabase before it's destroyed.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::storageSession): remove logging as it was added when we had check for
default session. Since we don't have the check now, the logging does not make much sense.

  • NetworkProcess/storage/IDBStorageManager.cpp:

(WebKit::IDBStorageManager::~IDBStorageManager):

  • NetworkProcess/storage/IDBStorageManager.h:
11:19 PM Changeset in webkit [290199] by ddkilzer@apple.com
  • 4 edits in trunk/Tools

[Tools] Sanitizer builds should obey set-webkit-configuration --force-optimization-level
<https://webkit.org/b/236859>
<rdar://problem/89161649>

Reviewed by Brent Fulgham.

  • Scripts/webkitdirs.pm:

(XcodeOptions):

  • Pass WK_FORCE_OPTIMIZATION_LEVEL instead of GCC_OPTIMIZATION_LEVEL if sanitizers are enabled so the optimization level can be overridden in sanitizer.xcconfig.
  • sanitizer/asan.xcconfig:

(WK_NOT_): Remove.
(WK_NOT_YES): Remove.

  • Move variables to sanitizer.xcconfig.
  • sanitizer/sanitizer.xcconfig:

(WK_EMPTY_): Add.
(WK_NOT_): Add.
(WK_NOT_YES): Add.

  • Add utility variables originally from SDKVariant.xcconfig.

(WK_OVERRIDE_OPTIMIZATION_LEVEL): Add.

  • Set to YES/NO depending on whether WK_FORCE_OPTIMIZATION_LEVEL is set.

(GCC_OPTIMIZATION_LEVEL):
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_YES): Add.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO): Add.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Debug): Rename from GCC_OPTIMIZATION_LEVEL_Debug.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Production): Rename from GCC_OPTIMIZATION_LEVEL_Production.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Release): Rename from GCC_OPTIMIZATION_LEVEL_Release.

  • Make use of WK_OVERRIDE_OPTIMIZATION_LEVEL and WK_FORCE_OPTIMIZATION_LEVEL to allow overriding the default optimization level for sanitizer builds.
9:26 PM Changeset in webkit [290198] by Ben Nham
  • 10 edits
    17 adds in trunk

Hook up PushManager to permission state
https://bugs.webkit.org/show_bug.cgi?id=236739

Reviewed by Brady Eidson.

Source/WebCore:

This implements PushManager.permissionState. It returns the same value as
Notification.permission through the same mechanism.

This also makes PushManager.subscribe request permission from the user to show notifications
if the permission is in the default state and these requirements are met:

  1. The caller is a document with the same origin as a top level document. This means that cross-origin iframes cannot request push permissions. This matches Chrome's behavior.
  2. The caller cannot be a service worker. This limitation is allowed for by the spec.

There also needs to be some code added which removes a push subscription if the user deletes
the subscription entirely in the UI, for instance when the UIProcess calls
WKNotificationManagerProviderDidRemoveNotificationPolicies. That will be handled in a
separate patch.

Covered by new layout tests.

  • Modules/push-api/PushManager.cpp:

(WebCore::PushManager::subscribe):
(WebCore::PushManager::getSubscription):
(WebCore::PushManager::permissionState):

Source/WebKit:

Update comment explaining why we still have a permission state stub in webpushd.

  • webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::getPushPermissionState):

Tools:

Made the WebPushD API tests work now that subscribe checks for permission.

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

LayoutTests:

Added tests that make sure that PushManager.permissionState() and PushManager.subscribe()
respect the notification permission level for the current origin.

I made these regular tests rather than WPT tests because the WPT test harness calls
grantWebNotificationPermission at the top of its setup script (in testharnessreport.js), and
I didn't want to change that for this patch.

  • http/tests/push-api/resources/push-api-test-pre.js: Added.

(finishPushAPITest):
(waitForState):

  • http/tests/push-api/resources/subscribe-iframe-cross-origin.html: Added.
  • http/tests/push-api/resources/subscribe-iframe-same-origin.html: Added.
  • http/tests/push-api/resources/subscribe-tests.js: Added.

(async testServiceWorkerPermissionState):
(async testDocumentPermissionState):
(async testServiceWorkerSubscribe):
(async testDocumentSubscribe):

  • http/tests/push-api/resources/subscribe-worker.js: Added.

(async event):

  • http/tests/push-api/subscribe-default-permissions-expected.txt: Added.
  • http/tests/push-api/subscribe-default-permissions-iframe-cross-origin-expected.txt: Added.
  • http/tests/push-api/subscribe-default-permissions-iframe-cross-origin.html: Added.
  • http/tests/push-api/subscribe-default-permissions-iframe-same-origin-expected.txt: Added.
  • http/tests/push-api/subscribe-default-permissions-iframe-same-origin.html: Added.
  • http/tests/push-api/subscribe-default-permissions.html: Added.
  • http/tests/push-api/subscribe-deny-permissions-expected.txt: Added.
  • http/tests/push-api/subscribe-deny-permissions.html: Added.
  • http/tests/push-api/subscribe-grant-permissions-expected.txt: Added.
  • http/tests/push-api/subscribe-grant-permissions.html: Added.
  • platform/gtk/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
8:27 PM Changeset in webkit [290197] by ntim@apple.com
  • 3 edits in trunk

Stop propagating inertness through iframes in Node::deprecatedIsInert()
https://bugs.webkit.org/show_bug.cgi?id=236512

Reviewed by Chris Dumez.

This is only a bug for Node::deprecatedIsInert(), so it only affects focus. Selection APIs, etc. weren't affected
before this bug.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:

Source/WebCore:

Test: web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames.html

  • dom/Node.cpp:

(WebCore::Node::deprecatedIsInert const):

8:14 PM Changeset in webkit [290196] by sihui_liu@apple.com
  • 4 edits in trunk

Source/WebKit:
Add assertion that no two network sessions share the same storage path
https://bugs.webkit.org/show_bug.cgi?id=236844

Reviewed by Chris Dumez.

Each NetworkStorageManager has its own queue and accesses the storage files on that queue, so we can't have two
NetworkworkStorageManagers use the same path, as the path may be accessed concurrently and cause corruption.
Currently we have an SPI for setting custom generalStorageDirectory for WebsiteDataStore (in
_WKWebsiteDataStoreConfiguration), which means SPI clients can create two sessions with the same path in theory.
Let's add an assertion to ensure that does not happen.

This assertion has helped find a bug in WebKitTestRunner that we didn't set custom generalStorageDirectory for a
custom WebsiteDataStore (so it's using the same path as default WebsiteDataStore).

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::activePaths):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::NetworkStorageManager::~NetworkStorageManager):

Tools:
Add assertion that no two network session share the same storage path
https://bugs.webkit.org/show_bug.cgi?id=236844

Reviewed by Chris Dumez.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):

7:56 PM Changeset in webkit [290195] by ysuzuki@apple.com
  • 4 edits in trunk/Source/bmalloc

[libpas] Increase scavenger period from 100ms to 125ms in Darwin x64
https://bugs.webkit.org/show_bug.cgi?id=236873

Reviewed by Saam Barati.

Make x64 scavenger less aggressive while maintaining Membuster neutral
to make it less work.

  • libpas/src/libpas/pas_config_prefix.h:
  • libpas/src/libpas/pas_scavenger.c:
  • libpas/src/libpas/pas_utils.h:
7:53 PM Changeset in webkit [290194] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Make ArrayPrototype just an array
https://bugs.webkit.org/show_bug.cgi?id=236869

Reviewed by Saam Barati.

Originally, ArrayPrototype has slightly different memory layout & different logic etc.
But now, it is just an array with a lot of properties. We should just make it an array.

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/ArrayPrototype.h:
7:21 PM Changeset in webkit [290193] by mark.lam@apple.com
  • 91 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, reverting r290188.
https://bugs.webkit.org/show_bug.cgi?id=236875

Broke WebKitGTK &amp; WPE build bots

Reverted changeset:

"Provide a WebCore subspaceImplFor template to make code more
readable."
https://bugs.webkit.org/show_bug.cgi?id=236868
https://commits.webkit.org/r290188

Patch by Commit Queue <commit-queue@webkit.org> on 2022-02-18

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

http/wpt/push-api/onpush-disabled.html fails (incremental build issue?)
https://bugs.webkit.org/show_bug.cgi?id=236874

Unreviewed test gardening.

6:09 PM Changeset in webkit [290191] by Robert Jenner
  • 2 edits
    1 copy in trunk/LayoutTests

REGRESSION(r287249): [ Monterey wk2 ] media/media-source/media-webm-vorbis-partial.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=236857

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-18

  • platform/mac-bigsur/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt.
  • platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt: Rebaslining due to test changes.
5:03 PM Changeset in webkit [290190] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebGPU

[WebGPU] Any object-creation function that takes a descriptor can fail
https://bugs.webkit.org/show_bug.cgi?id=236855

Reviewed by Dean Jackson.

Generally, we view allocation failure as catastrophic, and crash. Because of that, I originally
made these methods return Refs, because I expected the failure case to cause intentional crashes
rather than return nullptr.

However, descriptors the shared header have a nextInChain pointer, which allows callers to pass
in extra extension-specific structs, as a linked list. If the WebGPU implementation sees one of
these extra structs that it doesn't know what to do with, it has to fail. That means that it's
possible to fail in a way other than an allocation failure, which means these functions have to
return RefPtrs instead of Refs.

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):
(wgpuAdapterRequestDevice):

  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::finish):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderFinish):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::createBindGroup):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::Device::createBuffer):
(WebGPU::Device::createCommandEncoder):
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
(WebGPU::Device::createPipelineLayout):
(WebGPU::Device::createQuerySet):
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):
(WebGPU::Device::createSampler):
(WebGPU::Device::createShaderModule):
(WebGPU::Device::createSwapChain):
(WebGPU::Device::createTexture):
(WebGPU::Device::getQueue):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceGetQueue):

  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:

(WebGPU::Instance::createSurface):
(wgpuInstanceCreateSurface):

  • WebGPU/RenderBundleEncoder.h:
  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::finish):
(wgpuRenderBundleEncoderFinish):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::createView):
(wgpuTextureCreateView):

5:02 PM Changeset in webkit [290189] by pvollan@apple.com
  • 19 edits in trunk/Source

Move content filtering to Networking process
https://bugs.webkit.org/show_bug.cgi?id=233760
<rdar://problem/86150702>

Reviewed by Brent Fulgham.

Source/WebCore:

Remove content filtering from DocumentLoader when the feature is enabled, since this takes place in the WebContent process.
Modify the ContentFilter class by removing use of the types CachedResoure and CachedRawResource, since objects of these
types are not available in the Networking process. Parameters with these types are replaced with URL parameters.
The new behavior is behind a feature flag, which is not enabled in this patch.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::startFilteringMainResource):
(WebCore::ContentFilter::stopFilteringMainResource):
(WebCore::ContentFilter::continueAfterResponseReceived):
(WebCore::ContentFilter::continueAfterDataReceived):
(WebCore::ContentFilter::continueAfterNotifyFinished):
(WebCore::ContentFilter::didDecide):
(WebCore::ContentFilter::deliverResourceData):
(WebCore::ContentFilter::url):
(WebCore::ContentFilter::deliverStoredResourceData):

  • loader/ContentFilter.h:

(WebCore::ContentFilter::blockedError const):
(WebCore::ContentFilter::isAllowed const):
(WebCore::ContentFilter::responseReceived const):

  • loader/ContentFilterClient.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::dataReceived):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::clearMainResource):
(WebCore::DocumentLoader::becomeMainResourceClient):
(WebCore::DocumentLoader::contentFilterDidBlock):
(WebCore::DocumentLoader::handleContentFilterDidBlock):
(WebCore::DocumentLoader::handleContentFilterProvisionalLoadFailure):
(WebCore::DocumentLoader::contentFilterWillHandleProvisionalLoadFailure):
(WebCore::DocumentLoader::contentFilterHandleProvisionalLoadFailure):

  • loader/DocumentLoader.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchDidFailProvisionalLoad):

  • loader/PolicyChecker.cpp:

(WebCore::FrameLoader::PolicyChecker::checkNavigationPolicy):

  • loader/SubstituteData.h:

(WebCore::SubstituteData::encode const):
(WebCore::SubstituteData::decode):

  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::canHandleRequest const):

Source/WebKit:

Move content filtering from the DocumentLoader class in the WebProcess to the NetworkResourceLoader class in the
Networking process. The NetworkResourceLoader is now a client of the content filter, and will send messages
to the DocumentLoader in the WebProcess to cancel the load when the content filter decided to block the load.
If the content filter is providing replacement data, this will also be sent over IPC to the WebProcess.
Data is not being sent to the WebProcess until the content filter has decided to allow the load, if content
filtering is enabled.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::startContentFiltering):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBuffer):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):
(WebKit::NetworkResourceLoader::dataReceivedThroughContentFilter):
(WebKit::NetworkResourceLoader::contentFilterDidBlock):
(WebKit::NetworkResourceLoader::cancelMainResourceLoadForContentFilter):
(WebKit::NetworkResourceLoader::handleProvisionalLoadFailureFromContentFilter):

  • NetworkProcess/NetworkResourceLoader.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::reloadAfterUnblockedContentFilter):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::contentFilterDidBlockLoad):
(WebKit::WebResourceLoader::cancelMainResourceLoadForContentFilter):
(WebKit::WebResourceLoader::handleProvisionalLoadFailureFromContentFilter):
(WebKit::WebResourceLoader::reload):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
4:57 PM Changeset in webkit [290188] by mark.lam@apple.com
  • 91 edits
    2 adds in trunk/Source/WebCore

Provide a WebCore subspaceImplFor template to make code more readable.
https://bugs.webkit.org/show_bug.cgi?id=236868
rdar://problem/89170090

Reviewed by Yusuke Suzuki.

The pre-existing code is difficult to follow, especially in CodeGeneratorJS.pm.
This change also consolidates the framework implementation of subspaceForImpl in
one place rather than scattered across 3 locations. This will make it easier to
change this code in the future.

Also introduced ExtendedDOMIsoSubspace and ExtendedDOMClientIsoSubspaces classes
and moved the FileSystemDirectoryHandleIterator subspaces in there. This makes
the code behave more consistently for FileSystemDirectoryHandleIterator's
IsoSubspace as for other IsoSubspaces.

Also rebased bindings test results.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ExtendedDOMClientIsoSubspaces.h: Added.
  • bindings/js/ExtendedDOMIsoSubspaces.h: Added.
  • bindings/js/JSFileSystemDirectoryHandleIterator.cpp:

(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSHeapData::JSHeapData):
(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSHeapData::subspaces):
(WebCore::JSVMClientData::idbSerializationSpace):
(WebCore::JSVMClientData::clientSubspaces):
(WebCore::subspaceForImpl):
(WebCore::JSHeapData::fileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSHeapData::setFileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSVMClientData::fileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSVMClientData::setFileSystemDirectoryHandleIteratorSpace): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateIterableDefinition):

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

(WebCore::JSDOMWindow::subspaceForImpl):

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

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSExposedStar::subspaceForImpl):

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

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

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

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

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

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSShadowRealmGlobalScope::subspaceForImpl):

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

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSTestCEReactions::subspaceForImpl):

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

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

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

(WebCore::JSTestCallTracer::subspaceForImpl):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestConditionalIncludes::subspaceForImpl):

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

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

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

(WebCore::JSTestDOMJIT::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSON::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

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

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

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

(WebCore::JSTestDomainSecurity::subspaceForImpl):

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

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

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

(WebCore::JSTestEnabledForContext::subspaceForImpl):

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

(WebCore::JSTestEventConstructor::subspaceForImpl):

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

(WebCore::JSTestEventTarget::subspaceForImpl):

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

(WebCore::JSTestException::subspaceForImpl):

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

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

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

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

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

(WebCore::JSTestGlobalObject::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):

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

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

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

(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):

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

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

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

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

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

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestMapLike::subspaceForImpl):

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

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestNamespaceObject::subspaceForImpl):

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

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceForImpl):

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

(WebCore::JSTestOperationConditional::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

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

(WebCore::JSTestPluginInterface::subspaceForImpl):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

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

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

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

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

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

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

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

(WebCore::JSTestSetLike::subspaceForImpl):

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

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

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

(WebCore::JSTestStringifier::subspaceForImpl):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

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

(WebCore::JSTestTaggedWrapper::subspaceForImpl):

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

(WebCore::JSTestTypedefs::subspaceForImpl):

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

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

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

[iOS] Add required Mach service to the sandbox of the GPU process
https://bugs.webkit.org/show_bug.cgi?id=236860

Reviewed by Darin Adler.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
4:44 PM Changeset in webkit [290186] by Devin Rousso
  • 15 edits in trunk/Source

[iOS] Safari can sometimes hang while printing due to sync IPC
https://bugs.webkit.org/show_bug.cgi?id=236811
<rdar://problem/56425783>

Reviewed by Aditya Keerthi.

Source/WebKit:

  • UIProcess/_WKWebViewPrintFormatter.h:
  • UIProcess/_WKWebViewPrintFormatterInternal.h:
  • UIProcess/_WKWebViewPrintFormatter.mm:

(-[_WKWebViewPrintFormatter requiresMainThread]): Added.
Adopt new UIKit SPI for allowing UIPrintFormatter to be called off the main thread.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _processDidExit]):
(-[WKContentView _wk_printFormatterRequiresMainThread]): Added.
(-[WKContentView _wk_pageCountForPrintFormatter:]):
(-[WKContentView _waitForDrawToPDFCallbackIfNeeded:]): Added.
(-[WKContentView _wk_printedDocument:]):
(-[WKContentView _waitForDrawToPDFCallback:]): Deleted.
Reorganize this code to support both sync and async flows.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computePagesForPrintingiOS): Added.
(WebKit::WebPageProxy::drawToPDFiOS): Added.
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): Deleted.

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

Split WebPageProxy::computePagesForPrintingAndDrawToPDF into two methods, as the first
"part" (i.e. computePagesForPrintingiOS) is no longer needed with this new UIKit SPI.

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

(WebKit::WebPageProxy::computePagesForPrinting):

  • UIProcess/API/C/WKPage.cpp:

(WKPageComputePagesForPrinting):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _askPageToComputePageRects]):
Have WebPageProxy::computePagesForPrinting take a WebCore::FrameIdentifier instead of a
WebFrameProxy* so that more callers (e.g. API::FrameHandle) can use it.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _wk_printFormatterRequiresMainThread]): Added.
By the time WKPDFView is asked to print, it should already have all the data necessary to
do so, so there's no reason to not use the main thread (since there's no sync IPC).

Source/WTF:

Adopt new UIKit SPI for allowing UIPrintFormatter to be called off the main thread.

  • wtf/PlatformHave.h:

Add a HAVE_UIKIT_BACKGROUND_THREAD_PRINTING to guard this new behavior.

4:40 PM Changeset in webkit [290185] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Fix test sharding when using --make-runner and --remote
https://bugs.webkit.org/show_bug.cgi?id=236560

Reviewed by Adrian Perez de Castro.

After https://commits.webkit.org/244496@main, test sharding was broken
for the make runner. Specifically, all remotes would get assigned all
tests (instead of a subset).

Fix this by propagating and using the correct value for remoteHosts.

  • Scripts/webkitruby/jsc-stress-test-writer-default.rb:
4:28 PM Changeset in webkit [290184] by J Pascoe
  • 22 edits in trunk/Source

[WebAuthn] Support for conditional mediation
https://bugs.webkit.org/show_bug.cgi?id=236820
rdar://84821947

Reviewed by Brent Fulgham and Chris Dumez.

This patch adds support for conditional mediation, as defined in the
credentials management spec: https://w3c.github.io/webappsec-credential-management/#dom-credentialmediationrequirement-conditional

Source/WebCore:

  • Modules/credentialmanagement/BasicCredential.cpp:

(WebCore::BasicCredential::isConditionalMediationAvailable):

  • Modules/credentialmanagement/BasicCredential.h:
  • Modules/credentialmanagement/BasicCredential.idl:
  • Modules/credentialmanagement/CredentialRequestOptions.h:
  • Modules/credentialmanagement/CredentialRequestOptions.idl:
  • Modules/credentialmanagement/CredentialsContainer.cpp:

(WebCore::CredentialsContainer::get):

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):
(WebCore::AuthenticatorCoordinator::isConditionalMediationAvailable const):

  • Modules/webauthn/AuthenticatorCoordinator.h:
  • Modules/webauthn/AuthenticatorCoordinatorClient.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::configurationAssertionRequestContext):
(WebKit::WebAuthenticatorCoordinatorProxy::contextForRequest):
(WebKit::WebAuthenticatorCoordinatorProxy::performRequest):
(WebKit::WebAuthenticatorCoordinatorProxy::isConditionalMediationAvailable):

  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
(WebKit::WebAuthenticatorCoordinatorProxy::isConditionalMediationAvailable):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::getAssertion):

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h:
4:27 PM Changeset in webkit [290183] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

Remove unneeded sandbox extension code
https://bugs.webkit.org/show_bug.cgi?id=228777
<rdar://problem/81516828>

Reviewed by Brent Fulgham.

Since the GPU process is now enabled by default, some related sandbox extension code can be removed.

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

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

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

(WebKit::WebPageProxy::creationParameters):
(WebKit::mediaRelatedMachServices): Deleted.
(WebKit::mediaRelatedIOKitClasses): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

  • WebProcess/com.apple.WebProcess.sb.in:
4:22 PM Changeset in webkit [290182] by Alan Coon
  • 1 copy in tags/Safari-613.1.17.0.6

Tag Safari-613.1.17.0.6.

4:22 PM Changeset in webkit [290181] by Alan Coon
  • 1 delete in tags/Safari-613.1.17.0.6

Delete tag.

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

[iOS] Add access to required Mach service in the Network process
https://bugs.webkit.org/show_bug.cgi?id=236853
<rdar://89031731>

Reviewed by Darin Adler.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
4:03 PM Changeset in webkit [290179] by Robert Jenner
  • 39 edits
    1 delete in trunk

Unreviewed, reverting r290149.

Broke Debug Builds.

Reverted changeset:

"Generate compile_commands.json on macOS Builds"
https://bugs.webkit.org/show_bug.cgi?id=235686
https://commits.webkit.org/r290149

3:50 PM Changeset in webkit [290178] by Wenson Hsieh
  • 10 edits
    2 adds in trunk

[Live Text] Add a mechanism to inject images into image overlays
https://bugs.webkit.org/show_bug.cgi?id=236842

Reviewed by Aditya Keerthi.

Source/WebCore:

To support additional behaviors around the "Copy Cropped Image" context menu item on macOS, add a new image
overlay helper method to install a temporary image element within the image overlay shadow root of a host image.
See below for more details.

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

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::imageOverlayCroppedImageIdentifier):
(WebCore::ImageOverlay::imageOverlayCroppedImageBackdropIdentifier):
(WebCore::ImageOverlay::isOverlayText):
(WebCore::ImageOverlay::removeOverlaySoonIfNeeded):
(WebCore::ImageOverlay::installImageOverlayStyleSheet):

Pull out logic for installing the UA style sheet for image overlays into a helper method, so that we can ensure
the stylesheet in both cases where the CroppedImage is installed first, or Live Text is injected first.

(WebCore::ImageOverlay::updateSubtree):

Refactor this method to not completely remove the image overlay root container in the case where the Live Text
subtree needs to be regenerated; this prevents us from inadvertently removing the cropped image overlay elements
when updating Live Text elements in the UA shadow root.

(WebCore::ImageOverlay::CroppedImage::install):

Add a method to install a cropped image overlay into the given host element. This creates a new blob URL using
the given image data and MIME type, and uses it to insert an image element within the image overlay root
container that's absolutely positioned over the given crop rect (normalized relative to the image).

This inserted image is presented over another dimming element that fades in and out as setVisibility() is
called. Finally, install returns a unique_ptr to a RAII object that can be used to fade the cropped image
backdrop in or out; when destroyed, this RAII object immediately disconnects both the backdrop and the image
element, and revokes the temporary blob URL created during install().

(WebCore::ImageOverlay::CroppedImage::CroppedImage):
(WebCore::ImageOverlay::CroppedImage::~CroppedImage):
(WebCore::ImageOverlay::CroppedImage::setVisibility):

  • dom/ImageOverlay.h:
  • dom/ShadowRoot.h:

Add a using TreeScope::getElementById; here to make it possible to call getElementById on ShadowRoot
without having to cast to a TreeScope.

  • html/shadow/imageOverlay.css:

(img#image-overlay-cropped-image):
(div#image-overlay-cropped-image-backdrop):

  • testing/Internals.cpp:

(WebCore::Internals::pngDataForTesting):
(WebCore::Internals::installCroppedImageOverlay):
(WebCore::Internals::uninstallCroppedImageOverlay):

Add internal testing support for the cropped image overlay by allowing layout tests to inject an image overlay
with hard-coded PNG data into the given element.

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

(WebCore::Internals::pngDataForTesting):

LayoutTests:

Add a layout test that exercises the new cropped image overlay code.

  • fast/images/text-recognition/image-overlay-cropped-image-expected.txt: Added.
  • fast/images/text-recognition/image-overlay-cropped-image.html: Added.
3:42 PM Changeset in webkit [290177] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (10/5/2021?): [iOS] http/wpt/cross-origin-opener-policy/single-request-to-server.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=233284

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
2:58 PM Changeset in webkit [290176] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.4

Tag Safari-614.1.4.

2:48 PM Changeset in webkit [290175] by commit-queue@webkit.org
  • 47 edits in trunk

WebGL GPUP: Crash when running fast/mediastream/getUserMedia-to-canvas-1.html
https://bugs.webkit.org/show_bug.cgi?id=236502
Source/WebCore:

<rdar://problem/88862921>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-18
Reviewed by Eric Carlson.

Add a polymorphic function asVideoFrameCV to convert VideoFrame to VideoFrameCV.
VideoFrameCV is used to draw the in-process video frame to in-process WebGL.

RemoteVideoFrameProxy will implement asVideoFrameCV by fetching the data from
GPUP and returning a new object exposing the data.

No new tests, tested by now unskipped tests.

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

(WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):

  • platform/graphics/cv/VideoFrameCV.h:
  • platform/graphics/cv/VideoFrameCV.mm:

(WebCore::VideoFrameCV::asVideoFrameCV):

Source/WebKit:

The crash is about MediaPlayerPrivateMediaStreamAVFObjC being in WP while other
media player private variants are proxied to GPUP. The previous implementation
would send media player identifiers to GPUP for copying.
This patch will implement the copy by the media player creating a reference
to VideoFrame. WebGL would send reference of the VideoFrame to GPUP for copying.

Make WP MediaPlayerPrivateRemote always return RemoteVideoFrameProxy objects
instead of WP in-process VideoFrame instances (for Cocoa VideoFrameCV) that
would hold the video data in process.

WP MediaPlayerPrivateMediaStreamAVFObjC already returns RemoteVideoFrameProxy
objects. This way GPUP WebGL implementation can obtain the read reference
to the remote object and send it in copyTextureFromVideoFrame message.

The WP in-process WebGL implementation converts the RemoteVideoFrameProxy
to VideoFrameCV with the new RemoteVideoFrameProxy::asVideoFrameCV.

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-18
Reviewed by Eric Carlson.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::copyTextureFromVideoFrame):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromVideoFrame):
(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGLCocoa::RemoteGraphicsContextGLCocoa):
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::asVideoFrameCV):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:

LayoutTests:

Unskip the previous crashes caused by the lack of implementation.

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-18
Reviewed by Eric Carlson.

  • platform/ios-wk2/TestExpectations:
2:43 PM Changeset in webkit [290174] by eric.carlson@apple.com
  • 23 edits in trunk/Source

[macOS] Allow screen and window capture to be done in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=236815
<rdar://problem/89117278>

Reviewed by Jer Noble.

Source/WebCore:

Tested manually.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.h:
  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:

(WebCore::ScreenCaptureKitCaptureSource::sessionDidChangeContent): Call CaptureDevice
constructor directly since we have everything it needs.
(WebCore::findSharableDevice): Extract logic from processSharableContent into a
static function so it can be reused.
(WebCore::ScreenCaptureKitCaptureSource::findShareableContent): Use findSharableDevice.
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration): Add logging.
(WebCore::ScreenCaptureKitCaptureSource::startContentStream): Ditto.
(WebCore::ScreenCaptureKitCaptureSource::captureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::processSharableContent): Deleted.

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.h:

(WebCore::ScreenCaptureKitSharingSessionManager::SharingSessionObserver::operator== const): Deleted.

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm:

(WebCore::ScreenCaptureKitSharingSessionManager::isAvailable):
(WebCore::ScreenCaptureKitSharingSessionManager::sessionDidChangeContent): Call
CaptureDevice constructor directly since we have everything it needs.
(WebCore::ScreenCaptureKitSharingSessionManager::promptForGetDisplayMedia): Call
completion handler if the class is not available.

Source/WebKit:

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::showWindowPicker): Call the picker.
(WebKit::GPUProcess::showScreenPicker): Ditto.
(WebKit::GPUProcess::setUseScreenCaptureKit):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in: Add rule to allow sandbox

to be extended dynamically with the mach-lookups required for the picker.

  • Scripts/process-entitlements.sh: Add entitlements required for picker.
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const): Encode shouldCaptureDisplayInGPUProcess.
(WebKit::WebPageCreationParameters::decode): Decode shouldCaptureDisplayInGPUProcess.

  • Shared/WebPageCreationParameters.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::addDisplayCaptureSandboxExtension): Create extensions required to use the
system picker.
(WebKit::GPUProcessProxy::updateSandboxAccess): Add display capture.
(WebKit::GPUProcessProxy::updateCaptureAccess): Pass "allowDisplayCapture" to updateSandboxAccess.
(WebKit::GPUProcessProxy::showWindowPicker):
(WebKit::GPUProcessProxy::showScreenPicker):
(WebKit::GPUProcessProxy::updatePreferences):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters): Set shouldCaptureDisplayInGPUProcess.

  • UIProcess/mac/DisplayCaptureSessionManager.mm:

(WebKit::DisplayCaptureSessionManager::showWindowPicker): Send message to GPU
process when necessary.
(WebKit::DisplayCaptureSessionManager::showScreenPicker): Ditto.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformInitialize): Pass shouldCaptureDisplayInGPUProcess to setupCaptureProcesses.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::setupCaptureProcesses): Add shouldCaptureDisplayInGPUProcess
parameter.
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource): Deal
with GPU process capture.
(WebKit::UserMediaCaptureManager::DisplayFactory::setShouldCaptureInGPUProcess):

  • WebProcess/cocoa/UserMediaCaptureManager.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Add UseGPUProcessForDisplayCapture.
2:40 PM Changeset in webkit [290173] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Use async NSSharingServicePicker menu if available
https://bugs.webkit.org/show_bug.cgi?id=236823
<rdar://problem/88858606>

Reviewed by Dean Jackson.

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

(-[WKShareSheet presentWithShareDataArray:inRect:]):
(-[WKShareSheet canShowPickerAsync:]):
(-[WKShareSheet showPickerAsync:completionHandler:]):

2:37 PM Changeset in webkit [290172] by Alan Coon
  • 1 copy in tags/Safari-613.1.17.0.6

Tag Safari-613.1.17.0.6.

2:36 PM Changeset in webkit [290171] by Alan Coon
  • 1 copy in tags/Safari-613.1.17.1.6

Tag Safari-613.1.17.1.6.

2:32 PM Changeset in webkit [290170] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix ideographic baseline for atomic inline level boxes with non-zero descent
https://bugs.webkit.org/show_bug.cgi?id=236841

Reviewed by Antti Koivisto.

In most cases atomic inline level boxes have zero descent values. However the ideographic should
include the descent value (see RenderBox::baselinePosition)
This patch also removes the check for orthogonal content since it is already covered at LineLayout::updateLayoutBoxDimensions
(getting the correct baseline value that is).

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

2:19 PM Changeset in webkit [290169] by Kocsen Chung
  • 4 edits in branches/safari-614.1.4-branch/Source/WebCore

Cherry-pick r290153. rdar://problem/89142268

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
https://bugs.webkit.org/show_bug.cgi?id=236787
<rdar://89076606>

Reviewed by Eric Carlson.

Source/WebCore:

Wrap call-sites in #if HAVE() macros.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::CDMInstanceFairPlayStreamingAVFObjC::contentKeySession): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::protectionStatusForDisplayID const): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::ensureSessionOrGroup):

Source/WebCore/PAL:

Follow-up: build problems still persist on certain platforms, so the "robustness"
changes made previously were not robust enough. The guards in AVFoundationSPI.h were
intended to ensure the definitions were present even on builds where the official API
is not supported. However, just because the API is not supported does not mean it's not
present, which leads to duplicate-interface build errors.

Fix the AVFoundationSPI.h pragmas to only define the classes and methods where those
objects are supported, and in parallel, wrap implementations which use those objects
in those same guards (making these checks compile-time in addition to runtime).

Move the declarations inside the #else (IOW, !USE(APPLE_INTERNAL_SDK)) block above,
and wrap each declaration in the correct HAVE() macro.

  • pal/spi/cocoa/AVFoundationSPI.h:

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

2:01 PM Changeset in webkit [290168] by dino@apple.com
  • 1 delete in trunk/Websites/bugs.webkit.org/template/en/default/queue.json.tmpl

Revert 290166.

1:38 PM Changeset in webkit [290167] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r288201): ASSERTION FAILED: !allScriptExecutionContextsMap().contains(m_identifier)
https://bugs.webkit.org/show_bug.cgi?id=236123
<rdar://problem/88472494>

Reviewed by Chris Dumez.

We sometimes call setupForReplace which reset m_gotFirstByte to false.
In that case, we may reuse the same client ID for two different documents.
To prevent this, we clear the clientID in setupForReplace.
For good measure, if service worker runtime flag is not on, we do not set the client ID at all.

Covered by existing WK1 tests.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setupForReplace):
(WebCore::DocumentLoader::loadMainResource):

1:32 PM Changeset in webkit [290166] by dino@apple.com
  • 1 add in trunk/Websites/bugs.webkit.org/template/en/default/queue.json.tmpl

Temporarily adding JSON output for request queue to see if it works.
Will remove it immediately after testing.

Unreviewed.

  • template/en/default/queue.json.tmpl: Added.
1:29 PM Changeset in webkit [290165] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r289990): [iOS] fast/backgrounds/gradient-background-shadow.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=236854

Unreviewed. Expanding fuzzy range.

  • fast/backgrounds/gradient-background-shadow.html:
1:21 PM Changeset in webkit [290164] by ntim@apple.com
  • 13 edits
    2 moves
    14 adds in trunk/LayoutTests

Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=236808

Reviewed by Simon Fraser.

Commit: https://github.com/web-platform-tests/wpt/commit/0d483a3bea340a2c60cb7a4add49eb63cbba2a64

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-double-nested-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-delegatesfocus-expected.txt.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-double-nested.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-delegatesfocus.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-label-focus.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-scroll-height.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/inert/dynamic-inert-on-focused-element.tentative-expected.txt: Added.
  • web-platform-tests/inert/dynamic-inert-on-focused-element.tentative.html: Added.
  • web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-canvas-fallback-content.tentative.html: Added.
  • web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-iframe-hittest.tentative.html: Added.
  • web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-iframe-tabbing.tentative.html: Added.
  • web-platform-tests/inert/inert-node-is-uneditable.tentative.html:
  • web-platform-tests/inert/inert-with-modal-dialog-001.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-with-modal-dialog-001.tentative.html: Added.
  • web-platform-tests/inert/inert-with-modal-dialog-002.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-with-modal-dialog-002.tentative.html: Added.
  • web-platform-tests/inert/w3c-import.log:

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt: Added.
1:20 PM Changeset in webkit [290163] by Alan Coon
  • 2 edits in branches/safari-613.1.17.0-branch/Source/WebCore

Cherry-pick r290152. rdar://problem/88327814

Keep promise in scope when calling DeferredPromise::reject
https://bugs.webkit.org/show_bug.cgi?id=236454

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

Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.

  • Modules/fetch/FetchBodyConsumer.cpp: (WebCore::FetchBodyConsumer::resolveWithFormData):

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

1:20 PM Changeset in webkit [290162] by Alan Coon
  • 3 edits
    6 adds in branches/safari-613.1.17.0-branch

Cherry-pick r290156. rdar://problem/89154452

ServiceWorkerGlobalScope+PushAPI requires PushAPIEnabled
https://bugs.webkit.org/show_bug.cgi?id=236846

Patch by Sam Sneddon <Sam Sneddon> on 2022-02-18
Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/wpt/push-api/onpush-disabled.html

http/wpt/push-api/onpush-enabled.html

  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:

LayoutTests:

  • http/wpt/push-api/onpush-disabled-expected.txt: Added.
  • http/wpt/push-api/onpush-disabled.html: Added.
  • http/wpt/push-api/onpush-disabled.js: Added. (test):
  • http/wpt/push-api/onpush-enabled-expected.txt: Added.
  • http/wpt/push-api/onpush-enabled.html: Added.
  • http/wpt/push-api/onpush-enabled.js: Added. (test):

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

1:18 PM Changeset in webkit [290161] by rniwa@webkit.org
  • 2 edits in trunk

Replace trac URLs in Introduction.md by equivalent GitHub URLs
https://bugs.webkit.org/show_bug.cgi?id=236826

Reviewed by Sihui Liu.

Replaced track links by equivalent Github links in Introduction.md.

Also replaced an example of a reference test since the previously referenced test
had been converted to a manual test, and updated documentations around preferences
as they had been refactored since this was originally written.

  • Introduction.md:
1:18 PM Changeset in webkit [290160] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r290152. rdar://problem/88327814

Keep promise in scope when calling DeferredPromise::reject
https://bugs.webkit.org/show_bug.cgi?id=236454

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

Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.

  • Modules/fetch/FetchBodyConsumer.cpp: (WebCore::FetchBodyConsumer::resolveWithFormData):

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

1:17 PM Changeset in webkit [290159] by Alan Coon
  • 3 edits
    6 adds in branches/safari-613.1.17.1-branch

Cherry-pick r290156. rdar://problem/89154452

ServiceWorkerGlobalScope+PushAPI requires PushAPIEnabled
https://bugs.webkit.org/show_bug.cgi?id=236846

Patch by Sam Sneddon <Sam Sneddon> on 2022-02-18
Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/wpt/push-api/onpush-disabled.html

http/wpt/push-api/onpush-enabled.html

  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:

LayoutTests:

  • http/wpt/push-api/onpush-disabled-expected.txt: Added.
  • http/wpt/push-api/onpush-disabled.html: Added.
  • http/wpt/push-api/onpush-disabled.js: Added. (test):
  • http/wpt/push-api/onpush-enabled-expected.txt: Added.
  • http/wpt/push-api/onpush-enabled.html: Added.
  • http/wpt/push-api/onpush-enabled.js: Added. (test):

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

1:13 PM Changeset in webkit [290158] by Alan Coon
  • 18 edits
    2 copies in branches/safari-613.1.17.1-branch/Source/bmalloc

Revert r290134. rdar://problem/89071706

This reverts patch application at r290134.

1:12 PM Changeset in webkit [290157] by Elliott Williams
  • 13 edits in trunk

[XCBuild] "All Modules" workspace builds building out of order
https://bugs.webkit.org/show_bug.cgi?id=236813

Reviewed by Alexey Proskuryakov.

Source/ThirdParty/libwebrtc:

Nothing particularly interesting here, but should fix build failures on
Apple-BigSur-XCBuild-Release-Build <https://build.webkit.org/#/builders/463>.

  • libwebrtc.xcodeproj/project.pbxproj: Ensure yasm is built before using it.

Source/WebCore/PAL:

Add product dependency on WTF, since PAL uses its headers without linking against it.

  • PAL.xcodeproj/project.pbxproj:

Source/WebGPU:

Add product dependency on WTF. WGSL uses its headers without linking against it.

  • Configurations/WGSL.xcconfig:
  • WebGPU.xcodeproj/project.pbxproj:

Tools:

Add product dependency on WebKit. LayoutTestHelper uses headers from WebKit and lower
frameworks without linking against them.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/mac/Configurations/LayoutTestHelper.xcconfig:
12:58 PM Changeset in webkit [290156] by Chris Dumez
  • 3 edits
    6 adds in trunk

ServiceWorkerGlobalScope+PushAPI requires PushAPIEnabled
https://bugs.webkit.org/show_bug.cgi?id=236846

Patch by Sam Sneddon <Sam Sneddon> on 2022-02-18
Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/wpt/push-api/onpush-disabled.html

http/wpt/push-api/onpush-enabled.html

  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:

LayoutTests:

  • http/wpt/push-api/onpush-disabled-expected.txt: Added.
  • http/wpt/push-api/onpush-disabled.html: Added.
  • http/wpt/push-api/onpush-disabled.js: Added.

(test):

  • http/wpt/push-api/onpush-enabled-expected.txt: Added.
  • http/wpt/push-api/onpush-enabled.html: Added.
  • http/wpt/push-api/onpush-enabled.js: Added.

(test):

12:42 PM Changeset in webkit [290155] by mark.lam@apple.com
  • 87 edits in trunk/Source/WebCore

Fix copy-paste error in r290129.
https://bugs.webkit.org/show_bug.cgi?id=236847
rdar://problem/89155146

Reviewed by Yusuke Suzuki.

The heap server subspace name should be parameterized based on the interfaceName.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::JSDOMWindow::subspaceForImpl):

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

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSExposedStar::subspaceForImpl):

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

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

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

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

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

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSShadowRealmGlobalScope::subspaceForImpl):

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

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSTestCEReactions::subspaceForImpl):

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

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

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

(WebCore::JSTestCallTracer::subspaceForImpl):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestConditionalIncludes::subspaceForImpl):

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

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

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

(WebCore::JSTestDOMJIT::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSON::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

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

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

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

(WebCore::JSTestDomainSecurity::subspaceForImpl):

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

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

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

(WebCore::JSTestEnabledForContext::subspaceForImpl):

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

(WebCore::JSTestEventConstructor::subspaceForImpl):

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

(WebCore::JSTestEventTarget::subspaceForImpl):

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

(WebCore::JSTestException::subspaceForImpl):

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

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

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

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

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

(WebCore::JSTestGlobalObject::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestInterface::subspaceForImpl):

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

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

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

(WebCore::JSTestIterable::subspaceForImpl):

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

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

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

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

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

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestMapLike::subspaceForImpl):

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

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestNamespaceObject::subspaceForImpl):

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

(WebCore::JSTestNode::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceForImpl):

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

(WebCore::JSTestOperationConditional::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

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

(WebCore::JSTestPluginInterface::subspaceForImpl):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

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

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

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

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

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

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

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

(WebCore::JSTestSetLike::subspaceForImpl):

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

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

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

(WebCore::JSTestStringifier::subspaceForImpl):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

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

(WebCore::JSTestTaggedWrapper::subspaceForImpl):

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

(WebCore::JSTestTypedefs::subspaceForImpl):

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

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

12:37 PM Changeset in webkit [290154] by J Pascoe
  • 9 edits in trunk

[WebAuthn] Add credentialID to _WKWebAuthenticationAssertionResponse and userHandle in getAllLocalAuthenticatorCredentials
https://bugs.webkit.org/show_bug.cgi?id=236657
rdar://problem/88979279

Reviewed by Brent Fulgham.

Source/WebKit:

Modified API tests to verify new fields present and populated.

  • UIProcess/API/APIWebAuthenticationAssertionResponse.cpp:

(API::WebAuthenticationAssertionResponse::credentialID const):

  • UIProcess/API/APIWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm:

(-[_WKWebAuthenticationAssertionResponse credentialID]):

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

(getAllLocalAuthenticatorCredentialsImpl):

Tools:

Adjusted existing API tests, GetAllCredential and MultipleAccounts, to test for new fields
being returned and that they match the values expected. These values stem from testUserEntityBundleBase64
and testAssertionMessageLongBase64.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]):
(TestWebKitAPI::TEST):

12:30 PM Changeset in webkit [290153] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
https://bugs.webkit.org/show_bug.cgi?id=236787
<rdar://89076606>

Reviewed by Eric Carlson.

Source/WebCore:

Wrap call-sites in #if HAVE() macros.

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::contentKeySession):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::protectionStatusForDisplayID const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::ensureSessionOrGroup):

Source/WebCore/PAL:

Follow-up: build problems still persist on certain platforms, so the "robustness"
changes made previously were not robust enough. The guards in AVFoundationSPI.h were
intended to ensure the definitions were present even on builds where the official API
is not supported. However, just because the API is not supported does not mean it's not
present, which leads to duplicate-interface build errors.

Fix the AVFoundationSPI.h pragmas to only define the classes and methods where those
objects are supported, and in parallel, wrap implementations which use those objects
in those same guards (making these checks compile-time in addition to runtime).

Move the declarations inside the #else (IOW, !USE(APPLE_INTERNAL_SDK)) block above,
and wrap each declaration in the correct HAVE() macro.

  • pal/spi/cocoa/AVFoundationSPI.h:
12:27 PM Changeset in webkit [290152] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Keep promise in scope when calling DeferredPromise::reject
https://bugs.webkit.org/show_bug.cgi?id=236454

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

Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::resolveWithFormData):

12:21 PM Changeset in webkit [290151] by timothy_horton@apple.com
  • 5 edits
    2 adds in trunk

Client-set minimum effective device width is not respected if AllowViewportShrinkToFitContent is enabled
https://bugs.webkit.org/show_bug.cgi?id=236822

Reviewed by Wenson Hsieh.

Source/WebCore:

New test: fast/viewport/ios/shrink-to-fit-content-with-wider-minimum-device-width.html

Re-instate the functionality of -[WKWebView _setMinimumEffectiveDeviceWidth:]
after it was intentionally broken in favor of shrink-to-fit in r244849.

It turns out that clients sometimes need a larger manually-set minimum
than the one shrink-to-fit will choose, so instead of picking between
them, we just take the maximum of the two.

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::setViewLayoutSize):
Rename the client-set mEDW to m_minimumEffectiveDeviceWidthForView.

(WebCore::ViewportConfiguration::nativeWebpageParameters):
(WebCore::ViewportConfiguration::setMinimumEffectiveDeviceWidthForShrinkToFit):
Rename to shouldIgnoreMinimumEffectiveDeviceWidthForShrinkToFit to be clear that
it's only about ignoring the shrink-to-fit mEDW, not the client-set one.

Rename the shrink-to-fit-set mEDW to m_minimumEffectiveDeviceWidthForShrinkToFit.

(WebCore::ViewportConfiguration::description const):
(WebCore::ViewportConfiguration::setMinimumEffectiveDeviceWidth): Deleted.

  • page/ViewportConfiguration.h:

(WebCore::ViewportConfiguration::minimumEffectiveDeviceWidth const):
The effective-mEDW now takes the client-set value into account in all cases,
taking the maximum-of-minimums as the effective value.

(WebCore::ViewportConfiguration::shouldIgnoreMinimumEffectiveDeviceWidthForShrinkToFit const):
(WebCore::ViewportConfiguration::shouldIgnoreMinimumEffectiveDeviceWidth const): Deleted.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setViewportConfigurationViewLayoutSize):
Reset the separate shrink-to-fit mEDW if shrink-to-fit is not engaged.

(WebKit::WebPage::shrinkToFitContent):

12:17 PM Changeset in webkit [290150] by commit-queue@webkit.org
  • 13 edits
    2 copies in trunk/Source/WebCore

[TextureMapper] Refactor TextureMapperPlatformLayerProxy into specializable implementations
https://bugs.webkit.org/show_bug.cgi?id=236836

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-02-18
Reviewed by Alejandro G. Castro.

Turn TextureMapperPlatformLayerProxy into an abstract class from which
different specializations can then be derived. Current implementation is
spun off into the TextureMapperPlatformLayerProxyGL class, and type
traits specialization facilities are provided for future parallel
implementations (e.g. a DMABuf-consuming proxy class).

Existing uses of TextureMapperPlatformLayerProxy are updated to use
the TextureMapperPlatformLayerProxyGL class instead. Downcasting is
done as necessary, with asserts checking for the expected implementation
type.

No change in functionality, only refactoring existing code.

  • platform/TextureMapper.cmake:
  • platform/graphics/gstreamer/GStreamerVideoFrameHolder.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamer::pushNextHolePunchBuffer):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp:

(WebCore::MediaPlayerPrivateHolePunch::MediaPlayerPrivateHolePunch):
(WebCore::MediaPlayerPrivateHolePunch::pushNextHolePunchBuffer):

  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:

(Nicosia::NicosiaImageBufferPipeSource::handle):

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

(Nicosia::ContentLayerTextureMapperImpl::createFactory):
(Nicosia::ContentLayerTextureMapperImpl::ContentLayerTextureMapperImpl):

  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::swapBuffersIfNeeded):

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

(Nicosia::GCGLLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:

(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::~TextureMapperPlatformLayerProxy): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::invalidate): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::pushNextBuffer): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::getAvailableBuffer): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::appendToUnusedBuffers): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::scheduleReleaseUnusedBuffers): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::swapBuffer): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::dropCurrentBufferWhilePreservingTexture): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired): Deleted.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:

(WebCore::TextureMapperPlatformLayerProxy::isGLBased const):
(WebCore::TextureMapperPlatformLayerProxy::isDMABufBased const):
(WebCore::TextureMapperPlatformLayerProxy::WTF_RETURNS_LOCK):
(WebCore::TextureMapperPlatformLayerProxy::WTF_GUARDED_BY_LOCK): Deleted.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp.

(WebCore::TextureMapperPlatformLayerProxyGL::~TextureMapperPlatformLayerProxyGL):
(WebCore::TextureMapperPlatformLayerProxyGL::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyGL::invalidate):
(WebCore::TextureMapperPlatformLayerProxyGL::pushNextBuffer):
(WebCore::TextureMapperPlatformLayerProxyGL::getAvailableBuffer):
(WebCore::TextureMapperPlatformLayerProxyGL::appendToUnusedBuffers):
(WebCore::TextureMapperPlatformLayerProxyGL::scheduleReleaseUnusedBuffers):
(WebCore::TextureMapperPlatformLayerProxyGL::releaseUnusedBuffersTimerFired):
(WebCore::TextureMapperPlatformLayerProxyGL::swapBuffer):
(WebCore::TextureMapperPlatformLayerProxyGL::dropCurrentBufferWhilePreservingTexture):
(WebCore::TextureMapperPlatformLayerProxyGL::scheduleUpdateOnCompositorThread):
(WebCore::TextureMapperPlatformLayerProxyGL::compositorThreadUpdateTimerFired):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.h: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h.
12:06 PM Changeset in webkit [290149] by commit-queue@webkit.org
  • 39 edits
    1 add in trunk

Generate compile_commands.json on macOS Builds
https://bugs.webkit.org/show_bug.cgi?id=235686

Patch by Brandon Stewart <Brandon> on 2022-02-18
Reviewed by Saam Barati.

Add support for generating compile_commands.json file to WebKit.

compile_commands.json can be used by tools like clangd to provide code complete,
refactoring, formatting, and cross references.

Steps to generate the compile commands file:
make r EXPORT_COMPILE_COMMANDS=YES
generate-compile-commands WebKitBuild/Release

.:

  • Makefile.shared:

PerformanceTests:

  • DecoderTest/Configurations/DebugRelease.xcconfig:
  • MediaTime/Configurations/DebugRelease.xcconfig:

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore/PAL:

  • Configurations/DebugRelease.xcconfig:

Source/WebGPU:

  • Configurations/DebugRelease.xcconfig:

Source/WebInspectorUI:

  • Configurations/DebugRelease.xcconfig:

Source/WebKit:

  • Configurations/DebugRelease.xcconfig:
  • UIProcess/API/C/WKPageUIClient.h:

Source/WebKitLegacy/mac:

  • Configurations/DebugRelease.xcconfig:

Source/WTF:

  • Configurations/DebugRelease.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • Scripts/build-jsc:
  • Scripts/build-webkit:
  • Scripts/generate-compile-commands: Added.
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
12:04 PM Changeset in webkit [290148] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Link issue to pull requests (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=236339
<rdar://problem/88657772>

Reviewed by Stephanie Lewis.

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

(PullRequest.main): Re-open associated closed PRs.

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

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

11:47 AM Changeset in webkit [290147] by sihui_liu@apple.com
  • 3 edits
    3 adds in trunk/Tools

Add test coverage for data migration introduced in r289878
https://bugs.webkit.org/show_bug.cgi?id=236825

Reviewed by Chris Dumez.

Ensure website data fetch and removal will examine both old paths (custom storage paths) and new paths (under
general storage directory). Also, ensure that data is migrated from old paths to new paths when an origin is
visited during data fetch and removal.

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

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/general-storage-directory-indexeddb.sqlite3: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/general-storage-directory-localstorage.sqlite3: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/general-storage-directory.origin: Added.
11:01 AM Changeset in webkit [290146] by beidson@apple.com
  • 16 edits
    1 copy
    5 adds in trunk

Add an InstallCoordination webpushd backend
https://bugs.webkit.org/show_bug.cgi?id=233714

Reviewed by Alex Christensen.

Source/WebCore/PAL:

Expose "toHexString" so we can SHA256 an arbitrary string to a hex representation.

  • pal/crypto/CryptoDigest.h:
  • pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp:

(PAL::CryptoDigest::toHexString):

Source/WebKit:

Covered by API tests.

This patch lets the iOS build create a placeholder app bundle to represent a registration using InstallCoordination.

  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/AppBundleRequest.mm:

(WebPushD::AppBundleRequest::start): Use the ICAppBundle implementation when appropriate.

  • webpushd/ICAppBundle.h: Copied from Source/WebKit/webpushd/PushAppBundle.h.

(WebPushD::ICAppBundle::create):

  • webpushd/ICAppBundle.mm: Added.

(-[WebAppInstallCoordinatorObserver initWithICAppBundle:]):
(-[WebAppInstallCoordinatorObserver coordinatorDidCompleteSuccessfully:forApplicationRecord:]):
(-[WebAppInstallCoordinatorObserver coordinator:canceledWithReason:client:]):
(WebPushD::broadcastDebugMessage):
(WebPushD::ICAppBundle::ICAppBundle):
(WebPushD::encodeOriginStringForBundleIdentifier):
(WebPushD::originStringFromEncodedBundleIdentifier):
(WebPushD::bundlePrefixForHostAppIdentifier):
(WebPushD::bundleNameForOriginStringAndHostAppIdentifier):
(WebPushD::ICAppBundle::getOriginsWithRegistrations):
(WebPushD::ICAppBundle::getBundleIdentifier):
(WebPushD::ICAppBundle::checkForExistingBundle):
(WebPushD::ICAppBundle::deleteExistingBundle):
(WebPushD::ICAppBundle::didDeleteExistingBundleWithError):
(WebPushD::ICAppBundle::stop):
(WebPushD::ICAppBundle::createBundle):
(WebPushD::ICAppBundle::bundleCreationSucceeded):
(WebPushD::ICAppBundle::bundleCreationFailed):

  • webpushd/InstallCoordinationSPI.h: Added.
  • webpushd/LaunchServicesSPI.h: Copied from Source/WebKit/webpushd/PushAppBundle.h.
  • webpushd/PushAppBundle.h:
  • webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions): Use the ICAppBundle implementation when appropriate.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/iOS/15/InstallCoordination.framework/InstallCoordination.tbd: Added.
10:59 AM Changeset in webkit [290145] by sbarati@apple.com
  • 3 edits
    1 delete in trunk/Source/ThirdParty/ANGLE

Remove ANGLE-static.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=236827

Reviewed by Dean Jackson.

It was unused.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-static.xcconfig: Removed.
  • Configurations/Base.xcconfig:
10:54 AM Changeset in webkit [290144] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Change domain used to hold whether CaptivePortalMode is active
https://bugs.webkit.org/show_bug.cgi?id=236793

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-02-18
Reviewed by Per Arne Vollan.

We need to update the location specifying whether CaptivePortalMode is active
to fall within the users domain.

  • UIProcess/API/Cocoa/_WKSystemPreferences.mm:

(+[_WKSystemPreferences isCaptivePortalModeEnabled]):
(+[_WKSystemPreferences setCaptivePortalModeEnabled:]):

10:52 AM Changeset in webkit [290143] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Follow up to b236802. Unreviewed.

  • platform/ios/TestExpectations: Remove the test expectations.
10:49 AM Changeset in webkit [290142] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests/imported/w3c

[iOS] css/css-color/t422-rgba-onscreen-b.xht and css/css-color/t425-hsla-onscreen-b.xht are consistently failing
https://bugs.webkit.org/show_bug.cgi?id=236802

Reviewed by Dean Jackson.

  • web-platform-tests/css/css-color/t422-rgba-onscreen-b.xht: Expand maxDifference range to accommodate iOS.
  • web-platform-tests/css/css-color/t425-hsla-onscreen-b.xht:
10:17 AM Changeset in webkit [290141] by Alan Coon
  • 4 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r290087. rdar://problem/88713302

Source/ThirdParty/ANGLE:
Metal ANGLE: vertex array does not correctly observe contents of data buffers
https://bugs.webkit.org/show_bug.cgi?id=236733
<rdar://problem/88713302>
<rdar://problem/88499073>

Patch by Kyle Piddington <Kyle Piddington> on 2022-02-17
Reviewed by Dean Jackson.

Similar to previous bug (236427), we were not correctly observing changes to the
vertex buffer data. This caused us to miss rebinding vertex buffers
when data was updated without causing conversion

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::syncState): (rx::VertexArrayMtl::setupDraw): (rx::VertexArrayMtl::syncDirtyAttrib):

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

10:15 AM Changeset in webkit [290140] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bot.

  • TestExpectations:
  • fast/css/counters/counter-list-item.html: Add fuzzy data.
  • gpu-process/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
10:14 AM Changeset in webkit [290139] by Alan Coon
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.6

10:12 AM Changeset in webkit [290138] by Adrian Perez de Castro
  • 12 edits in trunk

[CMake] Cannot find OpenGL when system provides opengl.pc instead of gl.pc
https://bugs.webkit.org/show_bug.cgi?id=236592

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/FindOpenGL.cmake: Rewrite to use imported targets, try the "opengl" and "glx"

pkg-config modules first, otherwise keep the existing logic that tried the "gl" pkg-config
module with fallbacks to find_path/find_library.

  • Source/cmake/OptionsGTK.cmake: Check for the presence of the OpenGL::GLX target instead of

te GLX_FOUND variable.

Source/ThirdParty/ANGLE:

  • PlatformGTK.cmake: Use the OpenGL::OpenGL imported target instead of the

OPENGL_LIBRARIES variable.

  • PlatformWPE.cmake: Remove linking againt OpenGL libraries; the WPE port is not

supposed to link to any of them directly.

Source/WebCore:

  • CMakeLists.txt: Use the OpenGL::OpenGL and OpenGL::GLX imported targets instead of variables.
  • platform/graphics/GLContext.cpp: Move here includes for the GL headers.
  • platform/graphics/GLContext.h: Remove includes for the GL headers, none of their

declarations are used here; instead include only the needed EGL headers to get the
definition of EGLNativeWindowType.

Source/WebKit:

  • CMakeLists.txt: Remove usage of the OPENGL_ variables for the WebKit target, which is

uneeded because it links to WebCore, which transitively pulls the needed libraries now
that imported targets are being used.

10:10 AM Changeset in webkit [290137] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/css/css-sizing/range-percent-intrinsic-size-* fail
https://bugs.webkit.org/show_bug.cgi?id=203514

Unreviewed.

10:10 AM Changeset in webkit [290136] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r290109. rdar://problem/89072235

Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
https://bugs.webkit.org/show_bug.cgi?id=236810
<rdar://89072235>

Reviewed by Dean Jackson.

Crash data suggests that r288933 didn't fix the crash entirely.

Although the code paths I can find appear to hold the lock, there may be an
opportunity for m_scrollingCoordinator to get nulled out after we null-check it
but before the copy for the main thread dispatch.

So make a RefPtr on the stack, null-check it, and then move it into the callback.

  • page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged): (WebCore::ThreadedScrollingTree::reportExposedUnfilledArea): (WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange): (WebCore::ThreadedScrollingTree::handleWheelEventPhase): (WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices): (WebCore::ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged):

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

10:10 AM Changeset in webkit [290135] by Alan Coon
  • 4 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r290087. rdar://problem/88713302

Source/ThirdParty/ANGLE:
Metal ANGLE: vertex array does not correctly observe contents of data buffers
https://bugs.webkit.org/show_bug.cgi?id=236733
<rdar://problem/88713302>
<rdar://problem/88499073>

Patch by Kyle Piddington <Kyle Piddington> on 2022-02-17
Reviewed by Dean Jackson.

Similar to previous bug (236427), we were not correctly observing changes to the
vertex buffer data. This caused us to miss rebinding vertex buffers
when data was updated without causing conversion

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::syncState): (rx::VertexArrayMtl::setupDraw): (rx::VertexArrayMtl::syncDirtyAttrib):

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

10:10 AM Changeset in webkit [290134] by Alan Coon
  • 18 edits
    2 deletes in branches/safari-613.1.17.1-branch/Source/bmalloc

Apply patch. rdar://problem/89071706

9:32 AM Changeset in webkit [290133] by Peng Liu
  • 4 edits
    1 add in trunk/Source/WebCore

[iOS][Modern Media Controls] Add an alternative overflow icon
https://bugs.webkit.org/show_bug.cgi?id=236729

Reviewed by Devin Rousso.

Add a new overflow icon. By default, the media controls will use the
original overflow icon. So this patch does not change the appearance of
the media controls.

  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/controls/layout-traits.js:

(LayoutTraits.prototype.overflowButtonHasCircle):

  • Modules/modern-media-controls/controls/overflow-button.js:

(OverflowButton):

  • Modules/modern-media-controls/images/iOS/OverflowCircle.svg: Added.
9:29 AM Changeset in webkit [290132] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][GStreamer][Thunder] Add video/x-h265 caps to Thunder decryptor
https://bugs.webkit.org/show_bug.cgi?id=236833

Reviewed by Philippe Normand.

This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/790

  • platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
9:25 AM Changeset in webkit [290131] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Use more StringView during CSP parsing
https://bugs.webkit.org/show_bug.cgi?id=236784

Reviewed by Darin Adler.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression const):

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

(WebCore::isCSPDirectiveName):
(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::parseScheme):
(WebCore::ContentSecurityPolicySourceList::parseHost):

  • page/csp/ContentSecurityPolicySourceList.h:
8:47 AM Changeset in webkit [290130] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AX: AccessibilityScrollView should be resilient to destruction of underlying scroll view
https://bugs.webkit.org/show_bug.cgi?id=236750

Reviewed by Andres Gonzalez.

Sometimes we can get into a state where we have a valid AccessibilityScrollView,
backed by an iframe, with a destroyed WeakPtr<ScrollView> m_scrollView. When this
happens, all of the content inside the iframe becomes inaccessible. We need to handle
the case where an iframe changes the frame and document it holds (e.g. respect the current frame in
HTMLFrameOwner::contentFrame, which can change).

This patch fixes this by caching a WeakPtr<HTMLFrameOwnerElement> when an AccessibilityScrollView
is created. A new method currentScrollView() has been added to prefer the original m_scrollView, and
fallback to the scrollview represented by the frame owner element if m_scrollView has been destroyed.

Thanks to Andres Gonzalez for helping to find and fix this issue.

  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::AccessibilityScrollView):
Cache the frame owner of the provided ScrollView* in new
m_frameOwnerElement field.
(WebCore::AccessibilityScrollView::detachRemoteParts):
Detach new m_frameOwnerElement field.
(WebCore::AccessibilityScrollView::currentScrollView const):
Added.

(WebCore::AccessibilityScrollView::isAttachment const):
(WebCore::AccessibilityScrollView::platformWidget const):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityScrollView::addChildren):
(WebCore::AccessibilityScrollView::webAreaObject const):
(WebCore::AccessibilityScrollView::elementRect const):
(WebCore::AccessibilityScrollView::document const):
(WebCore::AccessibilityScrollView::documentFrameView const):
(WebCore::AccessibilityScrollView::parentObject const):
(WebCore::AccessibilityScrollView::scrollTo const):
Use new currentScrollView() method instead of directly using m_scrollView.

(WebCore::AccessibilityScrollView::widgetForAttachmentView const):
Inlined in header.
(WebCore::AccessibilityScrollView::parentObjectIfExists const):
Inlined in header as call to parentObject() since these methods were duplicated.
(WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable const):
Inlined in header.

  • accessibility/AccessibilityScrollView.h:
8:43 AM Changeset in webkit [290129] by mark.lam@apple.com
  • 416 edits in trunk/Source

Split IsoSubspace into a GCClient allocator used by VM and a backend managed by Heap.
https://bugs.webkit.org/show_bug.cgi?id=233878
rdar://problem/86108394

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  1. Add a useGlobalGC option. We're currently only using this to guard some code for GlobalGC. We're not ready to run with GlobalGC enabled yet.
  1. Create a new GCClient namespace in JSC. The Heap is now split into 2 parts:
    1. VM / GCClient / client side: JSC::GCClient::Heap
    2. GlobalGC / server side: JSC::Heap

The eventual goal is to have many GCClient Heaps backed by a singleton server
Heap. Currently, we still have a 1 to 1 correspondence between the client and
server side i.e. VM embeds both one instance each of GCClient::Heap and Heap.

  1. Split IsoSubspace into:
    1. VM / GCClient / client side: JSC::GCClient::IsoSubspace
    2. GlobalGC / server side: JSC::IsoSubspace

The client side will now manage a LocalAllocator for the IsoSubspace.

The eventual goal is to have many GCClient::IsoSubspace allocators fed from
a server IsoSubspace. Currently, we still have a 1 to 1 correspondence
between the client and server side. GCClient::IsoSubspace instances will be
managed by GCClient::Heap. Server side IsoSubspaces continue to be managed
by Heap.

  1. IsoSubspacePerVM is also now client-server aware.

Previously, IsoSubspacePerVM was relying on AutoremovingIsoSubspace to
"automatically" unregister IsoSubspaces from IsoSubspacePerVM via its
destructor. However, there is a bug where the AutoremovingIsoSubspace is
never associated with the VM, and there is nothing that will trigger its
destruction when the VM shuts down.

This patch fixes this issue by having IsoSubspacePerVM register with the VM's
GCClient::Heap and Heap. On destruction, those Heaps will now be aware of
the IsoSubspacePerVM in use, and will tell the IsoSubspacePerVM to release
the associated IsoSubspaces.

The IsoSubspacePerVM::AutoremovingIsoSubspace class is now removed since it
is not needed.

  1. Previously, in Heap, we have some SpaceAndSet members that were named simply as "Space". Renamed these to be "SpaceAndSet" explicitly to more accurately reflect what they are.
  • API/JSAPIGlobalObject.h:
  • API/JSAPIValueWrapper.h:
  • API/JSAPIWrapperObject.mm:

(JSC::JSCallbackObject<JSAPIWrapperObject>::subspaceForImpl):

  • API/JSCallbackConstructor.h:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.cpp:

(JSC::JSCallbackObject<JSNonFinalObject>::subspaceForImpl):
(JSC::JSCallbackObject<JSGlobalObject>::subspaceForImpl):

  • API/JSCallbackObject.h:
  • API/ObjCCallbackFunction.h:

(JSC::ObjCCallbackFunction::subspaceFor):

  • API/glib/JSAPIWrapperGlobalObject.cpp:

(JSC::JSCallbackObject<JSAPIWrapperGlobalObject>::subspaceForImpl):

  • API/glib/JSAPIWrapperObjectGLib.cpp:

(JSC::JSCallbackObject<JSAPIWrapperObject>::subspaceForImpl):

  • API/glib/JSCCallbackFunction.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::finalizeUnconditionally):

  • bytecode/EvalCodeBlock.h:
  • bytecode/ExecutableToCodeBlockEdge.h:
  • bytecode/FunctionCodeBlock.h:
  • bytecode/ModuleProgramCodeBlock.h:
  • bytecode/ProgramCodeBlock.h:
  • bytecode/UnlinkedEvalCodeBlock.h:
  • bytecode/UnlinkedFunctionCodeBlock.h:
  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
(JSC::UnlinkedFunctionExecutable::finalizeUnconditionally):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecode/UnlinkedModuleProgramCodeBlock.h:
  • bytecode/UnlinkedProgramCodeBlock.h:
  • debugger/DebuggerScope.h:
  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::~Heap):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::deleteAllUnlinkedCodeBlocks):
(JSC::GCClient::Heap::Heap):
(JSC::GCClient::Heap::~Heap):

  • heap/Heap.h:

(JSC::Heap::lock):
(JSC::Heap::forEachCodeBlockSpace):
(JSC::Heap::forEachScriptExecutableSpace):
(JSC::GCClient::Heap::server):

  • heap/HeapInlines.h:

(JSC::GCClient::Heap::vm const):

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):
(JSC::GCClient::IsoSubspace::IsoSubspace):

  • heap/IsoSubspace.h:

(JSC::GCClient::IsoSubspace::cellSize):
(JSC::IsoSubspace::allocatorFor): Deleted.

  • heap/IsoSubspaceInlines.h:

(JSC::IsoSubspace::allocate): Deleted.

  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::IsoSubspacePerVM):
(JSC::IsoSubspacePerVM::isoSubspaceforHeap):
(JSC::IsoSubspacePerVM::clientIsoSubspaceforVM):
(JSC::IsoSubspacePerVM::releaseIsoSubspace):
(JSC::IsoSubspacePerVM::releaseClientIsoSubspace):
(): Deleted.
(JSC::IsoSubspacePerVM::forVM): Deleted.

  • heap/IsoSubspacePerVM.h:
  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::allocateSlowCase):
(JSC::LocalAllocator::tryAllocateWithoutCollecting):
(JSC::LocalAllocator::doTestCollectionsIfNeeded):

  • heap/LocalAllocator.h:

(JSC::LocalAllocator::directory const):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::stopAllocating):

  • heap/MutatorState.h:
  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHostPrototype.h:
  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.h:
  • runtime/AggregateErrorPrototype.h:
  • runtime/ArrayIteratorPrototype.h:
  • runtime/AsyncFromSyncIteratorPrototype.h:
  • runtime/AsyncFunctionPrototype.h:
  • runtime/AsyncGeneratorFunctionPrototype.h:
  • runtime/AsyncGeneratorPrototype.h:
  • runtime/AsyncIteratorPrototype.h:
  • runtime/AtomicsObject.h:
  • runtime/BigIntObject.h:
  • runtime/BigIntPrototype.h:
  • runtime/BooleanObject.h:

(JSC::BooleanObject::subspaceFor):

  • runtime/BrandedStructure.h:
  • runtime/ClonedArguments.h:
  • runtime/ConsoleObject.h:
  • runtime/CustomGetterSetter.h:

(JSC::CustomGetterSetter::subspaceFor):

  • runtime/DOMAttributeGetterSetter.h:
  • runtime/DateInstance.h:
  • runtime/DatePrototype.h:
  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::subspaceFor):

  • runtime/ErrorPrototype.h:
  • runtime/EvalExecutable.h:

(JSC::EvalExecutable::subspaceFor):

  • runtime/Exception.h:
  • runtime/FinalizationRegistryPrototype.h:
  • runtime/FunctionExecutable.h:
  • runtime/FunctionRareData.h:
  • runtime/GeneratorFunctionPrototype.h:
  • runtime/GeneratorPrototype.h:
  • runtime/GetterSetter.h:
  • runtime/HashMapImpl.h:
  • runtime/InternalFunction.h:

(JSC::InternalFunction::subspaceFor):

  • runtime/IntlCollator.h:
  • runtime/IntlCollatorPrototype.h:
  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlDateTimeFormatPrototype.h:
  • runtime/IntlDisplayNames.h:
  • runtime/IntlDisplayNamesPrototype.h:
  • runtime/IntlListFormat.h:
  • runtime/IntlListFormatPrototype.h:
  • runtime/IntlLocale.h:
  • runtime/IntlLocalePrototype.h:
  • runtime/IntlNumberFormat.h:
  • runtime/IntlNumberFormatPrototype.h:
  • runtime/IntlObject.h:
  • runtime/IntlPluralRules.h:
  • runtime/IntlPluralRulesPrototype.h:
  • runtime/IntlRelativeTimeFormat.h:
  • runtime/IntlRelativeTimeFormatPrototype.h:
  • runtime/IntlSegmentIterator.h:
  • runtime/IntlSegmentIteratorPrototype.h:
  • runtime/IntlSegmenter.h:
  • runtime/IntlSegmenterPrototype.h:
  • runtime/IntlSegments.h:
  • runtime/IntlSegmentsPrototype.h:
  • runtime/IteratorPrototype.h:
  • runtime/JSArray.h:

(JSC::JSArray::subspaceFor):

  • runtime/JSArrayBuffer.h:
  • runtime/JSArrayBufferPrototype.h:
  • runtime/JSArrayIterator.h:
  • runtime/JSAsyncGenerator.h:
  • runtime/JSBigInt.h:
  • runtime/JSBoundFunction.h:
  • runtime/JSCallee.h:

(JSC::JSCallee::subspaceFor):

  • runtime/JSCustomGetterFunction.h:
  • runtime/JSCustomSetterFunction.h:
  • runtime/JSDataView.h:
  • runtime/JSDataViewPrototype.h:
  • runtime/JSFinalizationRegistry.h:
  • runtime/JSFunction.h:

(JSC::JSFunction::subspaceFor):

  • runtime/JSGenerator.h:
  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewPrototype.h:
  • runtime/JSGlobalLexicalEnvironment.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::subspaceFor):

  • runtime/JSMap.h:
  • runtime/JSMapIterator.h:
  • runtime/JSModuleLoader.h:
  • runtime/JSModuleNamespaceObject.h:
  • runtime/JSModuleRecord.h:
  • runtime/JSNativeStdFunction.h:
  • runtime/JSONObject.h:
  • runtime/JSPromise.h:

(JSC::JSPromise::subspaceFor):

  • runtime/JSPromisePrototype.h:

(JSC::JSPromisePrototype::subspaceFor):

  • runtime/JSPropertyNameEnumerator.h:
  • runtime/JSProxy.h:

(JSC::JSProxy::subspaceFor):

  • runtime/JSRemoteFunction.h:
  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/JSSet.h:
  • runtime/JSSetIterator.h:
  • runtime/JSSourceCode.h:
  • runtime/JSString.h:

(JSC::JSString::subspaceFor):

  • runtime/JSStringIterator.h:
  • runtime/JSTemplateObjectDescriptor.h:
  • runtime/JSTypedArrayViewPrototype.h:
  • runtime/JSWeakObjectRef.h:
  • runtime/JSWithScope.h:
  • runtime/MapIteratorPrototype.h:
  • runtime/MapPrototype.h:
  • runtime/MathObject.h:
  • runtime/ModuleProgramExecutable.h:
  • runtime/NativeErrorPrototype.h:
  • runtime/NativeExecutable.h:
  • runtime/NumberObject.h:

(JSC::NumberObject::subspaceFor):

  • runtime/ObjectPrototype.h:
  • runtime/OptionsList.h:
  • runtime/ProgramExecutable.h:
  • runtime/PropertyTable.h:
  • runtime/ProxyObject.h:
  • runtime/ProxyRevoke.h:
  • runtime/ReflectObject.h:
  • runtime/RegExp.h:
  • runtime/RegExpObject.h:
  • runtime/RegExpPrototype.h:
  • runtime/RegExpStringIteratorPrototype.h:
  • runtime/ScopedArguments.h:
  • runtime/ScopedArgumentsTable.h:
  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::clearCode):
(JSC::ScriptExecutable::installCode):

  • runtime/SetIteratorPrototype.h:
  • runtime/SetPrototype.h:
  • runtime/ShadowRealmObject.h:
  • runtime/ShadowRealmPrototype.h:
  • runtime/SparseArrayValueMap.h:
  • runtime/StrictEvalActivation.h:
  • runtime/StringIteratorPrototype.h:
  • runtime/StringObject.h:

(JSC::StringObject::subspaceFor):

  • runtime/Structure.h:

(JSC::Structure::subspaceFor):

  • runtime/StructureChain.h:
  • runtime/StructureRareData.h:
  • runtime/Symbol.h:
  • runtime/SymbolObject.h:
  • runtime/SymbolPrototype.h:
  • runtime/SymbolTable.h:
  • runtime/TemporalCalendar.h:
  • runtime/TemporalCalendarPrototype.h:
  • runtime/TemporalDuration.h:
  • runtime/TemporalDurationPrototype.h:
  • runtime/TemporalInstant.h:
  • runtime/TemporalInstantPrototype.h:
  • runtime/TemporalNow.h:
  • runtime/TemporalObject.h:
  • runtime/TemporalPlainTime.h:
  • runtime/TemporalPlainTimePrototype.h:
  • runtime/TemporalTimeZone.h:
  • runtime/TemporalTimeZonePrototype.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::codeBlockSpace):
(JSC::VM::functionExecutableSpace):
(JSC::VM::programExecutableSpace):
(JSC::VM::unlinkedFunctionExecutableSpace):
(JSC::VM::arraySpace): Deleted.
(JSC::VM::bigIntSpace): Deleted.
(JSC::VM::calleeSpace): Deleted.
(JSC::VM::clonedArgumentsSpace): Deleted.
(JSC::VM::customGetterSetterSpace): Deleted.
(JSC::VM::dateInstanceSpace): Deleted.
(JSC::VM::domAttributeGetterSetterSpace): Deleted.
(JSC::VM::exceptionSpace): Deleted.
(JSC::VM::executableToCodeBlockEdgeSpace): Deleted.
(JSC::VM::functionSpace): Deleted.
(JSC::VM::getterSetterSpace): Deleted.
(JSC::VM::globalLexicalEnvironmentSpace): Deleted.
(JSC::VM::internalFunctionSpace): Deleted.
(JSC::VM::jsProxySpace): Deleted.
(JSC::VM::nativeExecutableSpace): Deleted.
(JSC::VM::numberObjectSpace): Deleted.
(JSC::VM::plainObjectSpace): Deleted.
(JSC::VM::promiseSpace): Deleted.
(JSC::VM::propertyNameEnumeratorSpace): Deleted.
(JSC::VM::propertyTableSpace): Deleted.
(JSC::VM::regExpSpace): Deleted.
(JSC::VM::regExpObjectSpace): Deleted.
(JSC::VM::ropeStringSpace): Deleted.
(JSC::VM::scopedArgumentsSpace): Deleted.
(JSC::VM::sparseArrayValueMapSpace): Deleted.
(JSC::VM::stringSpace): Deleted.
(JSC::VM::stringObjectSpace): Deleted.
(JSC::VM::structureChainSpace): Deleted.
(JSC::VM::structureRareDataSpace): Deleted.
(JSC::VM::structureSpace): Deleted.
(JSC::VM::brandedStructureSpace): Deleted.
(JSC::VM::symbolTableSpace): Deleted.

  • runtime/WeakMapImpl.h:

(JSC::WeakMapImpl::subspaceFor):

  • runtime/WeakMapPrototype.h:
  • runtime/WeakObjectRefPrototype.h:
  • runtime/WeakSetPrototype.h:
  • wasm/js/JSToWasmICCallee.h:
  • wasm/js/JSWebAssembly.h:
  • wasm/js/JSWebAssemblyException.h:
  • wasm/js/JSWebAssemblyGlobal.h:
  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/JSWebAssemblyTag.h:
  • wasm/js/WebAssemblyCompileErrorPrototype.h:
  • wasm/js/WebAssemblyExceptionPrototype.h:
  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyGlobalPrototype.h:
  • wasm/js/WebAssemblyInstancePrototype.h:
  • wasm/js/WebAssemblyLinkErrorPrototype.h:
  • wasm/js/WebAssemblyMemoryPrototype.h:
  • wasm/js/WebAssemblyModulePrototype.h:
  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyRuntimeErrorPrototype.h:
  • wasm/js/WebAssemblyTablePrototype.h:
  • wasm/js/WebAssemblyTagPrototype.h:
  • wasm/js/WebAssemblyWrapperFunction.h:

Source/WebCore:

  1. Make various classes client-server aware in terms of IsoSubspaces.
  2. Make CodeGeneratorJS.pm client-server aware in terms of IsoSubspaces.
  3. Rebase bindings test results.
  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • bindings/js/DOMGCOutputConstraint.cpp:

(WebCore::DOMGCOutputConstraint::DOMGCOutputConstraint):
(WebCore::DOMGCOutputConstraint::executeImplImpl):

  • bindings/js/DOMGCOutputConstraint.h:
  • bindings/js/JSDOMAsyncIterator.h:
  • bindings/js/JSDOMBuiltinConstructorBase.cpp:

(WebCore::JSDOMBuiltinConstructorBase::subspaceForImpl):

  • bindings/js/JSDOMBuiltinConstructorBase.h:

(WebCore::JSDOMBuiltinConstructorBase::subspaceFor):

  • bindings/js/JSDOMConstructorBase.cpp:

(WebCore::JSDOMConstructorBase::subspaceForImpl):

  • bindings/js/JSDOMConstructorBase.h:

(WebCore::JSDOMConstructorBase::subspaceFor):

  • bindings/js/JSDOMConstructorNotCallable.h:

(WebCore::JSDOMConstructorNotCallable::subspaceFor):

  • bindings/js/JSDOMIterator.h:
  • bindings/js/JSDOMWindowProperties.cpp:

(WebCore::JSDOMWindowProperties::subspaceForImpl):

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/js/JSFileSystemDirectoryHandleIterator.cpp:

(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):

  • bindings/js/JSFileSystemDirectoryHandleIterator.h:
  • bindings/js/JSIDBSerializationGlobalObject.cpp:

(WebCore::JSIDBSerializationGlobalObject::subspaceForImpl):

  • bindings/js/JSIDBSerializationGlobalObject.h:
  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::subspaceForImpl):

  • bindings/js/JSWindowProxy.h:
  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSHeapData::JSHeapData):
(WebCore::JSHeapData::ensureHeapData):
(WebCore::JSVMClientData::JSVMClientData):
(WebCore::JSVMClientData::initNormalWorld):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSHeapData::lock):
(WebCore::JSHeapData::subspaces):
(WebCore::JSHeapData::fileSystemDirectoryHandleIteratorSpace):
(WebCore::JSHeapData::setFileSystemDirectoryHandleIteratorSpace):
(WebCore::JSVMClientData::normalWorld):
(WebCore::JSVMClientData::rememberWorld):
(WebCore::JSVMClientData::forgetWorld):
(WebCore::JSVMClientData::heapData):
(WebCore::JSVMClientData::builtinNames):
(WebCore::JSVMClientData::builtinFunctions):
(WebCore::JSVMClientData::domBuiltinConstructorSpace):
(WebCore::JSVMClientData::domConstructorSpace):
(WebCore::JSVMClientData::domNamespaceObjectSpace):
(WebCore::JSVMClientData::domWindowPropertiesSpace):
(WebCore::JSVMClientData::runtimeArraySpace):
(WebCore::JSVMClientData::runtimeMethodSpace):
(WebCore::JSVMClientData::runtimeObjectSpace):
(WebCore::JSVMClientData::windowProxySpace):
(WebCore::JSVMClientData::idbSerializationSpace):
(WebCore::JSVMClientData::fileSystemDirectoryHandleIteratorSpace):
(WebCore::JSVMClientData::setFileSystemDirectoryHandleIteratorSpace):
(WebCore::JSVMClientData::clientSubspaces):
(WebCore::JSVMClientData::forEachOutputConstraintSpace): Deleted.
(WebCore::JSVMClientData::subspaces): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GenerateIterableDefinition):
(GeneratePrototypeDeclaration):

  • bindings/scripts/preprocess-idls.pl:
  • bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSDOMWindow.h:

(WebCore::JSDOMWindow::subspaceFor):

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

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.h:

(WebCore::JSDedicatedWorkerGlobalScope::subspaceFor):

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

(WebCore::JSExposedStarDOMConstructor::prototypeForStructure):
(WebCore::JSExposedStar::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedStar.h:

(WebCore::JSExposedStar::subspaceFor):

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

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h:

(WebCore::JSExposedToWorkerAndWindow::subspaceFor):

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

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.h:

(WebCore::JSPaintWorkletGlobalScope::subspaceFor):

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

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.h:

(WebCore::JSServiceWorkerGlobalScope::subspaceFor):

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

(WebCore::JSShadowRealmGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSShadowRealmGlobalScope.h:

(WebCore::JSShadowRealmGlobalScope::subspaceFor):

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

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSSharedWorkerGlobalScope.h:

(WebCore::JSSharedWorkerGlobalScope::subspaceFor):

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

(WebCore::JSTestCEReactionsDOMConstructor::prototypeForStructure):
(WebCore::JSTestCEReactions::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactions.h:

(WebCore::JSTestCEReactions::subspaceFor):

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

(WebCore::JSTestCEReactionsStringifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:

(WebCore::JSTestCEReactionsStringifier::subspaceFor):

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

(WebCore::JSTestCallTracerDOMConstructor::prototypeForStructure):
(WebCore::JSTestCallTracer::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCallTracer.h:

(WebCore::JSTestCallTracer::subspaceFor):

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

(WebCore::JSTestClassWithJSBuiltinConstructorDOMConstructor::prototypeForStructure):
(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceFor):

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

(WebCore::JSTestConditionalIncludesDOMConstructor::prototypeForStructure):
(WebCore::JSTestConditionalIncludes::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.h:

(WebCore::JSTestConditionalIncludes::subspaceFor):

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

(WebCore::JSTestConditionallyReadWriteDOMConstructor::prototypeForStructure):
(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.h:

(WebCore::JSTestConditionallyReadWrite::subspaceFor):

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

(WebCore::JSTestDOMJITDOMConstructor::prototypeForStructure):
(WebCore::JSTestDOMJIT::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDOMJIT.h:

(WebCore::JSTestDOMJIT::subspaceFor):

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

(WebCore::JSTestDefaultToJSONDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSON::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.h:

(WebCore::JSTestDefaultToJSON::subspaceFor):

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

(WebCore::JSTestDefaultToJSONFilteredByExposedDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h:

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceFor):

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

(WebCore::JSTestDefaultToJSONIndirectInheritanceDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.h:

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceFor):

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

(WebCore::JSTestDefaultToJSONInheritDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.h:

(WebCore::JSTestDefaultToJSONInherit::subspaceFor):

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

(WebCore::JSTestDefaultToJSONInheritFinalDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.h:

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceFor):

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

(WebCore::JSTestDelegateToSharedSyntheticAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.h:

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceFor):

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

(WebCore::JSTestDomainSecurityDOMConstructor::prototypeForStructure):
(WebCore::JSTestDomainSecurity::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDomainSecurity.h:

(WebCore::JSTestDomainSecurity::subspaceFor):

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

(WebCore::JSTestEnabledBySettingDOMConstructor::prototypeForStructure):
(WebCore::JSTestEnabledBySetting::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.h:

(WebCore::JSTestEnabledBySetting::subspaceFor):

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

(WebCore::JSTestEnabledForContextDOMConstructor::prototypeForStructure):
(WebCore::JSTestEnabledForContext::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledForContext.h:

(WebCore::JSTestEnabledForContext::subspaceFor):

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

(WebCore::JSTestEventConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventConstructor.h:

(WebCore::JSTestEventConstructor::subspaceFor):

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

(WebCore::JSTestEventTargetDOMConstructor::prototypeForStructure):
(WebCore::JSTestEventTarget::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventTarget.h:

(WebCore::JSTestEventTarget::subspaceFor):

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

(WebCore::JSTestExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestException.h:

(WebCore::JSTestException::subspaceFor):

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

(WebCore::JSTestGenerateAddOpaqueRootDOMConstructor::prototypeForStructure):
(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.h:

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceFor):

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

(WebCore::JSTestGenerateIsReachableDOMConstructor::prototypeForStructure):
(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:

(WebCore::JSTestGenerateIsReachable::subspaceFor):

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

(WebCore::JSTestGlobalObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:

(WebCore::JSTestGlobalObject::subspaceFor):

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

(WebCore::JSTestIndexedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestIndexedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:

(WebCore::JSTestIndexedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestIndexedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestInterfaceDOMConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscoreDOMConstructor::prototypeForStructure):
(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceFor):

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

(WebCore::JSTestIterableDOMConstructor::prototypeForStructure):
(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIterable.h:

(WebCore::JSTestIterable::subspaceFor):

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

(WebCore::JSTestJSBuiltinConstructorDOMConstructor::prototypeForStructure):
(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::subspaceFor):

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

(WebCore::JSTestLegacyFactoryFunctionDOMConstructor::prototypeForStructure):
(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.h:

(WebCore::JSTestLegacyFactoryFunction::subspaceFor):

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

(WebCore::JSTestLegacyNoInterfaceObjectPrototype::finishCreation):
(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h:

(WebCore::JSTestLegacyNoInterfaceObject::subspaceFor):

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

(WebCore::JSTestLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h:

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceFor):

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

(WebCore::JSTestMapLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLike.h:

(WebCore::JSTestMapLike::subspaceFor):

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

(WebCore::JSTestMapLikeWithOverriddenOperationsDOMConstructor::prototypeForStructure):
(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.h:

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:

(WebCore::JSTestNamedDeleterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedDeleterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterWithIndexedGetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceFor):

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

(WebCore::JSTestNamedGetterCallWithDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:

(WebCore::JSTestNamedGetterCallWith::subspaceFor):

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

(WebCore::JSTestNamedGetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:

(WebCore::JSTestNamedGetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedGetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:

(WebCore::JSTestNamedGetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:

(WebCore::JSTestNamedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:

(WebCore::JSTestNamedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:

(WebCore::JSTestNamedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIndexedGetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceFor):

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

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceFor):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceFor):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceFor):

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

(WebCore::JSTestNamespaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamespaceObject.h:

(WebCore::JSTestNamespaceObject::subspaceFor):

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

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

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

(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::JSTestObj::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceFor):

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

(WebCore::JSTestOperationConditionalDOMConstructor::prototypeForStructure):
(WebCore::JSTestOperationConditional::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOperationConditional.h:

(WebCore::JSTestOperationConditional::subspaceFor):

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

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:

(WebCore::JSTestOverloadedConstructors::subspaceFor):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceFor):

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

(WebCore::JSTestPluginInterfaceDOMConstructor::prototypeForStructure):
(WebCore::JSTestPluginInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPluginInterface.h:

(WebCore::JSTestPluginInterface::subspaceFor):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h:

(WebCore::JSTestPromiseRejectionEvent::subspaceFor):

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

(WebCore::JSTestReadOnlyMapLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.h:

(WebCore::JSTestReadOnlyMapLike::subspaceFor):

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

(WebCore::JSTestReadOnlySetLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.h:

(WebCore::JSTestReadOnlySetLike::subspaceFor):

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

(WebCore::JSTestReportExtraMemoryCostDOMConstructor::prototypeForStructure):
(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.h:

(WebCore::JSTestReportExtraMemoryCost::subspaceFor):

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

(WebCore::JSTestSerializedScriptValueInterfaceDOMConstructor::prototypeForStructure):
(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:

(WebCore::JSTestSerializedScriptValueInterface::subspaceFor):

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

(WebCore::JSTestSetLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestSetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLike.h:

(WebCore::JSTestSetLike::subspaceFor):

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

(WebCore::JSTestSetLikeWithOverriddenOperationsDOMConstructor::prototypeForStructure):
(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.h:

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceFor):

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

(WebCore::JSTestStringifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifier.h:

(WebCore::JSTestStringifier::subspaceFor):

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

(WebCore::JSTestStringifierAnonymousOperationDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:

(WebCore::JSTestStringifierAnonymousOperation::subspaceFor):

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

(WebCore::JSTestStringifierNamedOperationDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:

(WebCore::JSTestStringifierNamedOperation::subspaceFor):

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

(WebCore::JSTestStringifierOperationImplementedAsDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:

(WebCore::JSTestStringifierOperationImplementedAs::subspaceFor):

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

(WebCore::JSTestStringifierOperationNamedToStringDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:

(WebCore::JSTestStringifierOperationNamedToString::subspaceFor):

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

(WebCore::JSTestStringifierReadOnlyAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceFor):

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

(WebCore::JSTestStringifierReadWriteAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:

(WebCore::JSTestStringifierReadWriteAttribute::subspaceFor):

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

(WebCore::JSTestTaggedWrapperDOMConstructor::prototypeForStructure):
(WebCore::JSTestTaggedWrapper::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTaggedWrapper.h:

(WebCore::JSTestTaggedWrapper::subspaceFor):

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

(WebCore::JSTestTypedefsDOMConstructor::construct):
(WebCore::JSTestTypedefs::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTypedefs.h:

(WebCore::JSTestTypedefs::subspaceFor):

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

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkerGlobalScope.h:

(WebCore::JSWorkerGlobalScope::subspaceFor):

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

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkletGlobalScope.h:

(WebCore::JSWorkletGlobalScope::subspaceFor):

  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcFallbackObjectImp::subspaceForImpl):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::subspaceForImpl):

  • bridge/runtime_array.h:
  • bridge/runtime_method.cpp:

(JSC::RuntimeMethod::subspaceForImpl):

  • bridge/runtime_method.h:
  • bridge/runtime_object.cpp:

(JSC::Bindings::RuntimeObject::subspaceForImpl):

  • bridge/runtime_object.h:
8:41 AM Changeset in webkit [290128] by Tyler Wilcock
  • 2 edits in trunk/Source/WebKit

AX: isAXAuthenticatedCallback must be handled on the main runloop
https://bugs.webkit.org/show_bug.cgi?id=236789

Reviewed by Chris Fleizach.

isAXAuthenticatedCallback in WebProcessCocoa.mm performs IPC to the UI process
to determine if the given auditToken is valid. This causes a crash with isolated
tree mode enabled as IPC must be performed on the main thread / runloop.

This patch changes this function to dispatch to the main runloop.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::isAXAuthenticatedCallback):

8:30 AM Changeset in webkit [290127] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][Integration] Add missing LineIteratorModernPath::isHorizontal implementation
https://bugs.webkit.org/show_bug.cgi?id=236835

Reviewed by Antti Koivisto.

isHorizontal value comes from the root inline box's writing mode.

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::isHorizontal const):

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

(WebCore::InlineDisplay::Line::isHorizontal const):
(WebCore::InlineDisplay::Line::Line):

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

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

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::isHorizontal const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::isHorizontal const):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

7:46 AM Changeset in webkit [290126] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Trigger Mac builders on pull-requests
https://bugs.webkit.org/show_bug.cgi?id=236257
<rdar://problem/88591950>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json: Enable Mac builders on pull-requests.

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

7:44 AM Changeset in webkit [290125] by graouts@webkit.org
  • 7 edits in trunk

[frame-rate] [custom-effect] allow setting frameRate as an option passed to document.timeline.animate()
https://bugs.webkit.org/show_bug.cgi?id=236831

Reviewed by Dean Jackson.

Source/WebCore:

  • animation/CustomAnimationOptions.h:
  • animation/CustomAnimationOptions.idl:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animate):

LayoutTests:

  • webanimations/frame-rate/animation-frame-rate-expected.txt:
  • webanimations/frame-rate/animation-frame-rate.html:
7:39 AM Changeset in webkit [290124] by Ziran Sun
  • 9 edits in trunk

[InputElement] Return empty string for an invalid floating-point number that ends with "."
https://bugs.webkit.org/show_bug.cgi?id=236700

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

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

Source/WebCore:

As per specs https://html.spec.whatwg.org/multipage/input.html#number-state-(type%3Dnumber),
"If the value of the element is not a valid floating-point number, then set it to the empty
string instead".

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseToDoubleForNumberType):

LayoutTests:

  • fast/forms/number/number-stepup-stepdown-expected.txt:
  • fast/forms/number/number-stepup-stepdown-from-renderer-expected.txt:
  • fast/forms/number/number-stepup-stepdown-from-renderer.html:
  • fast/forms/number/number-stepup-stepdown.html:
7:38 AM Changeset in webkit [290123] by graouts@webkit.org
  • 7 edits in trunk

[frame-rate] allow setting frameRate as an option passed to Element.animate()
https://bugs.webkit.org/show_bug.cgi?id=236830

Reviewed by Dean Jackson.

Source/WebCore:

  • animation/KeyframeAnimationOptions.h:
  • animation/KeyframeAnimationOptions.idl:
  • dom/Element.cpp:

(WebCore::Element::animate):

LayoutTests:

  • webanimations/frame-rate/animation-frame-rate-expected.txt:
  • webanimations/frame-rate/animation-frame-rate.html:
7:35 AM Changeset in webkit [290122] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[custom-effect] Animations associated with a custom effect should appear in document.getAnimations() result
https://bugs.webkit.org/show_bug.cgi?id=236828

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/custom-effect/custom-effect-get-animations.html

  • dom/Document.cpp:

(WebCore::Document::matchingAnimations):

LayoutTests:

  • webanimations/custom-effect/custom-effect-get-animations-expected.txt: Added.
  • webanimations/custom-effect/custom-effect-get-animations.html: Added.
2:47 AM Changeset in webkit [290121] by graouts@webkit.org
  • 8 edits
    6 adds in trunk

[frame-rate] animation with different but compatible frame rates should be aligned
https://bugs.webkit.org/show_bug.cgi?id=236778
<rdar://problem/89083932>

Reviewed by Simon Fraser.

Source/WebCore:

With bug 234202 we started accounting for the frameRate property of an animation when updating
animations and ensuring that animations with the same frameRate are sampled in the same frame.

We expand on this by aligning animations that use different frameRate but could share sample frames.
For instance, if we have animations running with frameRate set to 6, 12 and 18, and assuming no
frames are ever skipped, we should expect a sequence of frames where the following animations are
sampled:

  • frame 1: 12, 18, 6
  • frame 2: 18
  • frame 3: 12
  • frame 4: 18
  • frame 5: 12, 18, 6

and for that pattern to repeat.

To achieve this, we add a new "isNew" boolean flag on the FrameRateData struct. Then, in
FrameRateAligner::finishUpdate(), which is newly called from updateAnimationsAndSendEvents(),
we identify which frame rates have this flag, and analyze the other frame rates to determine
which frame rate it is most compatible with. If we find such a compatible frame rate, the new
frame rate adopts the same firstUpdateTime which ensures that they now have the same basis to
compute ideal times for sampling.

Within updateAnimationsAndSendEvents(), we also ensure that newly-added animations, regardless
of the output of FrameRateAligner::updateFrameRate(), are sampled right away so that there's no
delay for an animation to have visual output, letting them be synchronized with other animations
of that frame rate at the next opportunity.

Tests: webanimations/frame-rate/animation-frame-rate-alignment-compatible-frame-rates.html

webanimations/frame-rate/animation-frame-rate-alignment-started-together.html
webanimations/frame-rate/animation-frame-rate-alignment-started-with-one-frame-separation.html

  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):

  • animation/FrameRateAligner.cpp:

(WebCore::FrameRateAligner::beginUpdate):
(WebCore::FrameRateAligner::updateFrameRate):
(WebCore::frameRatesCanBeAligned):
(WebCore::FrameRateAligner::finishUpdate):

  • animation/FrameRateAligner.h:

LayoutTests:

Add new tests that check the behavior of alignment when:

  • two animations are started together with the same frame rate,
  • two animations are started one frame apart with the same frame rate,
  • three animations are each started one frame apart and with different, but compatible frame rates.
  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webanimations/frame-rate/animation-frame-rate-alignment-compatible-frame-rates-expected.txt: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-compatible-frame-rates.html: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-started-together-expected.txt: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-started-together.html: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-started-with-one-frame-separation-expected.txt: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-started-with-one-frame-separation.html: Added.
1:19 AM Changeset in webkit [290120] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bots. Update fuzzy data.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-images/gradients-with-transparent.html:
  • web-platform-tests/svg/coordinate-systems/viewBox-scaling-text-001.html:

LayoutTests:

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations: A couple tests are happening on all iOS bots and not uniquely on GPU Process bots.
12:50 AM Changeset in webkit [290119] by commit-queue@webkit.org
  • 4 edits in trunk

[JSC] Enable Shadow Realms support by default
https://bugs.webkit.org/show_bug.cgi?id=236673

Patch by Joseph Griego <jgriego@igalia.com> on 2022-02-18
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Enabling this flag causes the new WPT test to partially pass (since
ShadowRealm is available on Window) but does not completely pass
because shadow realm contexts do not yet have the required web APIs
exposed.

  • web-platform-tests/dom/idlharness-shadowrealm.window-expected.txt:

Source/JavaScriptCore:

The implementaiton in JSC is complete and should be correct and
reasonably fast now; so, enable it without requiring the flag.

Should be covered by EWS and existing tests of shadow realms functionality.

  • runtime/OptionsList.h:
12:48 AM Changeset in webkit [290118] by commit-queue@webkit.org
  • 6 edits in trunk/Source

[GTK][WPE] Don't use ANGLE's GBM-based display
https://bugs.webkit.org/show_bug.cgi?id=236772

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-02-18
Reviewed by Alejandro G. Castro.

Source/ThirdParty/ANGLE:

With DisplayGbm functionality not necessary anymore, we can stop
building the associated code and linking against libgbm and libdrm at
the ANGLE level. These two libraries are still dependencies that have
since become necessary in WebCore.

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:

Source/WebCore:

ANGLE's DisplayGbm implementation adds unnecessary overhead for how we
would want to use ANGLE. We don't need a connection to the DRM display
device or the ability for the display to provide pre-allocated buffer
objects that are then displayed on that device. Instead we have to
control our own GBM buffers and have options in terms of how we want
those buffers to be handled and presented.

We can live with the DisplayEGL implementation instead. To be able to
utilize it, we have to switch to using the EGL_GetPlatformDisplayEXT
entrypoint, along with a display attribute list that selects the
OpenGLES as the display's GL target (matching what we've used with
DisplayGBM so far) and EGL as the device type. Additionally, we
specify surfaceless as the native platform type, even when right now
this doesn't seem to have any effect.

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

(Nicosia::GCGLANGLELayer::ANGLEContext::createContext):

12:16 AM Changeset in webkit [290117] by sbarati@apple.com
  • 48 edits in trunk/Source

Add LC_SOURCE_VERSION to compile targets
https://bugs.webkit.org/show_bug.cgi?id=236720
<rdar://84984140>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

  • Configurations/JSC.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • Configurations/TestAPI.xcconfig:
  • Configurations/ToolExecutable.xcconfig:
  • Configurations/Version.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/Version.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Version.xcconfig:
  • Configurations/boringssl.xcconfig:
  • Configurations/libsrtp.xcconfig:
  • Configurations/libvpx.xcconfig:
  • Configurations/libwebm.xcconfig:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libyuv.xcconfig:
  • Configurations/opus.xcconfig:
  • Configurations/usrsctp.xcconfig:
  • Configurations/yasm.xcconfig:

Source/WebCore:

  • Configurations/Version.xcconfig:
  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:

Source/WebCore/PAL:

  • Configurations/Version.xcconfig:

Source/WebGPU:

  • Configurations/Version.xcconfig:
  • Configurations/WGSL.xcconfig:
  • Configurations/WGSLUnitTests.xcconfig:
  • Configurations/WebGPU.xcconfig:

Source/WebInspectorUI:

  • Configurations/Version.xcconfig:
  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

  • Configurations/GPUService.xcconfig:
  • Configurations/NetworkService.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebAuthnService.xcconfig:
  • Configurations/WebContentService.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • Configurations/webpushtool.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Version.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

Feb 17, 2022:

11:55 PM Changeset in webkit [290116] by Megan Gardner
  • 23 edits
    1 copy
    1 add in trunk

Draw highlights for Scroll To Text Fragment
https://bugs.webkit.org/show_bug.cgi?id=236693

Reviewed by Tim Horton.

Source/WebCore:

Implement a very basic search for text fragments (this will be properly implemented later)
and leverage our Highlight and AppHighlight infrastructures to draw the found ranges for
Scroll to Text Fragment and scroll so they are guaranteed to be in view.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::commonTeardown):
(WebCore::Document::fragmentHighlightRegister):
(WebCore::Document::updateHighlightPositions):

  • dom/Document.h:

(WebCore::Document::fragmentHighlightRegisterIfExists):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragment):

  • rendering/MarkedText.cpp:

(WebCore::MarkedText::collectForHighlights):

  • rendering/MarkedText.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::calculateHighlightColor const):

  • rendering/StyledMarkedText.cpp:

(WebCore::resolveStyleForMarkedText):

Tools:

  • TestWebKitAPI/Tests/WebCore/MarkedText.cpp:

(WebCore::operator<<):

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

Exclude new LocalStorage directory from backup on iOS
https://bugs.webkit.org/show_bug.cgi?id=236423
<rdar://problem/89060863>

Reviewed by Chris Dumez.

We've been excluding LocalStorage data from backup on iOS since r212555, and we need to make sure this applies
to new LocalStorage directory after migration (r289878).

Manually tested on iOS device.

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):

9:41 PM Changeset in webkit [290114] by Kocsen Chung
  • 1 edit in branches/safari-613.1.17.1-branch/Source/WTF/Scripts/Preferences/WebPreferences.yaml

Apply patch. rdar://problem/89126114

9:34 PM Changeset in webkit [290113] by Kocsen Chung
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.6

9:21 PM Changeset in webkit [290112] by Patrick Angle
  • 5 edits in trunk/Source/WebCore

Web Inspector: [Flexbox] Add indicators for layout context in element tooltips
https://bugs.webkit.org/show_bug.cgi?id=236738

Reviewed by Devin Rousso.

  • en.lproj/Localizable.strings:
  • inspector/InspectorOverlay.cpp:

(WebCore::rendererIsFlexboxItem):
(WebCore::rendererIsGridItem):
(WebCore::InspectorOverlay::drawElementTitle):

  • Add new Flex Item, Flex, Grid Item, and Grid bubblea to element tooltips to allow provide more

context about layout while selecting nodes on a page.

  • Move the role into its own bubble with special color (based on the previous coloring of the Role text).
  • inspector/InspectorOverlayLabel.cpp:

(WebCore::InspectorOverlayLabel::draw):

  • inspector/InspectorOverlayLabel.h:

(WebCore::InspectorOverlayLabel::Content::encode const):
(WebCore::InspectorOverlayLabel::Content::decode):
(WebCore::InspectorOverlayLabel::Content::Decoration::encode const):
(WebCore::InspectorOverlayLabel::Content::Decoration::decode):

  • Add the concept of text decoration (currently just bordered text).
  • Create an intermediate ComputedContentRun to hold the intermediate representation of content with the

computed attributes of each piece of text. This allows us to better scale with the addition of the new text
decorations and other configuration properties instead of having to create even more Vectors of things that need
to be kept in sync with each other.

8:52 PM Changeset in webkit [290111] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Enable subgrid by default.
https://bugs.webkit.org/show_bug.cgi?id=236821

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Alan Bujtas.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
8:16 PM Changeset in webkit [290110] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] scavenger should not call pthread_mach_thread_np after suspension
https://bugs.webkit.org/show_bug.cgi?id=236798
rdar://89020902

Reviewed by Mark Lam and Keith Miller.

pthread_mach_thread_np can take a lock internally. So we should not call it after suspending a thread.
This patch refactors libpas scavenger so that we call pthread_mach_thread_np before suspending a thread.
We also avoid calling pthread_self() after suspension to make suspending safer (while it does not take
a lock, it also depends on an internal implementation).

  • libpas/src/libpas/pas_thread_local_cache.c:

(scavenger_thread_suspend_data_create):
(suspend):
(resume):
(stop_allocator):
(pas_thread_local_cache_for_all):

7:55 PM Changeset in webkit [290109] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
https://bugs.webkit.org/show_bug.cgi?id=236810
<rdar://89072235>

Reviewed by Dean Jackson.

Crash data suggests that r288933 didn't fix the crash entirely.

Although the code paths I can find appear to hold the lock, there may be an
opportunity for m_scrollingCoordinator to get nulled out after we null-check it
but before the copy for the main thread dispatch.

So make a RefPtr on the stack, null-check it, and then move it into the callback.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged):
(WebCore::ThreadedScrollingTree::reportExposedUnfilledArea):
(WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange):
(WebCore::ThreadedScrollingTree::handleWheelEventPhase):
(WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices):
(WebCore::ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged):

7:46 PM Changeset in webkit [290108] by Chris Dumez
  • 19 edits in trunk/Source

Clean up / optimize call sites constructing vectors
https://bugs.webkit.org/show_bug.cgi?id=236748
<rdar://problem/89090710>

Reviewed by Darin Adler.

Follow-up to r290026 to address feedback from Darin.

Source/JavaScriptCore:

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::setNumEntrypoints):

Source/WebCore:

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::updateKeyStatuses):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::currentData):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setMathscripts):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readString):

  • css/StyleProperties.cpp:

(WebCore::DeferredStyleProperties::DeferredStyleProperties):

  • css/StyleRule.cpp:

(WebCore::DeferredStyleGroupRuleList::DeferredStyleGroupRuleList):

  • dom/ElementData.cpp:

(WebCore::UniqueElementData::UniqueElementData):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::responseHeaders const):

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyStore::convertToJSKeyStatusVector const):

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

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):

  • platform/text/LocaleICU.cpp:

(WebCore::createFallbackMonthLabels):

  • platform/text/LocaleNone.cpp:

(WebCore::LocaleNone::shortMonthLabels):

  • platform/text/cocoa/LocaleCocoa.mm:

(WebCore::LocaleCocoa::monthLabels):
(WebCore::LocaleCocoa::shortMonthLabels):
(WebCore::LocaleCocoa::standAloneMonthLabels):
(WebCore::LocaleCocoa::shortStandAloneMonthLabels):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstanceSession::updateLicense):
(WebCore::MockCDMInstanceSession::removeSessionData):

7:37 PM Changeset in webkit [290107] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[WPE] Unreviewed, fix non-unified build after r290089

  • html/PDFDocument.cpp:
7:31 PM Changeset in webkit [290106] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GTK] Debian Stable build is broken after r290026
https://bugs.webkit.org/show_bug.cgi?id=236819

Unreviewed build fix.

  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):

6:51 PM Changeset in webkit [290105] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] 'vertical-align: bottom' makes inline level boxes stick out of their parent block box
https://bugs.webkit.org/show_bug.cgi?id=236677

Reviewed by Antti Koivisto.

Source/WebCore:

'vertical-align: bottom' pushes the root inline box's baseline down as it stretches the line box downwards.
In most cases this makes the root inline box sit at the bottom of the line box e.g.

<div>

some text
<img style="vertical-align: bottom; height: 100px; width: 10px;">

</div>
forms a 100px tall block box where the "some text" sits at the bottom of the line and the tall image fills the rest of the line box all the way to the top.

Now if we add another inline level box with e.g. middle alignment.
<div>

some text
<img style="vertical-align: middle; height: 80px; width: 10px;">
<img style="vertical-align: bottom; height: 100px; width: 10px;">

</div>
We still form a 100px tall block box where the "some text" content sits at the bottom and the middle aligned box stick out of the block box by about 40px (middle alignment -> 80px/2) as it is aligned based
on the root inline box's position (which is at the very bottom of the block container).
Instead the root inline box's baseline should be pull up to make room for the middle aligned image box.

This patch fixes this incorrect behavior by removing the line box relative alignment types from the regular alignment logic and offsetting the root inline box's baseline position at a later step.
What we do here is we simply compute the root inline box's baseline position as if there were no line box relative aligned boxes present and offset the final result if such box happens to stretch the line box.
(going back to the example: without the tall, bottom aligned image box, we compute the root inline box's baseline position to be around 40px to
ensure that the 80px image box fits and later we push it down to 60px (as the 100px image box stretches the line box by 20px).)

Test: fast/inline/vertical-align-bottom.html

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

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

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.h:

(WebCore::Layout::LineBoxVerticalAligner::LineBoxHeight::value const):

LayoutTests:

  • fast/inline/vertical-align-bottom-expected.html: Added.
  • fast/inline/vertical-align-bottom.html: Added.
6:46 PM Changeset in webkit [290104] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

GeneratePreferences.rb: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated
https://bugs.webkit.org/show_bug.cgi?id=236684

Reviewed by Yusuke Suzuki.

With Ruby 3.1.0, GeneratePreferences.rb reported the following warnings.

GeneratePreferences.rb:235: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.
GeneratePreferences.rb:235: warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.

  • Scripts/GeneratePreferences.rb: Changed to use the keyword argument for ERB.new.
6:31 PM Changeset in webkit [290103] by Kate Cheney
  • 6 edits in trunk/Source

Refactor share menu item presentation
https://bugs.webkit.org/show_bug.cgi?id=236806
<rdar://problem/88858606>

Reviewed by Aditya Keerthi.

Source/WebCore:

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

Source/WebCore/PAL:

  • pal/spi/mac/NSSharingServicePickerSPI.h:

Source/WebKit:

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):
(WebKit::WebContextMenuProxyMac::getShareMenuItem):

5:56 PM Changeset in webkit [290102] by jonlee@apple.com
  • 7 edits in trunk/LayoutTests

LayoutTests/imported/w3c:
Unreviewed gardening. Update fuzzy data.

  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-003.html:

LayoutTests:
Unreviewed gardening for iOS GPU Process bots.

  • css3/masking/clip-path-border-radius-border-box-000.html: Add fuzzy data.
  • imported/blink/svg/paintorder/paintorder.svg:
5:18 PM Changeset in webkit [290101] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.3.4

Tag Safari-614.1.3.4.

5:17 PM Changeset in webkit [290100] by Kocsen Chung
  • 1 delete in tags/Safari-614.1.3.4

Delete tag.

5:10 PM Changeset in webkit [290099] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.3.4

Tag Safari-614.1.3.4.

5:03 PM Changeset in webkit [290098] by Aditya Keerthi
  • 30 edits
    6 adds in trunk

'-webkit-user-select: all' is not respected in editable views
https://bugs.webkit.org/show_bug.cgi?id=190977
rdar://34945944

Reviewed by Wenson Hsieh.

Source/WebCore:

Original patch by Tim Horton.

Currently, if the web view's editable bit is set to true, all nodes are
made editable via a short circuit. However, the content of nodes with
'-webkit-user-select: all' should not be editable. To fix, remove the
short circuit and allow '-webkit-user-select' to take precedence.

'-webkit-user-modify: read-only' and 'contenteditable=false' elements
remain editable in editable web views.

Tests: editing/editability/contenteditable-false-in-editable-view.html

editing/editability/user-modify-read-only-in-editable-view.html
editing/editability/user-select-all-in-editable-view.html

  • dom/Node.cpp:

(WebCore::computeEditabilityFromComputedStyle):
(WebCore::Node::computeEditability const):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::editabilityFromContentEditableAttr):
(WebCore::HTMLElement::matchesReadWritePseudoClass const):

  • html/HTMLElement.h:
  • page/Page.h:

Source/WebKit:

Add methods for testing the GTK port.

  • UIProcess/API/C/gtk/WKView.cpp:

(WKViewSetEditable):

  • UIProcess/API/C/gtk/WKViewPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetEditable):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Tools:

Add a UIScriptController method to make web views editable.

Remove TestRunner::setWebViewEditable as it is unused.

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):
(setWebViewEditableCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setWebViewEditable): Deleted.

  • DumpRenderTree/mac/UIScriptControllerMac.h:
  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::setWebViewEditable):

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::~TestRunner):
(TestRunner::setWebViewEditable): Deleted.

  • DumpRenderTree/win/UIScriptControllerWin.cpp:

(WTR::UIScriptControllerWin::setWebViewEditable):

  • DumpRenderTree/win/UIScriptControllerWin.h:
  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::setWebViewEditable):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):

  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::setWebViewEditable):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformResetStateToConsistentValues):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::setWebViewEditable):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.h:

LayoutTests:

Add tests to verify the behavior of -[WKWebView _setEditable:] with
'-webkit-user-select: all', '-webkit-user-modify: none', and
'contenteditable=false'. Elements with '-webkit-user-select: all' should
not be editable.

  • editing/editability/contenteditable-false-in-editable-view-expected.txt: Added.
  • editing/editability/contenteditable-false-in-editable-view.html: Added.
  • editing/editability/user-modify-read-only-in-editable-view-expected.txt: Added.
  • editing/editability/user-modify-read-only-in-editable-view.html: Added.
  • editing/editability/user-select-all-in-editable-view-expected.txt: Added.
  • editing/editability/user-select-all-in-editable-view.html: Added.
  • editing/input/ios/rtl-keyboard-input-on-focus-in-editable-page.html:

Replace the test option with the new UIHelper method.

  • resources/ui-helper.js:

(window.UIHelper.setWebViewEditable):

5:00 PM Changeset in webkit [290097] by Kocsen Chung
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.4

4:54 PM Changeset in webkit [290096] by commit-queue@webkit.org
  • 14 edits in trunk

Account for subgrid MBP when sizing
https://bugs.webkit.org/show_bug.cgi?id=236338

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/subgrid/abs-pos-002-expected.html:
  • web-platform-tests/css/css-grid/subgrid/abs-pos-003-expected.html:
  • web-platform-tests/css/css-grid/subgrid/line-names-008.html:
  • web-platform-tests/css/css-grid/subgrid/parent-repeat-auto-fit-001.html:
  • web-platform-tests/css/css-grid/subgrid/parent-repeat-auto-fit-002.html:

Source/WebCore:

Adds extra margin to subgrid items participating in the sizing of an outer
grid's tracks to account for the margin/border/padding of the intermediate
subgrid item itself.
Also contributes the subgrid's m/b/p to the edge tracks it cover, even
if no inner items occupy that track.

  • rendering/GridLayoutFunctions.cpp:

(WebCore::GridLayoutFunctions::directionFromSide):
(WebCore::GridLayoutFunctions::hasRelativeOrIntrinsicSizeForChild):
(WebCore::GridLayoutFunctions::extraMarginForSubgridChild):
(WebCore::GridLayoutFunctions::gapDifferenceForSubgridChild):
(WebCore::GridLayoutFunctions::marginLogicalSizeForChild):

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::setOverridingContainingBlockContentSizeForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForChild const):
(WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minContentForChild const):
(WebCore::addSubgridMarginBorderPadding):
(WebCore::GridTrackSizingAlgorithm::accumulateIntrinsicSizesForTrack):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::isSubgrid const):
(WebCore::RenderGrid::mayBeSubgridExcludingAbsPos const):
(WebCore::RenderGrid::gridSpanCoversRealTracks const):
(WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild):
(WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
(WebCore::RenderGrid::gridSpanForChild const):

  • rendering/RenderGrid.h:
  • rendering/style/GridPositionsResolver.cpp:

(WebCore::adjustGridPositionsFromStyle):

LayoutTests:

Account for subgrid MBP when sizing

4:53 PM Changeset in webkit [290095] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.3.2

Tag Safari-613.1.17.3.2.

4:53 PM Changeset in webkit [290094] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.2.2

Tag Safari-613.1.17.2.2.

4:52 PM Changeset in webkit [290093] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.0.5

Tag Safari-613.1.17.0.5.

4:45 PM Changeset in webkit [290092] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.1.5

Tag Safari-613.1.17.1.5.

4:42 PM Changeset in webkit [290091] by Devin Rousso
  • 8 edits in trunk/Source/WebKit

[MacCatalyst] improve support for resizing
https://bugs.webkit.org/show_bug.cgi?id=236745
<rdar://problem/86494393>

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView setFrame:]):
(-[WKWebView setBounds:]):
(-[WKWebView _acquireResizeAssertionForReason:]): Added.
Acquire a UIKit assertion whenever the frame/bounds of the WKWebView is changed that
is invalidate once the visible contect rect has been updated. UIKit can use this to know
both when WebKit is processing WKWebView resize changes and get notified once it's done.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Added.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Deleted.
Allow this to be used outside of testing code (just like -[WKWebView _doAfterNextPresentationUpdate:]).

  • Platform/spi/ios/UIKitSPI.h:
4:39 PM Changeset in webkit [290090] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.3.3

Tag Safari-614.1.3.3.

4:27 PM Changeset in webkit [290089] by J Pascoe
  • 4 edits in trunk/Source/WebCore

PDF.js viewer should work for all kinds of URLs
https://bugs.webkit.org/show_bug.cgi?id=236525
rdar://problem/88832961

Reviewed by Tim Nguyen.

This patch starts loading the pdf as an array buffer after it's recieved
by calling the PDFJS viewer's open function through the content script's
wrapper. More work is needed to potentially present the data as a
PDFDataRangeTransport.

  • Modules/pdfjs-extras/content-script.js:

(const.PDFJSContentScript.init):
(const.PDFJSContentScript.open):

  • html/PDFDocument.cpp:

(WebCore::PDFDocumentEventListener::handleEvent):
(WebCore::PDFDocument::createDocumentStructure):
(WebCore::PDFDocument::updateDuringParsing):
(WebCore::PDFDocument::finishedParsing):
(WebCore::PDFDocument::sendPDFArrayBuffer):
(WebCore::PDFDocument::injectContentScript):

  • html/PDFDocument.h:

(WebCore::PDFDocumentEventListener::handleEvent):

4:14 PM Changeset in webkit [290088] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Pass registrable domain to CoreLocation API
https://bugs.webkit.org/show_bug.cgi?id=236803
<rdar://88761413>

Reviewed by Darin Adler.

Pass registrable domain to CoreLocation API when the Geolocation API is used.
Note that the code is guarded on a CL_HAS_RADAR_88834301 define from CoreLocation
since the initWithWebsiteIdentifier is currently present in the SDK but not
functional.

  • platform/cocoa/CoreLocationGeolocationProvider.mm:

(-[WebCLLocationManager initWithWebsiteIdentifier:client:]):

4:09 PM Changeset in webkit [290087] by dino@apple.com
  • 4 edits
    2 adds in trunk

Source/ThirdParty/ANGLE:
Metal ANGLE: vertex array does not correctly observe contents of data buffers
https://bugs.webkit.org/show_bug.cgi?id=236733
<rdar://problem/88713302>
<rdar://problem/88499073>

Patch by Kyle Piddington <Kyle Piddington> on 2022-02-17
Reviewed by Dean Jackson.

Similar to previous bug (236427), we were not correctly observing changes to the
vertex buffer data. This caused us to miss rebinding vertex buffers
when data was updated without causing conversion

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm:

(rx::VertexArrayMtl::syncState):
(rx::VertexArrayMtl::setupDraw):
(rx::VertexArrayMtl::syncDirtyAttrib):

4:01 PM Changeset in webkit [290086] by Cameron McCormack
  • 16 edits in trunk/Source/WebCore

Always use ChildChange::Source::Parser when creating input element UA shadow tree contents
https://bugs.webkit.org/show_bug.cgi?id=236740

Reviewed by Dean Jackson.

When creating an input element's UA shadow tree, we currently use a
ChildChange::Source value that depends on whether the input element
itself was parser- or script-inserted. But since UA shadow trees are
not exposed to content, and we don't have any dependency on the extra
work that inserting using ChildChange::Source::API does, we can use
ChildChange::Source::Parser unconditionally.

Local testing shows this scores a 0.1% Speedometer 2 improvement.

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/BaseDateAndTimeInputType.h:
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/ColorInputType.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/FileInputType.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/InputType.cpp:

(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/InputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/RangeInputType.h:
  • html/SearchInputType.cpp:

(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/SearchInputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/TextFieldInputType.h:
3:48 PM Changeset in webkit [290085] by Simon Fraser
  • 12 edits in trunk/Source/WebKit

Move setting RemoteLayerBackingStore surfaces volatile into the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=236791

Reviewed by Tim Horton.

Setting RemoteLayerBackingStore IOSurfaces volatile has to happen in the GPU process with
DOM rendering enabled. Add overrides in RemoteLayerWithRemoteRenderingBackingStoreCollection
to handle this, sending batches of buffer identifiers to RemoteRenderingBackend. Because
surface in-use counts can cause this to fail, we return a list of identifiers that we failed
to mark volatile. A future patch will use these to maintain web process-side buffer volatile
status.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::markSurfacesVolatile):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Platform/Logging.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:

(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileAfterReachabilityChange):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatileFromTimer):
(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):

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

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectBackingStoreBufferIdentifiersToMarkVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectAllBufferIdentifiersToMarkVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::markBackingStoreVolatileAfterReachabilityChange):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::tryMarkAllBackingStoreVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::markAllBackingStoreVolatileFromTimer):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::sendMarkBuffersVolatile):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::markSurfacesVolatile):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
3:39 PM Changeset in webkit [290084] by Diego Pino Garcia
  • 4 edits in trunk/Source/WebKit

[macOS] Non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=236752

Reviewed by Darin Adler.

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

(WebKit::WebViewImpl::requestTextRecognition):
(WebKit::WebViewImpl::showSafeBrowsingWarning):
(WebKit::toWKRectEdge):
(WebKit::toRectEdges):

  • UIProcess/mac/WKSharingServicePickerDelegate.h:
3:29 PM Changeset in webkit [290083] by Kocsen Chung
  • 4 edits in branches/safari-614.1.4-branch/Source

Cherry-pick r290076. rdar://problem/89076606

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
https://bugs.webkit.org/show_bug.cgi?id=236787

Reviewed by Eric Carlson.

Source/WebCore/PAL:

Only re-declare classes and add categories for non-Apple Internal builds, or when those
definitions would be missing from system headers. The presence of the classes and their
methods are already checked at runtime, so this is a build-only change.

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:

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

3:25 PM Changeset in webkit [290082] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKitLegacy/mac

Unnecessary copy/memory allocation
https://bugs.webkit.org/show_bug.cgi?id=236749
rdar://problem/89064893

Reviewed by Dean Jackson.

  • WebView/WebHTMLView.mm:

(createShareMenuItem): Shared NSData constructed from a SharedBuffer instead

3:16 PM Changeset in webkit [290081] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Unreviewed, reverting r289974.
https://bugs.webkit.org/show_bug.cgi?id=236804

Should not have been reverted on trunk

Reverted changeset:

"Unreviewed, reverting r286874."
https://bugs.webkit.org/show_bug.cgi?id=236734
https://commits.webkit.org/r289974

3:13 PM Changeset in webkit [290080] by Noam Rosenthal
  • 42 edits
    1 copy
    7 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/paint-timing from upstream
https://bugs.webkit.org/show_bug.cgi?id=236717

Reviewed by Simon Fraser.

Resync to af3b9946eb6f0955360282176848af4be7e58304

  • web-platform-tests/paint-timing/fcp-only/buffered-flag.window.html: Added.
  • web-platform-tests/paint-timing/fcp-only/buffered-flag.window.js: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-background-size.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-canvas-context-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-gradient-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-gradient.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-iframe-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-iframe.html: Copied from LayoutTests/imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe.html.
  • web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-text-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-svg-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-text-input-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-text-input.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-video-frame-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-video-poster-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-whitespace-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-with-rtl-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html:
  • web-platform-tests/paint-timing/fcp-only/svg-in-iframe-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/svg-in-iframe.html: Added.
  • web-platform-tests/paint-timing/resources/svg.html: Added.
  • web-platform-tests/paint-timing/resources/utils.js:

(async assertFirstContentfulPaint.return.new.Promise):
(async assertFirstContentfulPaint):
(async test_fcp):

2:58 PM Changeset in webkit [290079] by Mikhail R. Gadelha
  • 8 edits in trunk

[32bit] Increase fixedExecutableMemoryPoolSize on ARM to 32MB
https://bugs.webkit.org/show_bug.cgi?id=236606

Reviewed by Mark Lam.

Increased executable memory on ARM to 32MB and make it consistent with
other 32 bit platforms (MIPS and x86). This patch also enables some
tests that now pass because of the increased memory; each test was
executed 1000 times and there was no failure.

let-const-tdz-environment-parsing-and-hash-consing-speed.js was disabled
on MIPS because the jitted code is still a bit too bigger for the 32MB,
but it can probably be enable when the EXTRA_CTI_THUNKS patch lands.

  • microbenchmarks/let-const-tdz-environment-parsing-and-hash-consing-speed.js:
  • stress/arrowfunction-lexical-bind-superproperty.js:
  • stress/proxy-revoke.js:
  • stress/regress-169445.js:
  • stress/tagged-template-object-collect.js:
2:54 PM Changeset in webkit [290078] by Kocsen Chung
  • 4 edits in branches/safari-614.1.3-branch/Source

Cherry-pick r290076. rdar://problem/89076606

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
https://bugs.webkit.org/show_bug.cgi?id=236787

Reviewed by Eric Carlson.

Source/WebCore/PAL:

Only re-declare classes and add categories for non-Apple Internal builds, or when those
definitions would be missing from system headers. The presence of the classes and their
methods are already checked at runtime, so this is a build-only change.

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:

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

2:53 PM Changeset in webkit [290077] by Truitt Savell
  • 9 edits in trunk

Include sub grid items in the track sizing algorithm of the outer grid
https://bugs.webkit.org/show_bug.cgi?id=236337

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Dean Jackson.

Source/WebCore:

resolveIntrinsicTrackSizes and findUsedFlexFraction now recurse into subgridded items
to iterate the children sa if they were directly part of the outer grid.
New constructor added to GridIterator for constructing a new iterator for the subgrid items,
which adjusts the row/column indices into the local coordinate space of the subgrid.
Adds a new method to renderGrid 'placeItems' so that we can ensure subgrid items have finished placement
when doing sizing for the outer grid.

Existing test expectations updated.

  • rendering/Grid.cpp:

(WebCore::GridIterator::createForSubgrid):

  • rendering/Grid.h:

(WebCore::GridIterator::direction const):

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild const):
(WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForChild const):
(WebCore::GridTrackSizingAlgorithm::isIntrinsicSizedGridArea const):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
(WebCore::GridTrackSizingAlgorithm::updateBaselineAlignmentContext):
(WebCore::GridTrackSizingAlgorithm::baselineOffsetForChild const):
(WebCore::IndefiniteSizeStrategy::accumulateFlexFraction const):
(WebCore::IndefiniteSizeStrategy::findUsedFlexFraction const):
(WebCore::GridTrackSizingAlgorithm::accumulateIntrinsicSizesForTrack):
(WebCore::GridTrackSizingAlgorithm::resolveIntrinsicTrackSizes):

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

(WebCore::RenderGrid::placeItems):
(WebCore::insertIntoGrid):
(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid const):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid const):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::isSubgridInParentDirection const):

  • rendering/RenderGrid.h:

LayoutTests:

Existing test expectations updated.

2:41 PM Changeset in webkit [290076] by jer.noble@apple.com
  • 4 edits in trunk/Source

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
https://bugs.webkit.org/show_bug.cgi?id=236787

Reviewed by Eric Carlson.

Source/WebCore/PAL:

Only re-declare classes and add categories for non-Apple Internal builds, or when those
definitions would be missing from system headers. The presence of the classes and their
methods are already checked at runtime, so this is a build-only change.

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:
2:39 PM Changeset in webkit [290075] by Kocsen Chung
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.3

2:20 PM Changeset in webkit [290074] by Alan Coon
  • 6 edits in branches/safari-613.1.17.0-branch

Apply patch. rdar://problem/89009881

2:19 PM Changeset in webkit [290073] by Alan Coon
  • 6 edits in branches/safari-613.1.17.1-branch

Apply patch. rdar://problem/89009881

1:52 PM Changeset in webkit [290072] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Unreviewed gardening. Add fuzzy data.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-003.html:
  • web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-001.html:

LayoutTests:

  • fast/borders/border-radius-on-html.html:
  • fast/images/exif-orientation-svg-feimage.html:
1:45 PM Changeset in webkit [290071] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

Enable CSS Motion Path by default
https://bugs.webkit.org/show_bug.cgi?id=236681

Unreviewed enable of WebKitLegacy.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:38 PM Changeset in webkit [290070] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289693. rdar://problem/88264857

Suppress style invalidation when matching :checked
https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.

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

1:32 PM Changeset in webkit [290069] by mmaxfield@apple.com
  • 3 edits
    3 adds in trunk/Source/WebGPU

[WebGPU] Add a playground example target
https://bugs.webkit.org/show_bug.cgi?id=236742

Reviewed by Dean Jackson.

It's just a little playground where you can call WebGPU functions.
It's not built by any script or included in any other targets - it's
just for the WebGPU developers to play around with WebGPU functions.

  • CommandLinePlayground/main.swift: Added.
  • Configurations/CommandLinePlayground.xcconfig: Added.
  • WebGPU.xcodeproj/project.pbxproj:
  • WebGPU/WebGPU.modulemap:
1:31 PM Changeset in webkit [290068] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebKit

Cherry-pick r290066. rdar://problem/89072361

[macOS][WP] Add required syscall to sandbox
https://bugs.webkit.org/show_bug.cgi?id=236781
<rdar://89072361>

Reviewed by Chris Dumez.

Add required syscall to the WebContent process' sandbox on macOS. This patch also adds back a set of
syscalls that were removed in https://commits.webkit.org/r286778 for current and previous versions
of macOS. These syscalls will be denied going forward.

  • WebProcess/com.apple.WebProcess.sb.in:

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

1:29 PM Changeset in webkit [290067] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

[Web Animations] Enable Composite Animations
https://bugs.webkit.org/show_bug.cgi?id=236682

Reviewed by Dean Jackson.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:27 PM Changeset in webkit [290066] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required syscall to sandbox
https://bugs.webkit.org/show_bug.cgi?id=236781
<rdar://89072361>

Reviewed by Chris Dumez.

Add required syscall to the WebContent process' sandbox on macOS. This patch also adds back a set of
syscalls that were removed in https://commits.webkit.org/r286778 for current and previous versions
of macOS. These syscalls will be denied going forward.

  • WebProcess/com.apple.WebProcess.sb.in:
1:19 PM Changeset in webkit [290065] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: [Flexbox] Enable Flexbox Inspector feature
https://bugs.webkit.org/show_bug.cgi?id=235820
<rdar://87886409>

Reviewed by Patrick Angle.

Remove the engineering setting and enable the feature by default.

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

(WI.DOMTreeElement.prototype._updateLayoutBadge):

  • UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):
(WI.LayoutDetailsSidebarPanel.prototype.layout):
(WI.LayoutDetailsSidebarPanel.prototype._refreshNodeSets):
(WI.LayoutDetailsSidebarPanel):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createEngineeringSettingsView):

1:13 PM Changeset in webkit [290064] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GTK][WPE] Make proper ANGLE context configuration for some of the expected features
https://bugs.webkit.org/show_bug.cgi?id=236664

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

Add some missing ANGLE GL context configuration options to respect
some of the expected requirements of the WebGL standard.

Fixing multiple layout tests for the ANGLE backend, we can not
modify them for the moment because this is not the default option
in the compilation.

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

(Nicosia::GCGLANGLELayer::ANGLEContext::createContext): Add a new
parameter to detect WebGL2 context and modify context configuration.
(Nicosia::GCGLANGLELayer::GCGLANGLELayer): Ditto.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h: Ditto.
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE): Enable
GL_OES_EGL_image required for the coordinated graphics texture rendering.

1:12 PM Changeset in webkit [290063] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] css/css-color/t422-rgba-onscreen-b.xht and css/css-color/t425-hsla-onscreen-b.xht are consistently failing
https://bugs.webkit.org/show_bug.cgi?id=236802

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark tests as failing.
1:01 PM Changeset in webkit [290062] by Alan Coon
  • 3 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r290054. rdar://problem/89093315

[macOS] Light appearance text fields are invisible in Increased Contrast mode
https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315

Reviewed by Wenson Hsieh.

In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.

Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.

No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::shouldPaintCustomTextField const): (WebCore::RenderThemeMac::paintTextField):

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

1:01 PM Changeset in webkit [290061] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE

Cherry-pick r290011. rdar://problem/89024095

REGRESSION (iOS 15.4b3): Catastrophic (20x) performance regression in texImage2D from mp4 video
https://bugs.webkit.org/show_bug.cgi?id=236699

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-17
Reviewed by Darin Adler.

Disable the validation for IOSurface pixel formats.
We might pass non-public formats that do not have sensible IOSurfaceGetBytesPerElementOfPlane
to verify with this logic.

Will add test in bug 236759.

Previous bugs of the same:
EAGL:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
bug 218637, r273582, 234632@main
CGL:
REGRESSION(Safari 15, BigSur): Poor video texture upload performance with MacBook M1, ANGLE OpenGL backend
bug 232235, r286960, 245183@main

  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: (rx::IOSurfaceSurfaceMtl::ValidateAttributes):

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

1:01 PM Changeset in webkit [290060] by Alan Coon
  • 18 edits in branches/safari-613.1.17.1-branch/Source

Cherry-pick r290005. rdar://problem/87596724

CrashTracer: com.apple.WebKit.WebContent at JavaScriptCore: bmalloc_allocate_impl_impl_slow
https://bugs.webkit.org/show_bug.cgi?id=236695
rdar://87596724

Reviewed by Jer Noble.

Source/WebCore:

When a new FragmentedSharedBuffer is received from the network process, it is proactively coalesced
into a SharedBuffer during each call to CachedResource::updateBuffer(). This causes a large number
of re-allocations and copies; essentially re-allocating each time the resource's buffer receives
one more chunk of data.
Instead we only flatten the data buffer once all data have been received.

Running speedtest.net with a gigabit link, we see a reduction of peak
memory use in the content process by about 40% (from 740MB to under 440MB of
physical memory, 1.7GB of memory allocation vs 535MB)

Covered by existing tests.

  • editing/ios/EditorIOS.mm: (WebCore::Editor::writeImageToPasteboard):
  • editing/mac/EditorMac.mm: (WebCore::Editor::writeImageToPasteboard):
  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::didFinishLoading):
  • loader/cache/CachedApplicationManifest.cpp: (WebCore::CachedApplicationManifest::finishLoading):
  • loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::finishLoading):
  • loader/cache/CachedFont.cpp: (WebCore::CachedFont::ensureCustomFontData):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::updateImageData):
  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::calculateIncrementalDataChunk const): (WebCore::CachedRawResource::updateBuffer): (WebCore::CachedRawResource::finishLoading):
  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.h: (WebCore::CachedResource::resourceBuffer const):
  • loader/cache/CachedScript.cpp: (WebCore::CachedScript::script):
  • loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::finishLoading):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::finishedLoading): Fly-by fix, the IPC::DataReference would reference a SharedBuffer going out of scope before it was sent over IPC.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm: (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):

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

1:01 PM Changeset in webkit [290059] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289995. rdar://problem/87462825

REGRESSION(r285885) Unable to exit Trip Details in Amtrak app
https://bugs.webkit.org/show_bug.cgi?id=236732
<rdar://87462825>

Reviewed by Simon Fraser.

Source/WebCore:

Starting from r285885 an (effective)”overflow: clip” value is set on any block box with “contain: paint”.
It is supposed to ensure we don’t paint outside of the box’s border box (note that "contain: paint", as the name implies, should only affect painting).

However this effective value trickles in to layout affecting certain layout constraints.
In case of flex, it makes the flex layout think that the box is really a clipped box and it starts flexing it accordingly producing incorrect size.
What it means is that the minimum preferred size ends up being 0px because now with "let's clip all the overflow content"
0px is indeed the smallest size a box could take that does not produce overflow (while with the initial, “overflow: visible” value,
its minimum width would likely be > 0px -provided it has some content. Also note that setting “overflow: clip” on the box in the markup
(so it becomes an explicit clip value and not just an “effective” implicit clip through “contain: paint”) produces
the exact same rendering meaning that this effective property value does affect layout).

This is a partial revert of r285885 (focusing on where the flex algorithm consults with the flex items' overflow values).

Test: fast/flexbox/incorrect-min-size-with-paint-contain.html

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::mainAxisOverflowForChild const): (WebCore::RenderFlexibleBox::crossAxisOverflowForChild const):

LayoutTests:

  • fast/flexbox/incorrect-min-size-with-paint-contain-expected.html: Added.
  • fast/flexbox/incorrect-min-size-with-paint-contain.html: Added.

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

1:01 PM Changeset in webkit [290058] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WTF

Cherry-pick r289974. rdar://problem/89008799

Unreviewed, reverting r286874.
https://bugs.webkit.org/show_bug.cgi?id=236734

Broke Apple Music pages which use the resolution media query

Reverted changeset:

"Enable the 'resolution' media query by default"
https://bugs.webkit.org/show_bug.cgi?id=78087
https://commits.webkit.org/r286874

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

1:00 PM Changeset in webkit [290057] by Alan Coon
  • 4 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r289942. rdar://problem/88827167

[Cocoa] Update audio session category before setting NowPlaying status
https://bugs.webkit.org/show_bug.cgi?id=236620
rdar://88827167

Reviewed by Jer Noble.

NowPlaying doesn't update correctly when the audio category changes from Ambient
to Playback after becoming active, so always set the category first.

Tested manually.

  • platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::clientWillBeginPlayback): Set "preparingToPlay" before calling sessionWillBeginPlayback so updateSessionState can tell that playback is about to begin.
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::updateSessionState): Consider a session to potentially have audio if it is preparing to play.

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

12:53 PM Changeset in webkit [290056] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613.1.17.2-branch

Cherry-pick r289693. rdar://problem/88264857

Suppress style invalidation when matching :checked
https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.

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

12:47 PM Changeset in webkit [290055] by Alan Coon
  • 9 edits in branches/safari-613.1.17.2-branch/Source

Versioning.

WebKit-7613.1.17.2.2

12:41 PM Changeset in webkit [290054] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[macOS] Light appearance text fields are invisible in Increased Contrast mode
https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315

Reviewed by Wenson Hsieh.

In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.

Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.

No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::shouldPaintCustomTextField const):
(WebCore::RenderThemeMac::paintTextField):

12:33 PM Changeset in webkit [290053] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r290052.
https://bugs.webkit.org/show_bug.cgi?id=236799

Broke the Mac Catalina build

Reverted changeset:

"[macOS] Light appearance text fields are invisible in
Increased Contrast mode"
https://bugs.webkit.org/show_bug.cgi?id=236753
https://commits.webkit.org/r290052

12:27 PM Changeset in webkit [290052] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[macOS] Light appearance text fields are invisible in Increased Contrast mode
https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315

Reviewed by Wenson Hsieh.

In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.

Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.

No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::shouldPaintCustomTextField const):
(WebCore::RenderThemeMac::paintTextField):

12:27 PM Changeset in webkit [290051] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

Enable CSS Motion Path by default
https://bugs.webkit.org/show_bug.cgi?id=236681

Reviewed by Dean Jackson.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
12:21 PM Changeset in webkit [290050] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r290046.
https://bugs.webkit.org/show_bug.cgi?id=236797

Broke the macOS build

Reverted changeset:

"[macOS] Light appearance text fields are invisible in
Increased Contrast mode"
https://bugs.webkit.org/show_bug.cgi?id=236753
https://commits.webkit.org/r290046

12:19 PM Changeset in webkit [290049] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613.1.17.3-branch

Cherry-pick r289693. rdar://problem/88264857

Suppress style invalidation when matching :checked
https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.

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

12:16 PM Changeset in webkit [290048] by Alan Coon
  • 9 edits in branches/safari-613.1.17.3-branch/Source

Versioning.

WebKit-7613.1.17.3.2

12:05 PM Changeset in webkit [290047] by Patrick Angle
  • 3 edits in trunk/Source/WebCore

Web Inspector: [Flexbox] Gaps and free space do not have pattern fills when navigating to a page with Web Inspector already open
https://bugs.webkit.org/show_bug.cgi?id=236741

Reviewed by Devin Rousso.

Because calls to getDocument actually resets the InspectorDOMAgent, we don't want to clear cached layout
information inside reset. The cached layout information is in a WeakHashMap, we aren't going to end up keeping
stale references around anyways, and the under most circumstances the map will clean itself up as it is used.
We should, however go ahead and clear the cached layout information when we are forcing a re-layout to collect
the information again for a new document.

Additionally, if a new document is set, we want to trigger a layout just like we did for a fresh
InspectorDOMAgent.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::reset):
(WebCore::InspectorDOMAgent::setDocument):
(WebCore::InspectorDOMAgent::relayoutDocument):

  • inspector/agents/InspectorDOMAgent.h:
12:04 PM Changeset in webkit [290046] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[macOS] Light appearance text fields are invisible in Increased Contrast mode
https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315

Reviewed by Wenson Hsieh.

In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.

Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.

No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::shouldPaintCustomTextField const):
(WebCore::RenderThemeMac::paintTextField):

12:02 PM Changeset in webkit [290045] by Alexander Mikhaylenko
  • 5 edits in trunk/Source/WebCore

[GTK] REGRESSION: Cumulative velocity for scrolling doesn't work
https://bugs.webkit.org/show_bug.cgi?id=235507

Reviewed by Chris Lord.

ScrollAnimationKinetic can accumulate velocity from the previous scroll
animation. This relies on reusing the same animation every time, so it can
pick up the previous scroll data.

However, ScrollingEffectsController now creates and destroys ScrollAnimationKinetic
every time now, we can't rely on that.

Instead, save and propagate the data manually, same as the macOS port.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::startAnimatedScrollWithInitialVelocity):
(WebCore::ScrollAnimationKinetic::accumulateVelocityFromPreviousGesture):

  • platform/ScrollAnimationKinetic.h:
  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::processWheelEventForKineticScrolling):

  • platform/ScrollingEffectsController.h:
11:59 AM Changeset in webkit [290044] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289693. rdar://problem/88264857

Suppress style invalidation when matching :checked
https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.

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

11:51 AM Changeset in webkit [290043] by Alan Coon
  • 2 edits in branches/safari-613.1.17.0-branch/Source/ThirdParty/ANGLE

Cherry-pick r290011. rdar://problem/89024095

REGRESSION (iOS 15.4b3): Catastrophic (20x) performance regression in texImage2D from mp4 video
https://bugs.webkit.org/show_bug.cgi?id=236699

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-17
Reviewed by Darin Adler.

Disable the validation for IOSurface pixel formats.
We might pass non-public formats that do not have sensible IOSurfaceGetBytesPerElementOfPlane
to verify with this logic.

Will add test in bug 236759.

Previous bugs of the same:
EAGL:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
bug 218637, r273582, 234632@main
CGL:
REGRESSION(Safari 15, BigSur): Poor video texture upload performance with MacBook M1, ANGLE OpenGL backend
bug 232235, r286960, 245183@main

  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: (rx::IOSurfaceSurfaceMtl::ValidateAttributes):

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

11:51 AM Changeset in webkit [290042] by Alan Coon
  • 18 edits in branches/safari-613.1.17.0-branch/Source

Cherry-pick r290005. rdar://problem/87596724

CrashTracer: com.apple.WebKit.WebContent at JavaScriptCore: bmalloc_allocate_impl_impl_slow
https://bugs.webkit.org/show_bug.cgi?id=236695
rdar://87596724

Reviewed by Jer Noble.

Source/WebCore:

When a new FragmentedSharedBuffer is received from the network process, it is proactively coalesced
into a SharedBuffer during each call to CachedResource::updateBuffer(). This causes a large number
of re-allocations and copies; essentially re-allocating each time the resource's buffer receives
one more chunk of data.
Instead we only flatten the data buffer once all data have been received.

Running speedtest.net with a gigabit link, we see a reduction of peak
memory use in the content process by about 40% (from 740MB to under 440MB of
physical memory, 1.7GB of memory allocation vs 535MB)

Covered by existing tests.

  • editing/ios/EditorIOS.mm: (WebCore::Editor::writeImageToPasteboard):
  • editing/mac/EditorMac.mm: (WebCore::Editor::writeImageToPasteboard):
  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::didFinishLoading):
  • loader/cache/CachedApplicationManifest.cpp: (WebCore::CachedApplicationManifest::finishLoading):
  • loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::finishLoading):
  • loader/cache/CachedFont.cpp: (WebCore::CachedFont::ensureCustomFontData):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::updateImageData):
  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::calculateIncrementalDataChunk const): (WebCore::CachedRawResource::updateBuffer): (WebCore::CachedRawResource::finishLoading):
  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.h: (WebCore::CachedResource::resourceBuffer const):
  • loader/cache/CachedScript.cpp: (WebCore::CachedScript::script):
  • loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::finishLoading):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::finishedLoading): Fly-by fix, the IPC::DataReference would reference a SharedBuffer going out of scope before it was sent over IPC.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm: (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):

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

11:51 AM Changeset in webkit [290041] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289995. rdar://problem/87462825

REGRESSION(r285885) Unable to exit Trip Details in Amtrak app
https://bugs.webkit.org/show_bug.cgi?id=236732
<rdar://87462825>

Reviewed by Simon Fraser.

Source/WebCore:

Starting from r285885 an (effective)”overflow: clip” value is set on any block box with “contain: paint”.
It is supposed to ensure we don’t paint outside of the box’s border box (note that "contain: paint", as the name implies, should only affect painting).

However this effective value trickles in to layout affecting certain layout constraints.
In case of flex, it makes the flex layout think that the box is really a clipped box and it starts flexing it accordingly producing incorrect size.
What it means is that the minimum preferred size ends up being 0px because now with "let's clip all the overflow content"
0px is indeed the smallest size a box could take that does not produce overflow (while with the initial, “overflow: visible” value,
its minimum width would likely be > 0px -provided it has some content. Also note that setting “overflow: clip” on the box in the markup
(so it becomes an explicit clip value and not just an “effective” implicit clip through “contain: paint”) produces
the exact same rendering meaning that this effective property value does affect layout).

This is a partial revert of r285885 (focusing on where the flex algorithm consults with the flex items' overflow values).

Test: fast/flexbox/incorrect-min-size-with-paint-contain.html

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::mainAxisOverflowForChild const): (WebCore::RenderFlexibleBox::crossAxisOverflowForChild const):

LayoutTests:

  • fast/flexbox/incorrect-min-size-with-paint-contain-expected.html: Added.
  • fast/flexbox/incorrect-min-size-with-paint-contain.html: Added.

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

11:51 AM Changeset in webkit [290040] by Alan Coon
  • 2 edits in branches/safari-613.1.17.0-branch/Source/WTF

Cherry-pick r289974. rdar://problem/89008799

Unreviewed, reverting r286874.
https://bugs.webkit.org/show_bug.cgi?id=236734

Broke Apple Music pages which use the resolution media query

Reverted changeset:

"Enable the 'resolution' media query by default"
https://bugs.webkit.org/show_bug.cgi?id=78087
https://commits.webkit.org/r286874

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

11:51 AM Changeset in webkit [290039] by Alan Coon
  • 4 edits in branches/safari-613.1.17.0-branch/Source/WebCore

Cherry-pick r289942. rdar://problem/88827167

[Cocoa] Update audio session category before setting NowPlaying status
https://bugs.webkit.org/show_bug.cgi?id=236620
rdar://88827167

Reviewed by Jer Noble.

NowPlaying doesn't update correctly when the audio category changes from Ambient
to Playback after becoming active, so always set the category first.

Tested manually.

  • platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::clientWillBeginPlayback): Set "preparingToPlay" before calling sessionWillBeginPlayback so updateSessionState can tell that playback is about to begin.
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::updateSessionState): Consider a session to potentially have audio if it is preparing to play.

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

11:38 AM Changeset in webkit [290038] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[css-grid] Incorrectly stretched SVGs without an aspect-ratio.
https://bugs.webkit.org/show_bug.cgi?id=216145

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-17

11:38 AM Changeset in webkit [290037] by Antti Koivisto
  • 8 edits in trunk

[CSS Container Queries] Support full range notation in size queries
https://bugs.webkit.org/show_bug.cgi?id=236771

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:

Source/WebCore:

Parse and evaluate notations like (100px < width) and (100px < width < 200px).

  • css/ContainerQuery.h:

There are now optional left and right comparisons.

  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeSizeQuery):
(WebCore::ContainerQueryParser::consumeSizeFeature):
(WebCore::ContainerQueryParser::consumePlainSizeFeature):

Evaluate the plain (foo: value) notation.

(WebCore::ContainerQueryParser::consumeRangeSizeFeature):

Evaluate range notation.

(WebCore::ContainerQueryParser::consumeValue):

  • css/ContainerQueryParser.h:
  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

Evaluate both comparisons if they exist.

  • style/ContainerQueryEvaluator.h:

(WebCore::Style::toEvaluationResult):
(WebCore::Style::operator|):

11:05 AM Changeset in webkit [290036] by Alan Coon
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.5

11:05 AM Changeset in webkit [290035] by Alan Coon
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.5

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

ASSERTION FAILED: Thread::current().uid() == threadAssertion.m_uid for RemoteVideoFrameObjectHeap
https://bugs.webkit.org/show_bug.cgi?id=236786

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-17
Reviewed by Antti Koivisto.

The object is ok to destroy from any thread.
Reset the thread assertion.

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::~RemoteVideoFrameObjectHeap):

10:19 AM Changeset in webkit [290033] by sihui_liu@apple.com
  • 8 edits in trunk

Ensure NetworkStorageManager::moveData performs move operation based on data types
https://bugs.webkit.org/show_bug.cgi?id=236727
rdar://89009881

Reviewed by Chris Dumez.

Source/WebKit:

In r286936, we introduced NetworkStorageManager::moveData to move data from one origin to another. However, the
function does not take dataTypes parameter as NetworkProcess::renameOriginInWebsiteData does, and
NetworkStorageManager would try to move every storage type it manages. This has caused an unexpected failure, as
FileSystem storage needs special handling before data can be moved. To address the regression, let's revert
the behavior change by making sure NetworkStorageManager checks the types value, and only performs move
operation for IndexedDB and LocalStorage data.

Updated existing API test to ensure only expected data types are moved.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::renameOriginInWebsiteData):

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::moveData):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::moveData):
(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::StorageBucket::deleteIDBStorageData):
(WebKit::OriginStorageManager::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::resolvedIDBStoragePath):
(WebKit::OriginStorageManager::moveData):

  • NetworkProcess/storage/OriginStorageManager.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

9:57 AM Changeset in webkit [290032] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Fix abs-pos breadth issue when using 'auto'
https://bugs.webkit.org/show_bug.cgi?id=236626

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Adds new test that uses RTL and abs-pos items over the padding area, with
padding defined in physical coords.

  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-025-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-025.html: Added.

Source/WebCore:

The value returned when resolving an 'auto' start/end is in logical coords, but the line
positions are in a hybrid space using logical column sizes, but physical border/padding offset.
This adjusts for this, so that we can compute the breadth correctly.

Adds new test that uses RTL and abs-pos items over the padding area, with
padding defined in physical coords.

Test: imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-items-025.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild):

9:56 AM Changeset in webkit [290031] by commit-queue@webkit.org
  • 35 edits
    2 adds
    2 deletes in trunk/Source

MediaPlayer::videoFrameForCurrentTime() should return VideoFrame
https://bugs.webkit.org/show_bug.cgi?id=236701

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-17
Reviewed by Eric Carlson.
Source/WebCore:

Rename CV specific parts of MediaSampleVideoFrame to VideoFrameCV.
Use VideoFrame base class instead of MediaSampleVideoFrame.
VideoFrame supports multiple polymorphic subclasses. One such
is RemoteVideoFrameProxy, which will be used in the future to
return remote proxy objects in these locations.

This patch is only a rename. It concerns only the in-process
usage of video frames via in-process VideoFrameCV.

No new tests, refactor.

  • Headers.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaSample.h:

(WebCore::MediaSample::videoPixelFormat const):

  • platform/VideoFrame.cpp:

(WebCore::VideoFrame::VideoFrame):
(WebCore::VideoFrame::presentationTime const):
(WebCore::VideoFrame::videoRotation const):
(WebCore::VideoFrame::videoMirrored const):
(WebCore::VideoFrame::platformSample const):

  • platform/VideoFrame.h:

(WebCore::VideoFrame::isRemoteProxy const):
This leaks "remote" concept to WebCore level. Hopefully
in the future this can be solved in another way.
(WebCore::VideoFrame::isCV const):
(isType):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::videoFrameForCurrentTime):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::videoFrameForCurrentTime):

  • platform/graphics/MediaSampleVideoFrame.h: Removed.
  • platform/graphics/avfoundation/MediaSampleVideoFrameAVF.mm: Removed.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::videoFrameForCurrentTime):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoFrameForCurrentTime):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoFrameForCurrentTime):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::MediaSampleAVFObjC::videoFrame const):

  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):

  • platform/graphics/cv/GraphicsContextGLCV.h:
  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:

(WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture):

  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:
  • platform/graphics/cv/VideoFrameCV.h: Added.

(WebCore::VideoFrameCV::pixelBuffer const):
(WebCore::VideoFrameCV::encode const):
(WebCore::VideoFrameCV::decode):
(isType):

  • platform/graphics/cv/VideoFrameCV.mm: Added.

(WebCore::VideoFrameCV::create):
(WebCore::VideoFrameCV::VideoFrameCV):
(WebCore::VideoFrameCV::presentationSize const):
(WebCore::VideoFrameCV::videoPixelFormat const):
(WebCore::VideoFrameCV::orientation const):

Source/WebKit:

Use added VideoFrameCV instead of removed MediaSampleVideoFrame.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::invalidate):
(WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<RefPtr<T>>::encode):
(IPC::ArgumentCoder<RefPtr<T>>::decode):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::RemoteVideoFrameProxy):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:

(isType):

9:45 AM Changeset in webkit [290030] by Simon Fraser
  • 16 edits
    1 copy in trunk/Source/WebKit

Add support for setting RemoteLayerBackingStore buffers non-volatile in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=236731

Reviewed by Tim Horton.

Calls to setVolatile() and isInUse() on IOSurface need to happen in the GPU Process,
so when RemoteLayerBackingStore swaps buffers in display(), and makes the front buffer
non-volatile, those things need to go via RemoteRenderingBackend.

So plumb markSurfaceNonVolatile() and swapToValidFrontBuffer() through RemoteLayerBackingStoreCollection
and RemoteRenderingBackend, both as sync messages.

In both cases, if the surface was purged (i.e. setNonVolatile returned Empty) we need
to trigger a setNeedsDisplay(), wired through RemoteLayerBackingStore::didMakeFrontBufferNonVolatile()
so there's only one call site.

We also need to always send the ImageBufferBackendHandle back from the GPU Process for
the front buffer, since a future patch will clear these out in the web process when
making buffers volatile.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::handleFromBuffer):
(WebKit::RemoteRenderingBackend::markSurfaceNonVolatile):
(WebKit::RemoteRenderingBackend::swapToValidFrontBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::swapBuffers):
(WebKit::RemoteLayerBackingStore::supportsPartialRepaint const):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::setBufferVolatile):
(WebKit::RemoteLayerBackingStore::setBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::willMakeBufferVolatile):
(WebKit::RemoteLayerBackingStore::didMakeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::setBufferVolatility):
(WebKit::RemoteLayerBackingStore::bufferForType const):
(WebKit::RemoteLayerBackingStore::supportsPartialRepaint): Deleted.

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

(WebKit::RemoteLayerBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStoreCollection::swapToValidFrontBuffer):

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

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::swapToValidFrontBuffer):

  • WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h:

(WebKit::ImageBufferBackendHandleSharing::setBackendHandle):
(WebKit::ImageBufferBackendHandleSharing::clearBackendHandle):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::getPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::putPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:

(WebKit::ImageBufferRemoteIOSurfaceBackend::setBackendHandle):
(WebKit::ImageBufferRemoteIOSurfaceBackend::clearBackendHandle):

  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
9:42 AM Changeset in webkit [290029] by Truitt Savell
  • 1 edit
    1 delete in trunk/LayoutTests

Remove the Catalina specific expectation added in r289834
https://bugs.webkit.org/show_bug.cgi?id=236619

Unreviewed test gardening.

  • platform/mac-catalina/fonts/monospace-expected.txt: Removed.
9:38 AM Changeset in webkit [290028] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed GPU Process bot gardening.

  • gpu-process/TestExpectations:
9:18 AM Changeset in webkit [290027] by Adrian Perez de Castro
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[GTK] Build broken with ENABLE_X11_TARGET=OFF and no X11 headers present
https://bugs.webkit.org/show_bug.cgi?id=236770

Reviewed by Alejandro G. Castro.

  • PlatformGTK.cmake: The USE_SYSTEM_EGL definition detaches the type definitions

from the EGL headers generic and prevents ANGLE's headers from including system X11
or Wayland headers from the system, so apply it always independently of whether the
USE_ANGLE_{EGL,WEBGL} options are enabled. While at it, fix a missing dollar sign in
the expansion of the ${GBM_INCLUDE_DIR} variable.

9:17 AM Changeset in webkit [290026] by Chris Dumez
  • 155 edits in trunk/Source

Clean up / optimize call sites constructing vectors
https://bugs.webkit.org/show_bug.cgi?id=236748

Reviewed by Dean Jackson.

Clean up / optimize call sites constructing vectors:

  • Use Vector::map() / WTF::map() where appropriate

Source/JavaScriptCore:

  • Replace Vector::reserveCapacity() with Vector::reserveInitialCapacity() where appropriate
  • Replace Vector::append() with Vector::uncheckedAppend() where appropriate
  • Leverage the fact that Vector<Ref<Foo>> is now copyable (Because Ref<> now has a copy constructor)
  • Call crossThreadCopy() to isolate-copy a Vector() without iterating.
  • Leverage Vector constructor that takes in an intialization list in more cases
  • Leverage Vector::from() in more cases to simplify vector construction in some case.
  • Drop unnecessary calls to Vector::reserve*Capacity() before calling Vector::append(T*, size_t) since the append() implementation already does this for us.
  • Leverage copyToVector() and copyToVectorOf<> in more cases
  • Call shrinkToFit() in some cases where we reserve capacity and then append() but may not append() as much as we reserved.
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::setNumEntrypoints):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::emitDirectBinding):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::setLiveValues):

  • dfg/DFGLivenessAnalysisPhase.cpp:
  • dfg/DFGScoreBoard.h:

(JSC::DFG::ScoreBoard::ScoreBoard):

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::parseBreakpointOptions):

  • inspector/remote/socket/RemoteInspectorMessageParser.cpp:

(Inspector::MessageParser::pushReceivedData):

  • parser/VariableEnvironment.cpp:

(JSC::CompactTDZEnvironment::CompactTDZEnvironment):

  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::Worklist):

Source/WebCore:

  • Replace Vector::reserveCapacity() with Vector::reserveInitialCapacity() where appropriate
  • Replace Vector::append() with Vector::uncheckedAppend() where appropriate
  • Leverage the fact that Vector<Ref<Foo>> is now copyable (Because Ref<> now has a copy constructor)
  • Call crossThreadCopy() to isolate-copy a Vector() without iterating.
  • Leverage Vector constructor that takes in an intialization list in more cases
  • Leverage Vector::from() in more cases to simplify vector construction in some case.
  • Drop unnecessary calls to Vector::reserve*Capacity() before calling Vector::append(T*, size_t) since the append() implementation already does this for us.
  • Leverage copyToVector() and copyToVectorOf<> in more cases
  • Call shrinkToFit() in some cases where we reserve capacity and then append() but may not append() as much as we reserved.
  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::read):
(WebCore::Clipboard::ItemWriter::didSetAllData):

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::updateKeyStatuses):

  • Modules/entriesapi/FileSystemEntriesCallback.cpp:

(WebCore::FileSystemEntriesCallback::scheduleCallback):
(WebCore::copyVector): Deleted.

  • Modules/entriesapi/HTMLInputElementEntriesAPI.cpp:

(WebCore::HTMLInputElementEntriesAPI::webkitEntries):

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::stop):

  • Modules/indexeddb/IDBGetAllResult.cpp:

(WebCore::IDBGetAllResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::isolatedCopy): Deleted.

  • Modules/indexeddb/IDBKeyPath.h:

(WebCore::isolatedCopy): Deleted.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::abortInProgressOperations):

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::removeItemsMatchingCurrentThread):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::deleteAllIndexes):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::currentData):

  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:

(WebCore::IDBDatabaseInfo::objectStoreNames const):

  • Modules/indexeddb/shared/IDBIndexInfo.cpp:

(WebCore::IDBIndexInfo::isolatedCopy const):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::isolatedCopy const):
(WebCore::IDBObjectStoreInfo::indexNames const):

  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:

(WebCore::IDBTransactionInfo::isolatedCopy):

  • Modules/indexeddb/shared/IndexKey.cpp:

(WebCore::IndexKey::isolatedCopy const):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::clone):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::capabilityStringVector):

  • Modules/mediastream/MediaTrackConstraints.cpp:

(WebCore::convertAdvancedToInternalForm):

  • Modules/mediastream/SFrameUtils.cpp:

(WebCore::toRbsp):

  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::availabilityChanged):

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::didReceiveResult):

  • Modules/webauthn/cbor/CBORValue.cpp:

(cbor::CBORValue::CBORValue):

  • Modules/webauthn/fido/AuthenticatorGetInfoResponse.cpp:

(fido::toArrayValue):

  • Modules/webauthn/fido/DeviceRequestConverter.cpp:

(fido::convertParametersToCBOR):

  • Modules/webauthn/fido/Pin.cpp:

(fido::pin::encodeRawPublicKey):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::databaseNames):
(WebCore::isolatedCopy): Deleted.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setMathscripts):
(WebCore::AXIsolatedObject::setObjectVectorProperty):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::objectsForIDs const):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readString):
(WebCore::SerializedScriptValue::blobURLs const):

  • crypto/mac/CryptoAlgorithmECDSAMac.cpp:

(WebCore::signECDSA):
(WebCore::verifyECDSA):

  • crypto/mac/CryptoKeyECMac.cpp:

(WebCore::CryptoKeyEC::platformExportSpki const):
(WebCore::CryptoKeyEC::platformExportPkcs8 const):

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::exportSpki const):
(WebCore::CryptoKeyRSA::exportPkcs8 const):

  • css/CSSBasicShapes.cpp:

(WebCore::CSSBasicShapePolygon::cssText const):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::copyPropertiesInSet):
(WebCore::ComputedStyleExtractor::copyProperties):

  • css/CSSFontFace.cpp:

(WebCore::iterateClients):

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):
(WebCore::CSSFontFaceSet::fontFace):

  • css/CSSKeyframesRule.cpp:

(WebCore::StyleRuleKeyframes::StyleRuleKeyframes):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::copyPropertiesInSet const):
(WebCore::DeferredStyleProperties::DeferredStyleProperties):

  • css/StyleRule.cpp:

(WebCore::DeferredStyleGroupRuleList::DeferredStyleGroupRuleList):
(WebCore::StyleRuleGroup::StyleRuleGroup):

  • css/calc/CSSCalcOperationNode.h:
  • css/calc/CSSCalcValue.cpp:

(WebCore::createCSS):

  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BorderPainter::clipBorderSidePolygon const):
(WebCore::Display::BorderPainter::drawLineForBoxSide const):

  • dom/DOMRectList.cpp:

(WebCore::DOMRectList::DOMRectList):

  • dom/Document.cpp:

(WebCore::Document::updateElementsAffectedByMediaQueries):
(WebCore::Document::didAssociateFormControlsTimerFired):

  • dom/ElementData.cpp:

(WebCore::UniqueElementData::UniqueElementData):

  • dom/EventListenerMap.cpp:

(WebCore::EventListenerMap::eventTypes const):

  • dom/TreeScopeOrderedMap.cpp:

(WebCore::TreeScopeOrderedMap::keys const):

  • editing/CompositeEditCommand.cpp:

(WebCore::copyMarkers):

  • editing/Editor.cpp:

(WebCore::editableTextListsAtPositionInDescendingOrder):

  • fileapi/FileList.cpp:

(WebCore::FileList::paths const):

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::HistoryItem):
(WebCore::m_formData):
(WebCore::m_identifier):

  • html/FileInputType.cpp:

(WebCore::FileInputType::setFiles):
(WebCore::FileInputType::filesChosen):

  • html/LinkIconCollector.cpp:

(WebCore::LinkIconCollector::iconsOfTypes):

  • html/URLSearchParams.cpp:

(WebCore::URLSearchParams::getAll const):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

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

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startIconLoading):
(WebCore::DocumentLoader::setActiveContentRuleListActionPatterns):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::getNewCues):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::preferredAudioCharacteristics const):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::create):

  • page/Page.cpp:

(WebCore::Page::replaceRangesWithText):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::responseHeaders const):

  • page/csp/ContentSecurityPolicyResponseHeaders.cpp:

(WebCore::ContentSecurityPolicyResponseHeaders::isolatedCopy const):

  • page/mac/ImageOverlayControllerMac.mm:

(WebCore::ImageOverlayController::updateDataDetectorHighlights):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::buildSelectionHighlight):
(WebCore::ServicesOverlayController::handleClick):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::childrenOfNode const):

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::convertOffsetInfo):

  • platform/Length.cpp:

(WebCore::makeCalculated):

  • platform/animation/AnimationList.cpp:

(WebCore::AnimationList::AnimationList):

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::audioMediaSelectionOptions const):

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyStore::convertToJSKeyStatusVector const):

  • platform/graphics/FloatPolygon.cpp:

(WebCore::FloatPolygon::overlappingEdges const):

  • platform/graphics/FloatQuad.cpp:

(WebCore::boundingBoxes):

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

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::removeTiles):
(WebCore::TileGrid::removeAllTiles):

  • platform/graphics/ca/TileGrid.h:
  • platform/graphics/cg/ImageUtilitiesCG.cpp:

(WebCore::findImagesForTranscoding):
(WebCore::transcodeImages):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::findClosestFont):
(WebCore::FontCache::getFontSelectionCapabilitiesInFamily):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance):

  • platform/network/CacheValidation.cpp:

(WebCore::collectVaryingRequestHeadersInternal):

  • platform/network/FormData.cpp:

(WebCore::FormData::isolatedCopy const):

  • platform/network/SocketStreamHandleImpl.cpp:

(WebCore::SocketStreamHandleImpl::platformSendHandshake):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:
  • platform/text/LocaleICU.cpp:

(WebCore::LocaleICU::createLabelVector):
(WebCore::createFallbackMonthLabels):
(WebCore::createFallbackAMPMLabels):

  • platform/text/LocaleNone.cpp:

(WebCore::LocaleNone::monthLabels):
(WebCore::LocaleNone::shortMonthLabels):
(WebCore::LocaleNone::timeAMPMLabels):

  • platform/text/cocoa/LocaleCocoa.mm:

(WebCore::LocaleCocoa::monthLabels):
(WebCore::LocaleCocoa::shortMonthLabels):
(WebCore::LocaleCocoa::standAloneMonthLabels):
(WebCore::LocaleCocoa::shortStandAloneMonthLabels):
(WebCore::LocaleCocoa::timeAMPMLabels):

  • plugins/DOMMimeTypeArray.cpp:

(WebCore::DOMMimeTypeArray::supportedPropertyNames const):
(WebCore::DOMMimeTypeArray::supportedPropertyNames): Deleted.

  • plugins/DOMMimeTypeArray.h:
  • plugins/DOMPlugin.cpp:

(WebCore::makeMimeTypes):
(WebCore::DOMPlugin::supportedPropertyNames const):
(WebCore::DOMPlugin::supportedPropertyNames): Deleted.

  • plugins/DOMPlugin.h:
  • plugins/DOMPluginArray.cpp:

(WebCore::DOMPluginArray::supportedPropertyNames const):
(WebCore::DOMPluginArray::supportedPropertyNames): Deleted.

  • plugins/DOMPluginArray.h:
  • rendering/LayerAncestorClippingStack.cpp:

(WebCore::LayerAncestorClippingStack::LayerAncestorClippingStack):
(WebCore::LayerAncestorClippingStack::compositedClipData const):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::clipBorderSidePolygon):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide const):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::trackSizesForComputedStyle const):

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::collectClasses):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTo100PercentMinusLength):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstanceSession::updateLicense):
(WebCore::MockCDMInstanceSession::removeSessionData):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::getRegistrations):

Source/WebKit:

  • Replace Vector::reserveCapacity() with Vector::reserveInitialCapacity() where appropriate
  • Replace Vector::append() with Vector::uncheckedAppend() where appropriate
  • Leverage the fact that Vector<Ref<Foo>> is now copyable (Because Ref<> now has a copy constructor)
  • Call crossThreadCopy() to isolate-copy a Vector() without iterating.
  • Leverage Vector constructor that takes in an intialization list in more cases
  • Leverage Vector::from() in more cases to simplify vector construction in some case.
  • Drop unnecessary calls to Vector::reserve*Capacity() before calling Vector::append(T*, size_t) since the append() implementation already does this for us.
  • Leverage copyToVector() and copyToVectorOf<> in more cases
  • Call shrinkToFit() in some cases where we reserve capacity and then append() but may not append() as much as we reserved.
  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::originDetailsCrossThreadCopy):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::cacheInfos):

  • Shared/API/APIArray.cpp:

(API::Array::createStringArray):
(API::Array::copy):

  • Shared/API/APIDictionary.cpp:

(API::Dictionary::keys const):

  • Shared/UserData.cpp:

(WebKit::transformGraph):

  • Shared/WebContextMenuItem.cpp:

(WebKit::WebContextMenuItem::create):
(WebKit::WebContextMenuItem::submenuItemsAsAPIArray const):

  • Shared/WebContextMenuItemData.cpp:

(WebKit::kitItems):
(WebKit::coreItems):

  • UIProcess/API/APIWebAuthenticationPanel.cpp:

(API::WebAuthenticationPanel::WebAuthenticationPanel):

  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):
(API::WebsitePolicies::data):

  • UIProcess/API/C/WKPage.cpp:

(API::toAPIObjectVector):
(WKPageSetPageContextMenuClient):
(WKPageSetPageFindMatchesClient):
(WKPageSetPageLoaderClient):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::forEachSession):

  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::snapshotGamepads):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::allNetworkProcesses):
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::providerDidRemoveNotificationPolicies):

  • UIProcess/Notifications/WebNotificationProvider.cpp:

(WebKit::WebNotificationProvider::clearNotifications):

  • UIProcess/StatisticsRequest.cpp:

(WebKit::StatisticsRequest::completedRequest):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::selectAssertionResponse const):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::clear):
(WebKit::WebBackForwardList::restoreFromState):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPageProxy::speechSynthesisVoiceList):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::parametersFromEachWebsiteDataStore):

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient replaceMatches:withString:inSelectionOnly:resultCollector:]):

  • WebProcess/GPU/media/RemoteRemoteCommandListener.cpp:

(WebKit::RemoteRemoteCommandListener::updateSupportedCommands):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(contextMenuItems):
(WKBundlePageCopyOriginsWithApplicationCache):

  • WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:

(WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems):

  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:

(WebKit::InjectedBundlePageFormClient::didAssociateFormControls):

  • WebProcess/Network/WebSocketStream.cpp:

(WebKit::WebSocketStream::networkProcessCrashed):

  • WebProcess/Network/webrtc/WebRTCResolver.cpp:

(WebKit::WebRTCResolver::setResolvedAddress):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::takeStatistics):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::replaceMatches):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::toKeyframeValueVector):
(WebKit::PlatformCAAnimationRemote::setValues):
(WebKit::PlatformCAAnimationRemote::setTimingFunctions):

  • WebProcess/WebPage/ViewGestureGeometryCollector.cpp:

(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::trackedRepaintRects):
(WebKit::dumpHistoryItem):

Source/WTF:

  • Replace Vector::reserveCapacity() with Vector::reserveInitialCapacity() where appropriate
  • Replace Vector::append() with Vector::uncheckedAppend() where appropriate
  • Leverage the fact that Vector<Ref<Foo>> is now copyable (Because Ref<> now has a copy constructor)
  • Call crossThreadCopy() to isolate-copy a Vector() without iterating.
  • Leverage Vector constructor that takes in an intialization list in more cases
  • Leverage Vector::from() in more cases to simplify vector construction in some case.
  • Drop unnecessary calls to Vector::reserve*Capacity() before calling Vector::append(T*, size_t) since the append() implementation already does this for us.
  • Leverage copyToVector() and copyToVectorOf<> in more cases
  • Call shrinkToFit() in some cases where we reserve capacity and then append() but may not append() as much as we reserved.
  • wtf/Language.cpp:

(WTF::userPreferredLanguages):
(WTF::isolatedCopy): Deleted.

9:14 AM Changeset in webkit [290025] by Antti Koivisto
  • 2 edits in trunk/Source/WTF

[CSS Container Queries] Enable by default
https://bugs.webkit.org/show_bug.cgi?id=236776

Reviewed by Sam Weinig.

Flip the switch.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
8:56 AM Changeset in webkit [290024] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, fix heap enumeration
https://bugs.webkit.org/show_bug.cgi?id=236662

  • libpas/src/libpas/pas_enumerate_segregated_heaps.c:

(pas_enumerate_segregated_heaps):

7:30 AM Changeset in webkit [290023] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Build failure when building with ANGLE enabled since r289912
https://bugs.webkit.org/show_bug.cgi?id=236773

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-02-17
Reviewed by Adrian Perez de Castro.

Avoid including GLContext in the ANGLE classes.

No new tests, it is a building error.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
7:27 AM Changeset in webkit [290022] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.34.6

WPE WebKit 2.34.6

7:27 AM Changeset in webkit [290021] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.34.6
7:27 AM Changeset in webkit [290020] by Adrian Perez de Castro
  • 1 copy in releases/WebKitGTK/webkit-2.34.6

WebKitGTK 2.34.6

7:26 AM Changeset in webkit [290019] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Unreviewed. Update OptionsGTK.cmake and NEWS for the 2.34.6 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.34.6
7:26 AM Changeset in webkit [290018] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/ThirdParty/ANGLE

[GTK] Build broken with ENABLE_X11_TARGET=OFF and no X11 headers present

Unreviewed build fix.

This is a fix in the same vein as the one in https://bugs.webkit.org/show_bug.cgi?id=236770
for the stable 2.34 release branch.

  • PlatformGTK.cmake: Make sure that ANGLE_USE_X11, WL_EGL_PLATFORM, or USE_SYSTEM_EGL

are always defined independently of the USE_ANGLE_EGL and USE_ANGLE_WEBGL options.

7:26 AM Changeset in webkit [290017] by Adrian Perez de Castro
  • 11 edits in releases/WebKitGTK/webkit-2.34

Merge r289949 - [CMake] Cannot find OpenGL when system provides opengl.pc instead of gl.pc
https://bugs.webkit.org/show_bug.cgi?id=236592

Reviewed by Don Olmstead.

.:

  • Source/cmake/FindOpenGL.cmake: Rewrite to use imported targets, try the "opengl" and "glx"

pkg-config modules first, otherwise keep the existing logic that tried the "gl" pkg-config
module with fallbacks to find_path/find_library.

  • Source/cmake/OptionsGTK.cmake: Check for the presence of the OpenGL::GLX target instead of

te GLX_FOUND variable.

Source/ThirdParty/ANGLE:

  • PlatformGTK.cmake: Use the OpenGL::OpenGL imported target instead of the

OPENGL_LIBRARIES variable.

  • PlatformWPE.cmake: Ditto, plus replace a spurious use of OPENGLES_LIBRARIES

with the OpenGL::GLES target.

Source/WebCore:

  • CMakeLists.txt: Use the OpenGL::OpenGL and OpenGL::GLX imported targets instead of variables.
  • platform/graphics/GLContext.cpp: Move here includes for the GL headers.
  • platform/graphics/GLContext.h: Remove includes for the GL headers, none of their

declarations are used here; instead include only the needed EGL headers to get the
definition of EGLNativeWindowType.

Source/WebKit:

  • CMakeLists.txt: Remove usage of the OPENGL_ variables for the WebKit target, which is

uneeded because it links to WebCore, which transitively pulls the needed libraries now
that imported targets are being used.

7:02 AM Changeset in webkit [290016] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Decouple line box relative alignment types when computing the root inline box's baseline position
https://bugs.webkit.org/show_bug.cgi?id=236675

Reviewed by Antti Koivisto.

Line box relative alignments (top/bottom) impact on the root inline box's baseline is slightly different from
the rest of the alignments (baseline etc). In these patch these alignment type are moved out of the main loop where
all the other alignments are handled (this is similar to what we do at other placed e.g. LineBoxVerticalAligner::computeLineBoxLogicalHeight).
This patch is in preparation for fixing the bug where the 'vertical-bottom' aligned box makes other inline level boxes stick out of their parent block.

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):

6:54 AM Changeset in webkit [290015] by Chris Lord
  • 3 edits in trunk/Source/WebCore

[WPE] Build failure when building with ANGLE enabled since r289912
https://bugs.webkit.org/show_bug.cgi?id=236768

Reviewed by Alejandro G. Castro.

Fix build after regression caused by r289912.

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::EGLImageBacking::EGLImageBacking):

5:38 AM Changeset in webkit [290014] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Increase timeout to account for MIPS slowness
https://bugs.webkit.org/show_bug.cgi?id=236763

Reviewed by Adrian Perez de Castro.

Commit https://commits.webkit.org/247272@main parallelized the
status fetching but also introduced a timeout. Unfortunately, the
MIPS boards used in the build.webkit.org buildbot are not fast
enough to gather the test results in this timeout, so the bot can
never complete its testing. This wasn't caught in EWS as the
buildbots use faster MIPS hardware there.

Significantly bump the timeout when fetching results.

  • Scripts/run-jsc-stress-tests:
5:36 AM Changeset in webkit [290013] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fix after r290003
https://bugs.webkit.org/show_bug.cgi?id=236774

  • animation/FrameRateAligner.h:
5:32 AM Changeset in webkit [290012] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Crash while destroying RemoteVideoFrameObjectHeap
https://bugs.webkit.org/show_bug.cgi?id=236765
<rdar://89003650>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-17
Reviewed by Antti Koivisto.

Add virtual destructor to ThreadSafeObjectHeap. (ThreadSafe)RefCounted<T> deletes
the object through the T pointer. In this case, T is ThreadSafeObjectHeap, but
the underlying type is RemoteVideoFrameObjectHeap. This causes delete through non-virtual
pointer and skips ~ThreadSafeObjectHeap().

No new tests, tested by existing tests under ASAN.

  • Shared/ThreadSafeObjectHeap.h:
5:13 AM Changeset in webkit [290011] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (iOS 15.4b3): Catastrophic (20x) performance regression in texImage2D from mp4 video
https://bugs.webkit.org/show_bug.cgi?id=236699

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-17
Reviewed by Darin Adler.

Disable the validation for IOSurface pixel formats.
We might pass non-public formats that do not have sensible IOSurfaceGetBytesPerElementOfPlane
to verify with this logic.

Will add test in bug 236759.

Previous bugs of the same:
EAGL:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
bug 218637, r273582, 234632@main
CGL:
REGRESSION(Safari 15, BigSur): Poor video texture upload performance with MacBook M1, ANGLE OpenGL backend
bug 232235, r286960, 245183@main

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

(rx::IOSurfaceSurfaceMtl::ValidateAttributes):

4:53 AM Changeset in webkit [290010] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

LayoutTests/imported/w3c:
SVG SMIL restart="never" does not behave correctly
https://bugs.webkit.org/show_bug.cgi?id=236491

Reviewed by Antti Koivisto.

Add a new test that checks whether restart="never" is respected when
begin="click" is set on an SVG <animate> element.

  • web-platform-tests/svg/animations/restart-never-and-begin-click-expected.txt: Added.
  • web-platform-tests/svg/animations/restart-never-and-begin-click.html: Added.

Source/WebCore:
[LBSE] Apply SVG specific changes to RenderLayer painting
https://bugs.webkit.org/show_bug.cgi?id=236191

Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2022-02-17
Reviewed by Rob Buis.

This patch summarizes three small SVG specific changes regarding painting, not justifying
more atomic patches, since it's the same context of changes: painting + SVG layer.

  1. SVG container repainting

Layers associated with SVG container elements (<g> / <defs> (!)) should never trigger repaints,
unless they are filtered. Adapt RenderLayer::shouldRepaintAfterLayout() to enforce this.

  1. SVG viewport clipping

Assure that RenderSVGRoot viewport clipping is applied _before_ the SVG viewBox transformation
is applied (soon to be handled by RenderLayer for SVG).

  1. SVG clip-path handling

Add a stub implementation of RenderLayer::computeClipPath(). There are more important parts
to upstream, before adding clipping support for SVG - however this stub serves as reminder
for upcoming patches -- this strategy works well so far.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::shouldRepaintAfterLayout const):
(WebCore::RenderLayer::paintLayerWithEffects):
(WebCore::RenderLayer::computeClipPath const):

3:18 AM Changeset in webkit [290009] by timothy_horton@apple.com
  • 8 edits in trunk/Source/WebKit

Add some more debug triggers for WKHoverPlatter
https://bugs.webkit.org/show_bug.cgi?id=236761

Reviewed by Darin Adler.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _allowsDoubleTapGestures]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _doubleTapRecognized:]):
Make it possible to use single tap as a two-step tap with WKHoverPlatter.
Make it possible to use double tap as an invocation gesture for WKHoverPlatter.

  • UIProcess/ios/WKHoverPlatter.h:
  • UIProcess/ios/WKHoverPlatter.mm:

(-[WKHoverPlatter initWithView:delegate:]):
Use WKHoverPlatterParameters.enabled instead of duplicating the set of enablement bits here.

(-[WKHoverPlatter isVisible]):
(-[WKHoverPlatter didReceiveMouseEvent:]):
(-[WKHoverPlatter didLongPressAtPoint:]):
(-[WKHoverPlatter didSingleTapAtPoint:]):
(-[WKHoverPlatter didDoubleTapAtPoint:]):
(-[WKHoverPlatter platterBoundingRect]):
(-[WKHoverPlatter linkSearchRect]):
(-[WKHoverPlatter adjustedPointForPoint:]):
(-[WKHoverPlatter hoverPoint]): Deleted.

  • UIProcess/ios/WKHoverPlatterParameters.h:
  • UIProcess/ios/WKHoverPlatterParameters.mm:

(-[WKHoverPlatterParameters setDefaultValues]):
Read prototyping default ... defaults ... from NSUserDefaults.

(-[WKHoverPlatterParameters enabled]):
(+[WKHoverPlatterParameters settingsControllerModule]):

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]):
Only accept touch-phase touches from UITouchTypeIndirectPointer.
Otherwise synthetic direct touches continue through WKMouseGestureRecognizer
*and* trigger other gestures. This is a follow-up from r289785 that became more
obvious while writing this patch (and is a strict dependency of the other changes here).

3:15 AM Changeset in webkit [290008] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Apply SVG specific changes to RenderLayer painting
https://bugs.webkit.org/show_bug.cgi?id=236191

Reviewed by Rob Buis.

This patch summarizes three small SVG specific changes regarding painting, not justifying
more atomic patches, since it's the same context of changes: painting + SVG layer.

  1. SVG container repainting

Layers associated with SVG container elements (<g> / <defs> (!)) should never trigger repaints,
unless they are filtered. Adapt RenderLayer::shouldRepaintAfterLayout() to enforce this.

  1. SVG viewport clipping

Assure that RenderSVGRoot viewport clipping is applied _before_ the SVG viewBox transformation
is applied (soon to be handled by RenderLayer for SVG).

  1. SVG clip-path handling

Add a stub implementation of RenderLayer::computeClipPath(). There are more important parts
to upstream, before adding clipping support for SVG - however this stub serves as reminder
for upcoming patches -- this strategy works well so far.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::shouldRepaintAfterLayout const):
(WebCore::RenderLayer::paintLayerWithEffects):
(WebCore::RenderLayer::computeClipPath const):

1:53 AM Changeset in webkit [290007] by commit-queue@webkit.org
  • 10 edits in trunk

Copy track sizes from parent grid into subgrid
https://bugs.webkit.org/show_bug.cgi?id=236336

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Dean Jackson.

Source/WebCore:

Copies track sizes from the parent RenderGrid's track sizing algorithm for axes
that are subgridded, rather than doing its own sizing.
Accounts for differences between the subgrid's grid-gap and the parent's grid gap,
as well as space occupied by the subgrid element's margin/border/padding.

Existing test expectations updated.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::run):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::gridGap const):
(WebCore::RenderGrid::populateGridPositionsForDirection):

  • rendering/RenderGrid.h:

LayoutTests:

Existing test expectations updated.

1:49 AM Changeset in webkit [290006] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

[JSC] Unskip test on mips
https://bugs.webkit.org/show_bug.cgi?id=236645

Unreviewed gardening.

Can't reproduce this locally after 20 iterations.

  • stress/sampling-profiler-richards.js:
1:30 AM WebKitEnablingFlatpakClangd edited by Martin Robinson
(diff)
1:25 AM Changeset in webkit [290005] by Jean-Yves Avenard
  • 18 edits in trunk/Source

CrashTracer: com.apple.WebKit.WebContent at JavaScriptCore: bmalloc_allocate_impl_impl_slow
https://bugs.webkit.org/show_bug.cgi?id=236695
rdar://87596724

Reviewed by Jer Noble.

Source/WebCore:

When a new FragmentedSharedBuffer is received from the network process, it is proactively coalesced
into a SharedBuffer during each call to CachedResource::updateBuffer(). This causes a large number
of re-allocations and copies; essentially re-allocating each time the resource's buffer receives
one more chunk of data.
Instead we only flatten the data buffer once all data have been received.

Running speedtest.net with a gigabit link, we see a reduction of peak
memory use in the content process by about 40% (from 740MB to under 440MB of
physical memory, 1.7GB of memory allocation vs 535MB)

Covered by existing tests.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::writeImageToPasteboard):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::writeImageToPasteboard):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didFinishLoading):

  • loader/cache/CachedApplicationManifest.cpp:

(WebCore::CachedApplicationManifest::finishLoading):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::finishLoading):

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::ensureCustomFontData):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::updateImageData):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::calculateIncrementalDataChunk const):
(WebCore::CachedRawResource::updateBuffer):
(WebCore::CachedRawResource::finishLoading):

  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::resourceBuffer const):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script):

  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::finishLoading):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::finishedLoading): Fly-by fix, the
IPC::DataReference would reference a SharedBuffer going
out of scope before it was sent over IPC.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):

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

RemoteVideoFrameProxy should use RemoteVideoFrameObjectHeapProxy to get the pixel buffer representation
https://bugs.webkit.org/show_bug.cgi?id=236704

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-17
Reviewed by Antti Koivisto.

Currently RemoteVideoFrameProxy uses RemoteVideoFrameObjectHeapProxy to transfer the pixel buffer
from GPU process to Web process in scenarios where the pixel buffer is used in Web process.

Previously RemoteVideoFrameProxy client would have to provide a thread-safe function that
should call RemoteVideoFrameObjectHeapProxy::getPixelBuffer().
Current clients do not provide a thread-safe function.

Instead, RemoteVideoFrameProxy should provide just the RemoteVideoFrameObjectHeapProxy reference,
since this is the only way to get the pixel buffer anyway. This simplifies the call sites, makes
the implementation more correct and avoids the use of ifdefs.

Make the code consistent with ifdefs. This is platform-independent code, so remove COCOA ifdefs.
All platforms that transfer pixels would need to have RemoteVideoFrameObjectHeapProxy.
This is media stream specific code, so add MEDIA_STREAM ifdefs.

To be consistent with existing GPUP side code, do not use "remote" prefix on the
variable names. E.g. use "videoFrameObjectHeapProxy" to refer to the proxy. The remote part
is redundant, as this is implied.

Clean up related RemoteVideoFrameProxy::pixelBuffer() function to not store unneeded semaphores
as instance variables or use duplicate helper functions.

No new tests, a refactor.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::videoFrameObjectHeapProxy):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToMediaSample):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::create):
(WebKit::RemoteVideoFrameProxy::RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::pixelBuffer const):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThreadWithLock):
(WebKit::LibWebRTCCodecs::completedDecoding):

  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxy.h:

(WebKit::RemoteVideoFrameObjectHeapProxy::RemoteVideoFrameObjectHeapProxy):

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::setVideoFrameObjectHeapProxy):
(WebKit::RemoteCaptureSampleManager::videoSampleAvailable):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):

1:05 AM WebKitEnablingFlatpakClangd created by Martin Robinson
12:57 AM WebKitFlatpakSDK edited by Martin Robinson
(diff)
12:14 AM Changeset in webkit [290003] by graouts@webkit.org
  • 13 edits
    1 copy
    1 add in trunk

Use the animation frame rate during animation resolution and scheduling
https://bugs.webkit.org/show_bug.cgi?id=234202
rdar://85983678

Reviewed by Simon Fraser.

Source/WebCore:

We've previously added properties to DocumentTimeline to expose the maximum frame rate supported
by the display (bug 234161) and to Animation to let animations specify the frame rate at which
they would like to be updated (bug 234174).

In this patch we add support for accounting for the frame rate set on animations to ensure they
are updated at a cadence close to the one requested, with the following provisions:

  • we do our best to match the frame rate provided by the animation but account for the display's refresh rate to only ever update animations when the display is being refreshed,
  • we update all animations sharing the same frame rate in the same updates,
  • we schedule updates sparingly accounting for the frame rate of animation such that a page only containing animations that are running at, for instance, 15fps only result in calls to DocumentTimelinesController::updateAnimationsAndSendEvents() at 15fps,
  • other factors may impact the animation frame rate, such as low power mode.

There is no test for this code currently. It is not possible to test for the actual
rate at which animations are updated in a testing environment, since there are too
many variables to ensure consistent results. However, future patches will look into
adding internals code such that tests may inspect the update cadence set on the timeline
and frame rates at which animations are optimistically scheduled to update.

The FrameRateAligner class provides a supporting object for DocumentTimelinesController
which contains the data related to the frame rates currently in use by all animations in
the document. This class will be updated in future patches to better handle alignment of
animations added dynamically with previously unused frame rates.

Note that all of those changes to scheduling only affects page rendering updates triggered
by animations. Page rendering updates continue to be scheduled by calls to requestAnimationFrame()
independently from the frame rate specified on animations.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationInterval const):
(WebCore::DocumentTimeline::scheduleNextTick):

  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::DocumentTimelinesController):
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):
(WebCore::DocumentTimelinesController::timeUntilNextTickForAnimationsWithFrameRate const):

  • animation/DocumentTimelinesController.h:

(WebCore::DocumentTimelinesController::maximumAnimationFrameRate const):

  • animation/FrameRateAligner.cpp: Added.

(WebCore::idealTimeForNextUpdate):
(WebCore::FrameRateAligner::beginUpdate):
(WebCore::FrameRateAligner::updateFrameRate):
(WebCore::FrameRateAligner::timeUntilNextUpdateForFrameRate const):
(WebCore::FrameRateAligner::maximumFrameRate const):

  • animation/FrameRateAligner.h: Copied from Source/WebCore/animation/DocumentTimelinesController.h.
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setEffectiveFrameRate):

  • page/Page.cpp:

(WebCore::Page::timelineControllerMaximumAnimationFrameRateDidChange):
(WebCore::Page::preferredRenderingUpdateFramesPerSecond const):

  • page/Page.h:

LayoutTests:

Update this test to not rely on hard values but rather check that throttling
has the expected effect of doubling the interval between frames.

  • fast/animation/css-animation-throttling-lowPowerMode-expected.txt:
  • fast/animation/css-animation-throttling-lowPowerMode.html:
12:08 AM Changeset in webkit [290002] by commit-queue@webkit.org
  • 12 edits in trunk

Unreviewed, reverting r289949.
https://bugs.webkit.org/show_bug.cgi?id=236757

Breaks WPE builds with -DUSE_ANGLE_WEBGL=ON

Reverted changeset:

"[CMake] Cannot find OpenGL when system provides opengl.pc
instead of gl.pc"
https://bugs.webkit.org/show_bug.cgi?id=236592
https://commits.webkit.org/r289949

12:00 AM Changeset in webkit [290001] by timothy@apple.com
  • 8 edits in trunk/Source

Add -[WKWebProcessPlugInFrame lookUpFrameFromJSValue:].
https://bugs.webkit.org/show_bug.cgi?id=236714
rdar://problem/89030846

Reviewed by Chris Dumez.

Source/WebCore:

  • page/Frame.cpp:

(WebCore::Frame::contentFrameFromWindowOrFrameElement): Added.

  • page/Frame.h:

Source/WebKit:

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

(+[WKWebProcessPlugInFrame lookUpContentFrameFromWindowOrFrameElement:]): Added.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::contentFrameForWindowOrFrameElement): Added.

  • WebProcess/WebPage/WebFrame.h:
Note: See TracTimeline for information about the timeline view.