⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



May 31, 2022:

10:27 PM Changeset in webkit [295081] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

DOM order may not be sufficient when constructing the LogicalFlexItemList
https://bugs.webkit.org/show_bug.cgi?id=241166

Reviewed by Antti Koivisto.

We need to hold on to a reference to the layout box in case logical order != DOM order.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):

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

10:00 PM Changeset in webkit [295080] by achristensen@apple.com
  • 2 edits in trunk

Allow decidePolicyForNavigation* decisionHandlers to be called on non-main runloops
https://bugs.webkit.org/show_bug.cgi?id=241157
<rdar://94130705>

Reviewed by Brady Eidson.

Wouldn't it be nice if all apps used your APIs exactly how you want them to?
This is not the case. People call decision handlers on non-main threads.
When this happens, just hop to the main thread to avoid threading issues.

  • Source/WebKit/UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):

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

8:00 PM Changeset in webkit [295079] by commit-queue@webkit.org
  • 32 edits
    25 adds in trunk/LayoutTests

Import css/css-text/text-align tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=241160

Patch by Kiet Ho <Kiet Ho> on 2022-05-31
Reviewed by Tim Nguyen.

Imported from WPT commit 9a7bbe40439176ace294a65474b3a9fed2f8b2d3.

  • LayoutTests/TestExpectations:
  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-006-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-007-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-007.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-008.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-inline-end-crash.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-shy-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-shy-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-001-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-002-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-003-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-004-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-005-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-005.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-006-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-005.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-007.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-008.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-009.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-010-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-010.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-011.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-012.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-013.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-014.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-01-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-01.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-02-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-02.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-03-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-03.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-04-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-04.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-ltr-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-ltr-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-ltr.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-rtl-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-rtl-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-rtl.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-webkit-match-parent-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-webkit-match-parent.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/w3c-import.log:

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

7:07 PM Changeset in webkit [295078] by commit-queue@webkit.org
  • 1 edit in trunk/Source/ThirdParty/ANGLE/changes.diff

Regenerate Source/ThirdParty/ANGLE/changes.diff
https://bugs.webkit.org/show_bug.cgi?id=241165

Patch by Dan Glastonbury <djg@apple.com> on 2022-05-31
Reviewed by Dean Jackson.

  • Source/ThirdParty/ANGLE/changes.diff:

Output of update-angle --regenerate-changes-diff

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

6:53 PM Changeset in webkit [295077] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Move conformance[2]/textures/image_bitmap_from_image_bitmap/ suppressions to top level
https://bugs.webkit.org/show_bug.cgi?id=241145

Patch by Kenneth Russell <kbr@chromium.org> on 2022-05-31
Unreviewed test gardening. Move suppressions from
webgl/TestExpectations to top-level TestExpectations.

  • LayoutTests/TestExpectations:
  • LayoutTests/webgl/TestExpectations:

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

6:33 PM Changeset in webkit [295076] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js

Web Inspector: CSS autocomplete: enable experimental feature for initial hint being the most commonly used property of the matching suggestions
https://bugs.webkit.org/show_bug.cgi?id=241146

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Base/Setting.js:

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

6:25 PM Changeset in webkit [295075] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js

Web Inspector: Debugger: blackbox breakpoint evaluations by default
https://bugs.webkit.org/show_bug.cgi?id=241143

Reviewed by Patrick Angle.

According to <https://webkit.org/web-inspector/script-blackboxing/>

Script blackboxing is the ability to mark a <script> in Web Inspector so that it is ignored by
the JavaScript debugger, meaning that any JavaScript execution pauses that would happen in that
<script> are instead deferred until JavaScript execution has continued outside of that <script>.

Based on that, developers will likely expect that breakpoint evaluations fall under the category of
"things that the JavaScript debugger does" and would therefore expect that they're ignored/deferred.

  • Source/WebInspectorUI/UserInterface/Base/Setting.js:

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

6:16 PM Changeset in webkit [295074] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines Tab: Screenshots: enable by default
https://bugs.webkit.org/show_bug.cgi?id=241144

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • Source/WebInspectorUI/UserInterface/Base/Setting.js:
  • Source/WebInspectorUI/UserInterface/Models/ScreenshotsInstrument.js:

(WI.ScreenshotsInstrument.supported):

  • Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

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

4:42 PM Changeset in webkit [295073] by Elliott Williams
  • 45 edits in trunk/Source

[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK
https://bugs.webkit.org/show_bug.cgi?id=240408

Reviewed by Alexey Proskuryakov.

When building with WK_OVERRIDE_FRAMEWORKS_DIR, we assume that WebKit is
being built as part of a self-contained application, e.g. Safari
Technology Preview. This means that most content is installed to the
override directory, instead of the normal /System/Library/Frameworks
directory.

However, static library content (e.g. headers and archives
for bmalloc, webrtc, WTF) is _not_ installed to the override directory,
as it is not needed at runtime. It was being installed to the default
/usr/local prefix, where it would merge with and overwrite whatever
WebKit content was already present.

To prevent overwrites and other sorts of conflict with the
system-provided WebKit, introduce WK_LIBRARY_HEADERS_FOLDER_PATH and
WK_LIBRARY_INSTALL_PATH, which expand to /usr/local/include/safari-sdk
and /usr/local/lib/safari-sdk respectively when building in this mode.
Static library headers and archives are built to these locations, where
they're still in the expected SDK location, but won't clobber system
WebKit.

  • Source/bmalloc/Configurations/Base.xcconfig:
  • Source/bmalloc/Configurations/bmalloc.xcconfig:
  • Source/bmalloc/Configurations/mbmalloc.xcconfig:
  • Source/JavaScriptCore/Configurations/Base.xcconfig:
  • Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
  • Source/JavaScriptCore/DerivedSources.make:
  • Source/JavaScriptCore/Scripts/generate-unified-sources.sh:
  • Source/JavaScriptCore/offlineasm/config.rb:
  • Source/JavaScriptCore/offlineasm/parser.rb:
  • Source/ThirdParty/ANGLE/Configurations/ANGLE-dynamic.xcconfig:
  • Source/ThirdParty/ANGLE/Configurations/AngleMetalLib.xcconfig:
  • Source/ThirdParty/ANGLE/Configurations/Base.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libabsl.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/yasm.xcconfig:
  • Source/WebCore/PAL/Configurations/Base.xcconfig:
  • Source/WebCore/PAL/Configurations/PAL.xcconfig:
  • Source/WebGPU/Configurations/Base.xcconfig:
  • Source/WebGPU/Configurations/WGSL.xcconfig:
  • Source/WebGPU/Configurations/WGSLUnitTests.xcconfig:
  • Source/WebGPU/Configurations/WebGPU.xcconfig:
  • Source/WebKit/Configurations/Base.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:
  • Source/WebKit/Configurations/SandboxProfiles.xcconfig:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKitLegacy/scripts/generate-unified-sources.sh:
  • Source/WebKitLegacy/mac/Configurations/Base.xcconfig:
  • Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:
  • Source/WTF/Configurations/Base.xcconfig:
  • Source/WTF/Configurations/WTF.xcconfig:
  • Source/WTF/Configurations/icu.xcconfig:
  • Source/WebCore/Configurations/Base.xcconfig:
  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebCore/Configurations/WebCoreTestSupport.xcconfig:
  • Source/WebCore/DerivedSources.make:
  • Source/WebCore/Scripts/generate-unified-sources.sh:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:

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

4:05 PM Changeset in webkit [295072] by Elliott Williams
  • 3 edits in trunk/Source

Fix whitespace paths in "Copy Profiling Data"
https://bugs.webkit.org/show_bug.cgi?id=240285

Unreviewed build fix. JAVASCRIPTCORE_PRIVATE_HEADERS_DIR may contain
spaces, so when we're invoking copy-profiling-data.sh from that
directory we need to defensively quote it.

  • Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

3:43 PM Changeset in webkit [295071] by Karl Rackler
  • 40 edits in trunk/Source

Revert "Perform media networking operations off the main thread"

This reverts commit be35d3c403e1c80fbc18a7a9c0389633448758ac.

Unreviewed revert due to causing 25 consistent crashes on bot.

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

3:24 PM Changeset in webkit [295070] by J Pascoe
  • 1 edit in trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm

[WebAuthn][ios] weakThis not checked before clearing ASCProxy
https://bugs.webkit.org/show_bug.cgi?id=241029
rdar://93932684

Reviewed by Brent Fulgham.

This issue causes crashes after cancelling some types of requests. This change
has been tested on device to verify it fixes the crash.

  • Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

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

3:22 PM Changeset in webkit [295069] by commit-queue@webkit.org
  • 1 edit in trunk/metadata/contributors.json

Add Nikita Vasilyev's GitHub username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=241158

Patch by Nikita Vasilyev <me@elv1s.ru> on 2022-05-31
Reviewed by Jonathan Bedard.

  • metadata/contributors.json:

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

3:08 PM Changeset in webkit [295068] by Brent Fulgham
  • 1 edit in trunk/Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm

PopUpSOAuthorization::initSecretWebView modifies parent web view configuration
https://bugs.webkit.org/show_bug.cgi?id=241155
<rdar://94176551>

Reviewed by Chris Dumez.

The AppSSO flows that create a new WKWebView pass through the method
'PopUpSOAuthorizationSession::initSecretWebView'. This conducts SSO flows in
an invisible Window for cases where other UI handles the actual authentication,
but a web view is needed to handle server interactions. It deactivates AppSSO
in the hidden view so that normal server authentication can happen without AppSSO
being triggered a second time.

This method made the common mistake of assuming that performing 'copy' on the
configuration member of the paren't WKWebView yielded a deep copy that could bei
manipulated to control the invisible view independently of the parent view. While
the method correctly disabled AppSSO for the hidden view, it also deactivated it
for the parent view.

This bug could lead to cases where someone who mistakenly terminated an AppSSO flow
would be unable to start the process a second time, as the view would now be
configured to block access to AppSSO authentication.

This patch corrects that bug.

Tested by SOAuthorizationPopUp.InterceptionSucceedTwice.

  • Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:

(WebKit::PopUpSOAuthorizationSession::initSecretWebView):

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

2:47 PM Changeset in webkit [295067] by Elliott Williams
  • 4 edits
    1 add in trunk/Source/WebKit

[Xcode] Fix dependency cycles caused by Safari header imports
https://bugs.webkit.org/show_bug.cgi?id=240285

Reviewed by Tim Horton.

We were including headers produced by targets which depend on WebKit.
For Xcode engineering builds, this is not a valid dependency, because
an engineering build does not distinguish between a "header"
dependency and a regular target dependency. These errors have survived
in the codebase because:

  • Xcode doesn't recognize header imports as "implicit dependencies",

so the build system hasn't traditionally known these dependencies
exist, except in some incremental builds.

  • These headers are available in internal SDKs, so it's possible for

the targets to build out-of-order but build successfully (as long as
the first target to build can use a possibly-outdated version of the
code from the SDK).

When building targets in parallel, we are emitting more information to
recognize these as implicit dependencies (revealing the cycle) and the
build system is laying down framework bundle directories earlier on in
the build (preventing reliance on SDK frameworks).

  • Source/WebKit/WebKit.xcodeproj/project.pbxproj: WebKit needs to build after AuthenticationServicesCore in internal builds. Add it as a product dependency.
  • Source/WebKit/Configurations/WebKit.xcconfig: Because AuthenticationServicesCore.framework is not available externally, add it to EXCLUDED_SOURCE_FILE_NAMES. The build system still honors the product dependency ordering, but won't fail when it's missing.
  • Source/WebKit/Platform/spi/ios/SafariServicesSPI.h: Added, contains interface declarations for needed SSReadingList API. Technically not SPI, but follows the convention of similar platform redeclaration headers.
  • Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm: WebKit cannot depend on SafariServices. Replace the import of SSReadingList.h with SafariServicesSPI.h.
  • Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: WebKit cannot depend on AuthenticationServices.framework. Thankfully, this import was unused. Delete it.
  • Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm: WebKit cannot depend on SafariServices. Replace the import of SSReadingList.h with SafariServicesSPI.h.

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

2:22 PM Changeset in webkit [295066] by msaboff@apple.com
  • 3 edits
    1 add in trunk

ASSERTION FAILED: regExp->isValid() LLIntSlowPaths.cpp(625)
https://bugs.webkit.org/show_bug.cgi?id=241107
<rdar://93369481>

Reviewed by Mark Lam.

We can remove this ASSERT(regExp->isValid()) and others like it that are used for NewRegExp
bytecode processing because subsequent code already must handle the invalid case. These code
paths may create a new RegExp or retrieve a cached RegExp. For the case where a RegExp is
created for the first time it is valid or we wouldn't have generated the NewRegExp bytecode.
This valid RegExp can subsequently be marked with an error if it fails YARR RegExp engine JIT
code or interpreter bytecode generation. Matching with a RegExp with one of these generation
errors properly throws a Syntax error. These ASSERTs fail when the NewRegExp processing
retrieves an already cached RegExp, with a generation error. The matching code will still
throw a Syntax Error.

  • JSTests/stress/regexp-late-compilation-error.js: Added.

(testRegExp1):
(testRegExp2):
(test):

  • Source/JavaScriptCore/dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • Source/JavaScriptCore/jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

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

2:18 PM Changeset in webkit [295065] by Elliott Williams
  • 6 edits
    1 add in trunk/Source

Refer to correct profiling data in WebCore and WebKit
https://bugs.webkit.org/show_bug.cgi?id=239681

Reviewed by Alexey Proskuryakov.

Revert "Unreviewed, revert "[Xcode] Compute PGO profdata paths instead of searching for them at build time""
This reverts commit 2ee0d9d171e2ff7daa94d1a15727033a994e6414.

A bad copy-paste led to WebCore and WebKit's production builds using PGO
data from JavaScriptCore. Fix it, and add back a check that ensures
production builds fail instead of falling back to stub profiling data.

  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:

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

2:13 PM Changeset in webkit [295064] by J Pascoe
  • 2 edits in trunk/Source/WebKit/UIProcess/API/Cocoa

Remove setUsernameForLocalCredentialWithGroupAndID SPI
https://bugs.webkit.org/show_bug.cgi?id=240829
<rdar://93366441>

Reviewed by Brent Fulgham.

This SPI is no longer used internally and can be removed.

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

(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]): Deleted.
(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithGroupAndID:credential:username:]): Deleted.

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

1:53 PM Changeset in webkit [295063] by Chris Dumez
  • 1 edit in trunk/Source/WebCore/dom/Element.cpp

REGRESSION (251042@main):[ iOS Debug ] ASSERTION FAILED: m_ptr in Ref.h(115) : T *WTF::Ref<WTF::WeakPtrImpl<>>::operator->() const [T = WTF::WeakPtrImpl<>, Traits = WTF::RawPtrTraits<WTF::WeakPtrImpl<>>]
https://bugs.webkit.org/show_bug.cgi?id=241141
<rdar://94168551>

Unreviewed, remove null references in the WeakHashMap before calling
WeakHashMap::ensure() to address assertion hits on iOS Debug bots.

This seems to indicate a potential WeakHashMap bug where
WeakHashMap::ensure() can get confused if the WeakMapHash contains
null references but I'll investigate separately.

  • Source/WebCore/dom/Element.cpp:

(WebCore::Element::identifier const):

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

1:19 PM Changeset in webkit [295062] by Wenson Hsieh
  • 1 edit
    2 adds in trunk

[macOS] Include text context menu actions when right clicking on selected Live Text in a link
https://bugs.webkit.org/show_bug.cgi?id=241069
rdar://91606522

Reviewed by Devin Rousso.

Currently, when right clicking selected text inside of an image that's inside of a link, we only
show context menu actions for the link and image. While it's still possible to copy this selected
text using the Menu Bar (Edit > Copy), this should be reflected in the context menu as well.

To fix this, we adjust a bit of macOS-specific logic in ContextMenuController to include the set
of text actions as well, in this scenario.

  • LayoutTests/fast/images/text-recognition/mac/context-menu-for-image-in-link-contains-copy-expected.txt: Added.
  • LayoutTests/fast/images/text-recognition/mac/context-menu-for-image-in-link-contains-copy.html: Added.

Add a layout test to verify the change.

  • Source/WebCore/page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

Always show selected text options for selected Live Text. Additionally, simplify a bit of nearby
code to take advantage of "if statements with initializers".

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

12:14 PM Changeset in webkit [295061] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore/runtime

Simplify Structure::checkOffsetConsistency()
https://bugs.webkit.org/show_bug.cgi?id=241025

Reviewed by Geoffrey Garen.

Drop redundant isCompilationThread() check in checkOffsetConsistency() before calling
checkOffsetConsistency(PropertyTable*, const DetailsFunc&) since the callee already
does this check. Hopefully, the compiler was already optimizing out the duplicate
check but it is better to be sure given that this check shows on speedometer profiles,
mostly under checkOffsetConsistency().

Also drop the return value since no caller makes use of it.

  • Source/JavaScriptCore/runtime/Structure.h:
  • Source/JavaScriptCore/runtime/StructureInlines.h:

(JSC::Structure::checkOffsetConsistency const):

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

11:09 AM Changeset in webkit [295060] by Devin Rousso
  • 9 edits in trunk

Web Inspector: Open Resource dialog should support matching file paths
https://bugs.webkit.org/show_bug.cgi?id=178152
<rdar://problem/34925656>

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Controllers/ResourceQueryController.js:

(WI.ResourceQueryController.prototype.executeQuery):
(WI.ResourceQueryController.prototype._findSpecialCharacterIndicesInDisplayName): Added.
(WI.ResourceQueryController.prototype._findSpecialCharacterIndicesInURL): Added.
(WI.ResourceQueryController.prototype._findSpecialCharacterIndices): Deleted.
Do a second search for the entire URL. Use the result that has the better rank.

  • Source/WebInspectorUI/UserInterface/Controllers/QueryController.js:

(WI.QueryController.prototype.findSpecialCharacterIndices): Added.

  • Source/WebInspectorUI/UserInterface/Controllers/CSSQueryController.js:

(WI.CSSQueryController.prototype.executeQuery):
(WI.CSSQueryController.prototype._findSpecialCharacterIndicesInPropertyName): Added.
(WI.CSSQueryController.prototype._findSpecialCharacterIndices): Deleted.
Move the shared _findSpecialCharacterIndices to the base class to avoid repeated logic.

  • Source/WebInspectorUI/UserInterface/Models/ResourceQueryResult.js:

(WI.ResourceQueryResult):
(WI.ResourceQueryResult.prototype.get searchString): Added.
Include the string for the matches so callers can reason about what was matched.

  • Source/WebInspectorUI/UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
(WI.OpenResourceDialog.prototype._populateResourceTreeOutline.createHighlightedTitleFragment):
Shift the matches if it was for the entire URL, so that highlights still appear for the display name.

  • LayoutTests/inspector/unit-tests/css-query-controller.html:
  • LayoutTests/inspector/unit-tests/css-query-controller-expected.txt:
  • LayoutTests/inspector/unit-tests/resource-query-controller.html:
  • LayoutTests/inspector/unit-tests/resource-query-controller-expected.txt:

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

11:00 AM Changeset in webkit [295059] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/dom

Avoid GCReacheableRefMap lookup inside JSNodeOwner::isReachableFromOpaqueRoots()
https://bugs.webkit.org/show_bug.cgi?id=241063

Reviewed by Geoffrey Garen.

Avoid GCReacheableRefMap lookup inside JSNodeOwner::isReachableFromOpaqueRoots()
by leveraging a flag on Node. According to A/B testing this is a ~0.5%
progression on Speedometer on Apple Silicon.

  • Source/WebCore/dom/GCReachableRef.h:

(WebCore::GCReachableRefMap::contains):
(WebCore::GCReachableRefMap::add):
(WebCore::GCReachableRefMap::remove):

  • Source/WebCore/dom/Node.h:

(WebCore::Node::isInGCReacheableRefMap const):
(WebCore::Node::setIsInGCReacheableRefMap):

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

10:12 AM Changeset in webkit [295058] by Brent Fulgham
  • 3 edits in trunk

REGRESSION (250981@main): Two SOAuthorization API tests failing
https://bugs.webkit.org/show_bug.cgi?id=240979
<rdar://93996565>

Reviewed by Chris Dumez.

In Bug 240739 I modified AppSSO to lazily initialize the SOAuthenticationCoordinator. This introduced
two problems in the API Tests:

  1. SOAuthorizationRedirect.InterceptionSucceed3 expected SOAuthentiationCoordinator initialization to happen as soon as the WKWebsiteDataStore was created, but this is now too soon. The assertion just needed to be made after an AppSSO operation was called that would construct the SSO object.
  2. SOAuthorizationPopUp.InterceptionSucceedTwice revealed a real bug. We almost never start an AppSSO flow, then turn off the feature -- except in the case of a pop-up authentication, which creates a secret hidden window without AppSSO turned on. Hitting this test case caused a crash that needed to be addressed by checking for this rare case, and making sure we didn't dereference a nullptr.
  • Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:

(WebKit::PopUpSOAuthorizationSession::initSecretWebView): Properly disable AppSSO through the WKPreference,
rather than reaching into the object to modify WebKit internal state.

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::trySOAuthorization): Don't attempt to dereference the SOAuthenticationCoordinator when the
AppSSO feature is turned off for a pop-up window.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(TestWebKitAPI::TEST): Move the assertion to after AppSSO initialization is complete.

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

10:05 AM Changeset in webkit [295057] by commit-queue@webkit.org
  • 2 edits in trunk/Source/cmake

[WPE][GTK] Expose ENABLE_VIDEO build option
https://bugs.webkit.org/show_bug.cgi?id=241128

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-05-31
Reviewed by Philippe Normand.

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

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

10:05 AM Changeset in webkit [295056] by sihui_liu@apple.com
  • 17 edits in trunk

Remove some WebSQL code from WebKit
https://bugs.webkit.org/show_bug.cgi?id=240857

Reviewed by Chris Dumez.

  • Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bubblewrapSpawn):

  • Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resolvedMediaKeysDirectory const):
(WebKit::WebsiteDataStore::resolvedDatabaseDirectory const): Deleted.

  • Source/WebKit/UIProcess/WebsiteData/playstation/WebsiteDataStorePlayStation.cpp:

(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • Source/WebKit/UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp:

(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformGetLaunchOptions):

  • Source/WebKit/UIProcess/glib/WebsiteDataStoreGLib.cpp:

(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleClearAllDatabases): Deleted.

  • Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::exceededDatabaseQuota): Deleted.

  • Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
  • Source/WebKit/WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prepareToSuspend):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.html:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(runWebsiteDataStoreCustomPaths):

  • Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::clearAllDatabases):

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

9:59 AM Changeset in webkit [295055] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineOverviewGraph.css

Web Inspector: Timelines Tab: Screenshots: the selected image should be on top in the overview
https://bugs.webkit.org/show_bug.cgi?id=240878

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineOverviewGraph.css:

(.timeline-overview-graph.screenshots > img.selected):

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

9:08 AM Changeset in webkit [295054] by fred.wang@free.fr
  • 5 edits in trunk/Source/WebCore/svg/properties

Handle start/stop conflicts with multiple SVG animators
https://bugs.webkit.org/show_bug.cgi?id=241121

Reviewed by Said Abou-Hallawa.

While animating an SVG property from multiple animators, and if there
are multiple instance of this property, then starting or stopping a
specific animator can override the shared m_animVal. This patch fixes
that issue by allowing instanceStartAnimation/instanceStopAnimation
to modify m_animVal only in the case where there are no other animators
for this property. The change is performed for each SVG type (Value,
Primitive, Decorated and List).

  • Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h: Do not touch m_animVal if there are other animators for this property.
  • Source/WebCore/svg/properties/SVGAnimatedPrimitiveProperty.h: Ditto.
  • Source/WebCore/svg/properties/SVGAnimatedProperty.h: Ditto.
  • Source/WebCore/svg/properties/SVGAnimatedPropertyList.h: Ditto.
  • Source/WebCore/svg/properties/SVGAnimatedValueProperty.h: Fix a typo.

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

8:41 AM Changeset in webkit [295053] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

EWS should email PR author in case Merge-Queue silently fails on their PR
https://bugs.webkit.org/show_bug.cgi?id=241101

Reviewed by Jonathan Bedard.

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

(ValidateChange.validate_github):
(ValidateChange.send_email_for_github_failure):

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

8:22 AM Changeset in webkit [295052] by Wenson Hsieh
  • 9 edits in trunk/Source

[iOS] Refactor some logic around VideoFullscreenInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=241113

Reviewed by Eric Carlson.

Adjust the window level of VideoFullscreenInterfaceAVKit's window. No change in behavior.

  • Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup):

  • Source/WebKit/UIProcess/PageClient.h:
  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didEnterFullscreen):
(WebKit::WebPageProxy::didExitFullscreen):

Also refactor WebPageProxy::did(Enter|Exit)Fullscreen, such that we implement
didExitFullscreen(PlaybackSessionContextIdentifier) in the case where
ENABLE(VIDEO_PRESENTATION_MODE) is enabled, and didExitFullscreen() (with no arguments) in the
case where it's disabled.

Currently both versions of did(Enter|Exit)Fullscreen() exist if ENABLE(VIDEO_PRESENTATION_MODE)
is set, even though we only expect to call into did(Enter|Exit)Fullscreen() from outside of
WebPageProxy.

  • Source/WebKit/UIProcess/WebPageProxy.h:
  • Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
  • Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didEnterFullscreen):
(WebKit::PageClientImpl::didExitFullscreen):

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didEnterFullscreen]):
(-[WKContentView _didExitFullscreen]):

  • Source/WebKit/UIProcess/mac/PageClientImplMac.h:

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

6:41 AM Changeset in webkit [295051] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore/layout

Add support for margin: auto
https://bugs.webkit.org/show_bug.cgi?id=241111

Reviewed by Antti Koivisto.

Auto margins take up all of the space that they can in their axis.

  1. compute the space 'margin: auto' can take
  2. distribute it among flex items with 'margin: auto'
  3. adjust final top/left with the computed margin
  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computedAutoMarginValueForFlexItems):
(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):
(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

6:39 AM Changeset in webkit [295050] by Oriol Brufau
  • 3 edits in trunk/Source/WebCore

Ensure logical properties have skip-builder
https://bugs.webkit.org/show_bug.cgi?id=241105

Reviewed by Tim Nguyen.

Builder::applyProperty resolves logical properties into physical ones.
So there is no need to define BuilderCustom methods for them.
Thus, most already have skip-builder:true. This patch covers the only
two exceptions.

No test since there should be no change in behavior.

  • Source/WebCore/css/CSSProperties.json:

Flag contain-intrinsic-block-size and contain-intrinsic-inline-size with
skip-builder:true.

  • Source/WebCore/css/makeprop.pl:

Require logical properties to have skip-builder:true.

  • Source/WebCore/style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialContainIntrinsicBlockSize): Deleted.
(WebCore::Style::BuilderCustom::applyInheritContainIntrinsicBlockSize): Deleted.
(WebCore::Style::BuilderCustom::applyValueContainIntrinsicBlockSize): Deleted.
(WebCore::Style::BuilderCustom::applyInitialContainIntrinsicInlineSize): Deleted.
(WebCore::Style::BuilderCustom::applyInheritContainIntrinsicInlineSize): Deleted.
(WebCore::Style::BuilderCustom::applyValueContainIntrinsicInlineSize): Deleted.
Remove unnecessary logic.

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

6:24 AM Changeset in webkit [295049] by ntim@apple.com
  • 32 edits
    27 adds
    1 delete in trunk

Unprefix -webkit-text-justify and add inter-character value
https://bugs.webkit.org/show_bug.cgi?id=229084
<rdar://82177456>

Reviewed by Antti Koivisto.

This is still disabled by default behind the cssTextJustifyEnabled setting.
We don't keep support for the -webkit- prefix, since only Firefox ships text-justify (without the prefix) and it was never enabled in WebKit for macOS/iOS.

distribute and inter-character are aliases, with distribute being the legacy one. The spec specifies it as parse-time, but we implement it compute-time (like Chrome).

https://github.com/w3c/csswg-drafts/issues/7322 is filed about potentially removing 'distribute' from the spec.

  • LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-expected.txt: Removed.
  • LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited-expected.txt: Removed.
  • LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited.html: Removed.
  • LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify.html: Removed.

Removed parsing tests redundant with WPT.

  • LayoutTests/fast/css3-text/css3-text-justify/text-justify-none.html:
  • LayoutTests/fast/text/text-combine-crash.html:
  • LayoutTests/TestExpectations:
  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/inheritance-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/text-justify-computed-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/text-justify-valid-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/letter-spacing/letter-spacing-bidi-003.xht:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-005.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/distribute-alias.tentative-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/distribute-alias.tentative.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-002-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-002.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-003-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-003.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-004-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-004.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-005-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-005.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-006-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-006.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-distribute-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-distribute-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-character-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-character-001-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-character-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-word-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-word-001-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-word-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-none-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-none-001-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-none-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/w3c-import.log:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:

Import new WPT from 6aa9a39, remove prefixes automatically added by the importer, and rebaseline tests.

  • Source/WebCore/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • Source/WebCore/css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextJustify const):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/StyleProperties.cpp:
  • Source/WebCore/css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • Source/WebCore/rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::textAlignmentForLine const):

  • Source/WebCore/rendering/style/RenderStyleConstants.h:
  • Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:

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

6:02 AM Changeset in webkit [295048] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk/Source/WebCore/platform

[Linux] TextureMapperPlatformLayerProxyDMABuf should support different colorspaces
https://bugs.webkit.org/show_bug.cgi?id=240633

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-05-31
Reviewed by Miguel Gomez and Philippe Normand.

Add the DMABufColorSpace enumeration, covering different colorspaces we
currently can support between decoded GStreamer data and the TextureMapper
DMABuf integration.

DMABufObject gains a DMABufColorSpace member variable, initially of an invalid
value but that can be overridden by whoever is constructing the object.

In MediaPlayerPrivateGStreamer, the desired colorspace can be retrieved from the
GstVideoInfo colorimetry information and set on the DMABufObject.

The colorspace is now respected in TextureMapperPlatformLayerProxyDMABuf,
choosing between different YUV-to-RGB matrices that are to be used when sampling
from the set of plane-assigned textures. The default is the BT.601 conversion
matrix. For RGBA-like formats, no conversion is required, so an assert is placed
to ensure that the colorspace is either unspecified or specified as SRGB.

  • Source/WebCore/platform/TextureMapper.cmake:
  • Source/WebCore/platform/graphics/gbm/DMABufColorSpace.h: Added.
  • Source/WebCore/platform/graphics/gbm/DMABufObject.h:

(WebCore::DMABufObject::encode const):
(WebCore::DMABufObject::encode):
(WebCore::DMABufObject::decode):

  • Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp:
  • Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::colorSpaceForColorimetry):
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

  • Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::paintToTextureMapper):

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

5:33 AM Changeset in webkit [295047] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit/WebProcess/WebPage

[WPE][GTK] Build broken with ENABLE_VIDEO=OFF after r292252
https://bugs.webkit.org/show_bug.cgi?id=241123

Reviewed by Philippe Normand.

  • Source/WebKit/WebProcess/WebPage/WebPage.cpp: Add missing ENABLE(VIDEO) guard.
  • Source/WebKit/WebProcess/WebPage/WebPage.h: Ditto.

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

3:38 AM Changeset in webkit [295046] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp

[GStreamer] DMABufVideoSink fails to list NV21 as a supported format
https://bugs.webkit.org/show_bug.cgi?id=241119

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-05-31
Reviewed by Miguel Gomez and Philippe Normand.

  • Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:

NV12 is listed twice in the DMABufVideoSink's list of supported formats. This
is a typo, one of those was supposed to be NV21, a different-but-similar format
that works just fine.

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

1:22 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
Started section of merges for the 2.36.x releases (diff)
1:15 AM Changeset in webkit [295045] by Adrian Perez de Castro
  • 1 edit in trunk/Source/WebCore/bindings/js/JSDOMMapLike.cpp

[GTK][WPE] Build failure when cross-building for 64-bit ARM
https://bugs.webkit.org/show_bug.cgi?id=241109

Unreviewed build fix.

  • Source/WebCore/bindings/js/JSDOMMapLike.cpp: Add missing JavaScriptCore/HashMapImplInlines.h header inclusion.

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

May 30, 2022:

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

RemoteVideoFrameProxy::pixelBuffer should properly compute canUseIOSurface
https://bugs.webkit.org/show_bug.cgi?id=241100

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-30
Reviewed by Eric Carlson.

We can use IOSurface when doing WebGL in WebProcess, instead of when doing WebGL in GPUProcess.
Update canUseIOSurface accordingly.
Add error logging when creating a CVPixelBufferRef.

  • Source/WebCore/platform/graphics/cv/CVUtilities.mm:

(WebCore::createCVPixelBuffer):

  • Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::pixelBuffer const):

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

10:49 PM Changeset in webkit [295043] by Brandon
  • 1 edit in trunk/Source/bmalloc/libpas/src/libpas/pas_utils.c

[libpas] Build fix macOS
https://bugs.webkit.org/show_bug.cgi?id=241116

Reviewed by Yusuke Suzuki.

Convert from int to uint64_t. Line should always be a positive number.

  • Source/bmalloc/libpas/src/libpas/pas_utils.c:

(pas_assertion_failed_no_inline):
(pas_assertion_failed_no_inline_with_extra_detail):

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

9:50 PM Changeset in webkit [295042] by ysuzuki@apple.com
  • 1 edit in trunk/.clangd

Clangd should always interpret headers as C++
https://bugs.webkit.org/show_bug.cgi?id=241118

Reviewed by Saam Barati.

Attach -xc++ flag to headers in .clangd to interpret all headers as C++ by default.

  • .clangd:

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

9:18 PM Changeset in webkit [295041] by Fujii Hironori
  • 1 edit in trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp

REGRESSION(251043@main): "ASSERTION FAILED: channel" in WebCore::ThreadableWebSocketChannel::create
https://bugs.webkit.org/show_bug.cgi?id=241087

Reviewed by Don Olmstead.

Since 251043@main, WinCairo WK1 was crashing for WebSocket tests.
channel variable was null in ThreadableWebSocketChannel::create.
In the case, it should call WebSocketChannel::create like Mac port
does.

  • Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::create):

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

9:13 PM Changeset in webkit [295040] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[JSC] Make VMEntryScope cheap
https://bugs.webkit.org/show_bug.cgi?id=241091

Reviewed by Mark Lam.

This patch makes VMEntryScope cheap. In some microbenchmarks, we observe repeated execution of VMEntryScope
because of many ticks driven by microtasks. And currently VMEntryScope is designed to be non-cheap based on
the assumption that this is not frequently executed.

  1. We add isJSThread flag to Thread so that we can skip some of unnecessary initializations.
  2. Appropriately set UNLIKELY / LIKELY for the major path.
  3. Make DateCache::resetIfNecessary fast path inlined.

ToT
Time(doxbee-async-es2017-native): 24 ms.
Time(doxbee-promises-es2015-native): 44.9 ms.
Time(fibonacci-async-es2017-native): 197.6 ms.
Time(parallel-async-es2017-native): 109.1 ms.
Time(parallel-promises-es2015-native): 80.4 ms.

Patched
Time(doxbee-async-es2017-native): 21.4 ms.
Time(doxbee-promises-es2015-native): 36.4 ms.
Time(fibonacci-async-es2017-native): 168.1 ms.
Time(parallel-async-es2017-native): 103.7 ms.
Time(parallel-promises-es2015-native): 70.9 ms.

  • Source/JavaScriptCore/runtime/JSDateMath.cpp:

(JSC::DateCache::resetIfNecessarySlow):
(JSC::DateCache::resetIfNecessary): Deleted.

  • Source/JavaScriptCore/runtime/JSDateMath.h:

(JSC::DateCache::resetIfNecessary):

  • Source/JavaScriptCore/runtime/VM.h:

(JSC::VM::firePrimitiveGigacageEnabledIfNecessary):

  • Source/JavaScriptCore/runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::~VMEntryScope):

  • Source/WTF/wtf/Threading.cpp:

(WTF::Thread::registerJSThread):

  • Source/WTF/wtf/Threading.h:

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

6:26 PM Changeset in webkit [295039] by Alan Bujtas
  • 5 edits
    1 copy
    1 add in trunk/Source/WebCore

Move core flex layout to FlexLayout
https://bugs.webkit.org/show_bug.cgi?id=241106

Reviewed by Antti Koivisto.

  • Source/WebCore/Headers.cmake:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):
(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
(WebCore::Layout::FlexFormattingContext::computeAvailableLogicalVerticalSpace const): Deleted.
(WebCore::Layout::FlexFormattingContext::computeAvailableLogicalHorizontalSpace const): Deleted.
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForShrinkingFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForStretchingFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::alignFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::justifyFlexItems): Deleted.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:
  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp: Added.

(WebCore::Layout::FlexLayout::FlexLayout):
(WebCore::Layout::FlexLayout::computeAvailableLogicalVerticalSpace const):
(WebCore::Layout::FlexLayout::computeAvailableLogicalHorizontalSpace const):
(WebCore::Layout::FlexLayout::computeLogicalWidthForShrinkingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForStretchingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexLayout::alignFlexItems):
(WebCore::Layout::FlexLayout::justifyFlexItems):
(WebCore::Layout::FlexLayout::layout):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h: Copied from Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h.

(WebCore::Layout::FlexLayout::formattingState const):
(WebCore::Layout::FlexLayout::flexBoxStyle const):

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

4:59 PM Changeset in webkit [295038] by mmaxfield@apple.com
  • 1 edit in trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp

[Cocoa] Rename [de]normalizeWeight() to [de]normalizeGXWeight()
https://bugs.webkit.org/show_bug.cgi?id=241112

Reviewed by Alan Bujtas.

Weights are measured in 3 different scales:

  1. CSS weights (1 - 999)
  2. Core Text weights (-1.0 - 1.0)
  3. TrueType GX weights (0.0ish to 2.0ish, it's not really defined, only the "default" value

of 1.0 is defined).

Our current functions convert between CSS weights and TrueType GX weights, so this makes that more
clear. A subsequent patch will add conversions between CSS weights and Core Text weights.

No new tests because there is no behavior change.

  • Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::normalizeGXWeight):
(WebCore::denormalizeGXWeight):
(WebCore::preparePlatformFont):
(WebCore::variationCapabilitiesForFontDescriptor):
(WebCore::normalizeWeight): Deleted.
(WebCore::denormalizeWeight): Deleted.

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

4:58 PM Changeset in webkit [295037] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WTF/wtf/RAMSize.cpp

Include <sys/sysinfo.h> on FreeBSD too
https://bugs.webkit.org/show_bug.cgi?id=241099

Patch by Leonardo Taccari <leot@NetBSD.org> on 2022-05-30
Reviewed by Fujii Hironori.

sysinfo(2)/sysinfo(3) is used also in FreeBSD, include corresponding
<sys/sysinfo.h> header too.

  • Source/WTF/wtf/RAMSize.cpp:

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

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

[JSC] Make Strong::set cheap
https://bugs.webkit.org/show_bug.cgi?id=241090

Reviewed by Mark Lam.

HandleSet::writeBarrier is frequently called because it is called every time we set a value in Strong<>.
This patch optimizes it,

  1. We should make it inline function since it has a super fast path major use can be covered. And this function is small.
  2. We should not always remove a node from the list first. We should insert / remove it only when necessary.
  3. Remove m_immediateList since it is not necessary.
  4. Make HandleNode as a derived class of BasicRawSentinelNode to make implementation simpler.

This change improves promise benchmarks score since promise uses microtasks which hold values via Strong<>.

ToT
Time(doxbee-async-bluebird): 42.8 ms.
Time(doxbee-async-es2017-babel): 36.4 ms.
Time(doxbee-async-es2017-native): 28.3 ms.
Time(doxbee-promises-bluebird): 514.2 ms.
Time(doxbee-promises-es2015-native): 44.8 ms.
Time(fibonacci-async-es2017-babel): 380.5 ms.
Time(fibonacci-async-es2017-native): 218.2 ms.
Time(parallel-async-bluebird): 648.8 ms.
Time(parallel-async-es2017-babel): 116.9 ms.
Time(parallel-async-es2017-native): 115.6 ms.
Time(parallel-promises-bluebird): 638 ms.
Time(parallel-promises-es2015-native): 82 ms.

Patched
Time(doxbee-async-bluebird): 38 ms.
Time(doxbee-async-es2017-babel): 27 ms.
Time(doxbee-async-es2017-native): 19.5 ms.
Time(doxbee-promises-bluebird): 508.3 ms.
Time(doxbee-promises-es2015-native): 33.3 ms.
Time(fibonacci-async-es2017-babel): 349.1 ms.
Time(fibonacci-async-es2017-native): 151 ms.
Time(parallel-async-bluebird): 639.6 ms.
Time(parallel-async-es2017-babel): 100.9 ms.
Time(parallel-async-es2017-native): 101.9 ms.
Time(parallel-promises-bluebird): 614 ms.
Time(parallel-promises-es2015-native): 70.9 ms.

  • Source/JavaScriptCore/heap/HandleSet.cpp:

(JSC::HandleSet::writeBarrier): Deleted.

  • Source/JavaScriptCore/heap/HandleSet.h:

(JSC::HandleSet::heapFor):
(JSC::HandleSet::allocate):
(JSC::HandleSet::deallocate):
(JSC::HandleSet::writeBarrier):
(JSC::HandleSet::toHandle): Deleted.
(JSC::HandleSet::toNode): Deleted.
(JSC::HandleNode::HandleNode): Deleted.
(JSC::HandleNode::setPrev): Deleted.
(JSC::HandleNode::prev): Deleted.
(JSC::HandleNode::setNext): Deleted.
(JSC::HandleNode::next): Deleted.

  • Source/JavaScriptCore/heap/Strong.h:

(JSC::Strong::set):

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

3:10 PM Changeset in webkit [295035] by Antti Koivisto
  • 9 edits
    12 adds in trunk

Fix invalidation with scope breaking :is/not()
https://bugs.webkit.org/show_bug.cgi?id=241098

Reviewed by Alan Bujtas.

Selector like :has(:is(foo bar)) can be affected by mutations outside the :has scope.

  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/child-indexed-pseudo-classes-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/empty-pseudo-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/empty-pseudo-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-adjacent-position.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-ancestor-position.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-parent-position.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-sibling-position.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/is-pseudo-containing-complex-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/link-pseudo-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/link-pseudo-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/not-pseudo-containing-complex-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/w3c-import.log:

Reimport selector invalidation tests.

  • Source/WebCore/style/ChildChangeInvalidation.cpp:

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

  • Source/WebCore/style/RuleFeature.cpp:

(WebCore::Style::isSiblingOrSubject):
(WebCore::Style::isHasPseudoClassMatchElement):
(WebCore::Style::computeNextMatchElement):
(WebCore::Style::computeHasPseudoClassMatchElement):
(WebCore::Style::computeSubSelectorMatchElement):
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

Detect the case and fall back to very wide invalidation (same a non-subject :has() for now).

  • Source/WebCore/style/RuleFeature.h:

(WebCore::Style::RuleFeatureSet::usesHasPseudoClass const):

  • Source/WebCore/style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):

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

3:03 PM Changeset in webkit [295034] by Fujii Hironori
  • 4 edits in trunk

WebKitTestRunner shouldn't link object files of JavaScriptCore and WebCore
https://bugs.webkit.org/show_bug.cgi?id=241002

Reviewed by Don Olmstead.

243269@main removed WebKit from WebKitTestRunner_FRAMEWORKS for
WPE. But, it should be there not to link object files of
JavaScriptCore and WebCore to WebKitTestRunner. In WPE builds,
JavaScriptCore and WebCore API are exported from WebKit shared
library. WebKit consumers shouldn't link with object files of
JavaScriptCore and WebCore.

However, adding WebKit to WebKitTestRunner_FRAMEWORKS introduced a
new problem that the object file of LowLevelInterpreter.cpp was linked
into WebKitTestRunner. This problem was fixed by changing
LowLevelInterpreterLib to a STATIC library.

  • Source/JavaScriptCore/CMakeLists.txt:
  • Tools/WebKitTestRunner/CMakeLists.txt:
  • Tools/WebKitTestRunner/PlatformGTK.cmake:
  • Tools/WebKitTestRunner/PlatformWin.cmake:

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

2:59 PM Changeset in webkit [295033] by commit-queue@webkit.org
  • 1 edit in trunk/Source/bmalloc/bmalloc/AvailableMemory.cpp

Include <sys/sysinfo.h> only on FreeBSD and Linux
https://bugs.webkit.org/show_bug.cgi?id=241077

Patch by Leonardo Taccari <leot@NetBSD.org> on 2022-05-30
Reviewed by Fujii Hironori.

sysinfo(2)/sysinfo(3) is used only on FreeBSD and Linux and could be not
available in other Unix-like operating systems.

  • Source/bmalloc/bmalloc/AvailableMemory.cpp:

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

11:07 AM Changeset in webkit [295032] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for justify-content: space-evenly
https://bugs.webkit.org/show_bug.cgi?id=241085

Reviewed by Antti Koivisto.

Distribute items evenly. Items have equal space around them.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::justifyFlexItems):

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

9:48 AM Changeset in webkit [295031] by commit-queue@webkit.org
  • 17 edits in trunk

MediaStreamTrack.getConstraints is empty object
https://bugs.webkit.org/show_bug.cgi?id=240569

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-30
Reviewed by Eric Carlson.

Cover audio and video constraints in UserMediaRequest.
Set these constraints on the created tracks at promise resolution time.

Make a refactoring to move from using RefPtr<MediaStreamTrack> to Ref<MediaStreamTrack>.
Remove use of MediaStream::getTracks since it is not efficient.

Covered by updated tests.

  • Source/WebCore/Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia):
(WebCore::MediaDevices::getDisplayMedia):

  • Source/WebCore/Modules/mediastream/MediaDevices.h:
  • Source/WebCore/Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::clone):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::getFirstAudioTrack const):
(WebCore::MediaStream::getFirstVideoTrack const):
(WebCore::MediaStream::getTracks const):
(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalTakeTrack):
(WebCore::MediaStream::mediaState const):
(WebCore::MediaStream::updateActiveState):
(WebCore::MediaStream::filteredTracks const):

  • Source/WebCore/Modules/mediastream/MediaStream.h:
  • Source/WebCore/Modules/mediastream/MediaStreamTrack.h:

(WebCore::MediaStreamTrack::setConstraints):

  • Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::create):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::allow):

  • Source/WebCore/Modules/mediastream/UserMediaRequest.h:
  • LayoutTests/fast/mediastream/getDisplayMedia-max-constraints3.html:
  • LayoutTests/fast/mediastream/getUserMedia-webaudio.html:
  • LayoutTests/fast/mediastream/mediastreamtrack-video-clone.html:

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

9:44 AM Changeset in webkit [295030] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for justify-content: space-around
https://bugs.webkit.org/show_bug.cgi?id=241084

Reviewed by Antti Koivisto.

Distribute items evenly. Items have a half-size space on either end.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::justifyFlexItems):

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

8:20 AM Changeset in webkit [295029] by Pablo Saavedra
  • 1 edit in trunk/Source/WebCore/platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h

[GPU Process][Filters] Don't use Uint8ClampedArray in software filter appliers also for FEGaussianBlurNEON
https://bugs.webkit.org/show_bug.cgi?id=240964

Reviewed by Said Abou-Hallawa.

This complement the changes done in r250982 by adapting the specific
method used for ARMv7 NEON.

  • Source/WebCore/platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h:

(WebCore::boxBlurNEON):

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

7:18 AM Changeset in webkit [295028] by Diego Pino Garcia
  • 34 edits in trunk/Source

Unreviewed, non-unified build fixes after 251082@main

  • Source/WebCore/bindings/js/JSAttrCustom.cpp:
  • Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp:
  • Source/WebCore/bindings/js/JSCSSRuleCustom.cpp:
  • Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp:
  • Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp:
  • Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:
  • Source/WebCore/bindings/js/JSDocumentCustom.cpp:
  • Source/WebCore/bindings/js/JSFetchEventCustom.cpp:
  • Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:
  • Source/WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp:
  • Source/WebCore/bindings/js/JSIDBCursorCustom.cpp:
  • Source/WebCore/bindings/js/JSIntersectionObserverCustom.cpp:
  • Source/WebCore/bindings/js/JSIntersectionObserverEntryCustom.cpp:
  • Source/WebCore/bindings/js/JSMessageChannelCustom.cpp:
  • Source/WebCore/bindings/js/JSMessagePortCustom.cpp:
  • Source/WebCore/bindings/js/JSNodeCustom.cpp:
  • Source/WebCore/bindings/js/JSNodeIteratorCustom.cpp:
  • Source/WebCore/bindings/js/JSPaintRenderingContext2DCustom.cpp:
  • Source/WebCore/bindings/js/JSResizeObserverEntryCustom.cpp:
  • Source/WebCore/bindings/js/JSSVGViewSpecCustom.cpp:
  • Source/WebCore/bindings/js/JSStyleSheetCustom.cpp:
  • Source/WebCore/bindings/js/JSTextTrackCueCustom.cpp:
  • Source/WebCore/bindings/js/JSUndoItemCustom.cpp:
  • Source/WebCore/bindings/js/JSWebGL2RenderingContextCustom.cpp:
  • Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp:
  • Source/WebCore/bindings/js/JSWebXRSessionCustom.cpp:
  • Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp:
  • Source/WebCore/bindings/js/JSWorkerNavigatorCustom.cpp:
  • Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp:
  • Source/WebCore/bindings/js/JSXPathResultCustom.cpp:
  • Source/WebCore/html/HTMLCanvasElement.cpp:
  • Source/WebCore/page/DOMWindowProperty.h:
  • Source/WebCore/page/UndoManager.h:
  • Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:

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

7:10 AM Changeset in webkit [295027] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for justify-content: space-between
https://bugs.webkit.org/show_bug.cgi?id=241080

Reviewed by Antti Koivisto.

Distribute items evenly. The first item is flush with the start, the last is flush with the end.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::justifyFlexItems):

  • Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFlexLayout):

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

7:05 AM Changeset in webkit [295026] by commit-queue@webkit.org
  • 11 edits
    1 copy
    6 adds in trunk

REGRESSION (r293885): [ macOS wk2 ] webrtc/canvas-to-peer-connection.html is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240814

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-30
Reviewed by Eric Carlson.

With r293885, we stopped using a pixel conformer to convert frames to YUV.
Instead, we used libyuv routines.
Libyuv is using BT.601 while our pixel conformer was using BT.709.
BT.709 is preferred in WebRTC so we now simply remove our conversion routine from RealtimeOutgoingVideoSourceCocoa.
Our hardware codecs can directly take RGB and convert it to YUV using BT.709.
To ensure we use the proper conversion routine, we add a RGB -> YUV conformer in LibWebRTCCodecsProxy.

Libvpx will use BT.601 routine so we do not have a very good story with VP8.
A follow-up should fix this. We add dedicated tests for both H264 and VP8.
We skip the new tests in glib as GTK bots do not like it.

  • LayoutTests/platform/glib/TestExpectations:
  • LayoutTests/platform/ios-simulator/TestExpectations:
  • LayoutTests/platform/mac-wk2/TestExpectations:
  • LayoutTests/webrtc/canvas-to-peer-connection.html:
  • LayoutTests/webrtc/routines.js:
  • Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

(WebCore::RealtimeOutgoingVideoSourceCocoa::videoFrameAvailable):

  • Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
  • Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::pixelBufferPool): Deleted.

  • Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

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

6:54 AM Changeset in webkit [295025] by ysuzuki@apple.com
  • 3 edits in trunk/Source/bmalloc/libpas/src/libpas

Unreviewed, build fix on Linux
https://bugs.webkit.org/show_bug.cgi?id=240331

  • Source/bmalloc/libpas/src/libpas/pas_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c:

(pas_probabilistic_guard_malloc_debug_info):

  • Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.h:

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

6:00 AM Changeset in webkit [295024] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/accessibility

Fix a11y build warnings
https://bugs.webkit.org/show_bug.cgi?id=241044

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-05-30
Reviewed by Adrian Perez de Castro.

  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::symmetricRelation):

  • Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

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

3:02 AM Changeset in webkit [295023] by ysuzuki@apple.com
  • 1 edit in trunk/Source/WTF/wtf/CompactPtr.h

Unreviewed, build fix for iOS debug build

  • Source/WTF/wtf/CompactPtr.h:

(WTF::CompactPtr::encode):
(WTF::CompactPtr::decode):
(WTF::CompactPtr::decode const): Deleted.

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

3:00 AM Changeset in webkit [295022] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore/runtime

[JSC] Shrink BrandedStructure
https://bugs.webkit.org/show_bug.cgi?id=241092

Reviewed by Mark Lam.

Use CompactRefPtr and WriteBarrierStructureID to shrink sizeof(BrandedStructure) from 112 to 104.
While it is not enough for 32byte alignment, anyway we can make it smaller, and if we make it 8byte
smaller further, it will become 96bytes.

  • Source/JavaScriptCore/runtime/BrandedStructure.cpp:

(JSC::BrandedStructure::BrandedStructure):

  • Source/JavaScriptCore/runtime/BrandedStructure.h:

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

1:29 AM Changeset in webkit [295021] by ntim@apple.com
  • 45 edits
    1 delete in trunk

Unprefix -webkit-text-align-last and add match-parent value support
https://bugs.webkit.org/show_bug.cgi?id=229083
<rdar://82176885>

Reviewed by Antti Koivisto.

We do not keep support for the prefixed version since no other browser supports it, and WebKit never exposed it on macOS/iOS.
Also, unprefix WPTs where prefixes were added automatically by the test importer.

Note that serialization of the match-parent value isn't as specified in the spec, but the behavior matches other browsers.

Original patch by Brent Fulgham.

  • LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-expected.txt: Removed.
  • LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited-expected.txt: Removed.
  • LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html: Removed.
  • LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html: Removed.

These tests are redundant with the parsing ones on WPT.

  • LayoutTests/fast/css3-text/css3-text-align-last/text-align-last-with-text-align-justify.html:
  • LayoutTests/fast/css3-text/css3-text-align-last/text-align-last-with-text-align-non-justify.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-text-align-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-text-align-ref.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-text-align.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-thickness-percent-001-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-thickness-percent-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/inheritance-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/letter-spacing/letter-spacing-bidi-003.xht:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/text-align-last-computed-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/text-align-last-valid-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-005.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-007.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-008.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-009.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-010.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-011.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-012.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-013.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-014.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-empty-inline.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-wins-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/svg/styling/required-properties-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • Source/WebCore/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • Source/WebCore/css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/StyleProperties.cpp:
  • Source/WebCore/css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • Source/WebCore/rendering/style/RenderStyle.h:

(WebCore::RenderStyle::textAlignLast const):
(WebCore::RenderStyle::textIndentType const):
(WebCore::RenderStyle::setTextAlignLast):
(WebCore::RenderStyle::setTextIndentType):
(WebCore::RenderStyle::initialTextAlignLast):
(WebCore::RenderStyle::initialTextIndentType):

  • Source/WebCore/style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTextAlignLast):

  • Source/WebCore/style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialTextAlignLast):
(WebCore::Style::BuilderCustom::applyValueTextAlignLast):

  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation-overrides.json:
  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js:
  • Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:

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

12:19 AM Changeset in webkit [295020] by commit-queue@webkit.org
  • 1 edit in trunk/Tools/Scripts/update-angle

Avoid staging autogenerated commit-message.txt
https://bugs.webkit.org/show_bug.cgi?id=240967

Patch by Kenneth Russell <kbr@chromium.org> on 2022-05-29
Unstage the autogenerated commit-message.txt before exiting the
update-angle script to make it easier for the user to remove.

Reviewed by Kimmo Kinnunen.

  • Source/ThirdParty/ANGLE/commit-message.txt: Added.
  • Tools/Scripts/update-angle:

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

May 29, 2022:

12:56 PM Changeset in webkit [295019] by ntim@apple.com
  • 1 edit in trunk/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt

[Gardening] Rebaseline fast/dom/HTMLMeterElement/meter-element-markup.html after 9a73643
https://bugs.webkit.org/show_bug.cgi?id=240930

Unreviewed test gardening.

Just reflects the new unprefixed style.

  • LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:

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

10:10 AM Changeset in webkit [295018] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/inline

LineBuilder::initialConstraintsForLine needs to know whether there is previous line and if it ended with line break
https://bugs.webkit.org/show_bug.cgi?id=241062

Reviewed by Antti Koivisto.

No need to pass in the PreviousLine struct.

  • Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialConstraintsForLine const):

  • Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h:

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

10:09 AM Changeset in webkit [295017] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Add basic support for justify-content
https://bugs.webkit.org/show_bug.cgi?id=241073

Reviewed by Antti Koivisto.

"justify-content" property defines how space is distributed between and around flex items along the main-axis.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::justiftFlexItems):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

8:34 AM Changeset in webkit [295016] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for align-self
https://bugs.webkit.org/show_bug.cgi?id=241071

Reviewed by Antti Koivisto.

Align-items behavior can be overwritten for individual flex items by applying the align-self property to them.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::alignFlexItems):

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

7:03 AM Changeset in webkit [295015] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Compute available space when ConstraintsForFlexContent does not provide one
https://bugs.webkit.org/show_bug.cgi?id=241070

Reviewed by Antti Koivisto.

e.g. if the flex box does not have fixed height in the cross axis direction, all flex items become as tall as the tallest flex item.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeAvailableLogicalVerticalSpace const):
(WebCore::Layout::FlexFormattingContext::computeAvailableLogicalHorizontalSpace const):
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexFormattingContext::alignFlexItems):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
(WebCore::Layout::availableLogicalVerticalSpace): Deleted.
(WebCore::Layout::availableLogicalHorizontalSpace): Deleted.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

6:44 AM Changeset in webkit [295014] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for flex-start/flex-end/start/end alignment
https://bugs.webkit.org/show_bug.cgi?id=241067

Reviewed by Antti Koivisto.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexFormattingContext::alignFlexItems):

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

6:22 AM Changeset in webkit [295013] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Introduce FlexFormattingContext::alignFlexItems
https://bugs.webkit.org/show_bug.cgi?id=241064

Reviewed by Antti Koivisto.

This is cross axis alignment (add support for 'center' to showcase).

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexFormattingContext::alignFlexItems):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

1:24 AM Changeset in webkit [295012] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WTF/wtf/CompactPtr.h

REGRESSION(251103@main): Broke GTK/WPE
https://bugs.webkit.org/show_bug.cgi?id=241076

Patch by Philippe Normand <philn@igalia.com> on 2022-05-29
Unreviewed. Fix GTK/WPE build.

  • Source/WTF/wtf/CompactPtr.h:

(WTF::CompactPtr::swap):

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

1:14 AM Changeset in webkit [295011] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] Async / Await should not wrap awaited value with one tick
https://bugs.webkit.org/show_bug.cgi?id=241072

Reviewed by Saam Barati.

This patch integrates spec change[1], which removes one level tick count when resolving promise with await.
Previously, regardless of whether the value is promise or not, we are always using resolveWithoutPromise,
but it introduces one tick before the handlers are resolved. The spec change makes it that we can call
performPromiseThen directly if the input value is promise, so we can skip one tick which looks up "then"
and register handlers.

This is beneficial for await performance and it also fixes a bug tested via test262 and attached test due
to the spec change.

We observed performance improvement in async + native promise tests.

ToT
Time(doxbee-async-es2017-native): 35.6 ms.
Time(fibonacci-async-es2017-native): 292.3 ms.
Time(parallel-async-es2017-native): 117.3 ms.

Patched
Time(doxbee-async-es2017-native): 24.2 ms.
Time(fibonacci-async-es2017-native): 198.1 ms.
Time(parallel-async-es2017-native): 109.5 ms.

[1]: https://github.com/tc39/ecma262/pull/1250

  • JSTests/stress/async-await-basic.js:
  • JSTests/stress/async-await-tick-count.js: Added.

(shouldBe):
(async returnDirectPrimitive):
(async returnAwaitPrimitive):
(async returnDirectPromisePrimitive):
(async returnAwaitPromisePrimitive):
(async test):
(async tests):
(globalThis.setUnhandledRejectionCallback.setUnhandledRejectionCallback):

  • JSTests/test262/expectations.yaml:
  • LayoutTests/inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt:
  • LayoutTests/inspector/canvas/recording-bitmaprenderer-full-expected.txt:
  • LayoutTests/inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt:
  • LayoutTests/inspector/console/message-stack-trace-expected.txt:
  • Source/JavaScriptCore/builtins/AsyncFromSyncIteratorPrototype.js:
  • Source/JavaScriptCore/builtins/AsyncFunctionPrototype.js:

(globalPrivate.asyncFunctionResume):

  • Source/JavaScriptCore/builtins/AsyncGeneratorPrototype.js:

(globalPrivate.awaitValue):
(globalPrivate.asyncGeneratorResumeNext):

  • Source/JavaScriptCore/builtins/PromiseOperations.js:

(globalPrivate.newPromiseCapabilitySlow):
(globalPrivate.promiseResolve):
(globalPrivate.promiseResolveSlow):
(globalPrivate.promiseRejectSlow):
(globalPrivate.resolvePromiseWithFirstResolvingFunctionCallCheck):
(globalPrivate.fulfillPromiseWithFirstResolvingFunctionCallCheck):
(globalPrivate.rejectPromiseWithFirstResolvingFunctionCallCheck):
(globalPrivate.resolveWithoutPromiseForAsyncAwait):

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

12:57 AM Changeset in webkit [295010] by commit-queue@webkit.org
  • 35 edits in trunk

Replace CSS3_TEXT build flag with Experimental feature settings
https://bugs.webkit.org/show_bug.cgi?id=121875

Patch by Kiet Ho <Kiet Ho> on 2022-05-29
Reviewed by Tim Nguyen and Myles C. Maxfield.

Currently, -webkit-text-align-last and -webkit-text-justify are gated behind
the ENABLE(CSS3_TEXT) build flag. EWS bots doesn't enable it, hence the properties
aren't tested even though tests are available for them. This patch replaces the build
flag with two experimental settings, which is on during layout tests, allowing the
properties to be tested.

  • LayoutTests/TestExpectations:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • LayoutTests/platform/win/TestExpectations:
  • LayoutTests/platform/wincairo/TestExpectations:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Source/WTF/wtf/PlatformEnable.h:
  • Source/WebCore/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
Temporarily mark -webkit-text-align-last and -webkit-text-justify as not animatable
to avoid the assert. CSS animations for those properties will be implemented in
webkit.org/b/240591.

  • Source/WebCore/css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator TextJustify const):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/StyleProperties.cpp:
  • Source/WebCore/css/parser/CSSParserContext.cpp:

(WebCore::operator==):
(WebCore::add):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • Source/WebCore/css/parser/CSSParserContext.h:
  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • Source/WebCore/rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::textAlignmentForLine const):

  • Source/WebCore/rendering/style/RenderStyle.cpp:

(WebCore::rareInheritedDataChangeRequiresLayout):

  • Source/WebCore/rendering/style/RenderStyle.h:

(WebCore::RenderStyle::textIndentType const):
(WebCore::RenderStyle::textJustify const):
(WebCore::RenderStyle::setTextIndentType):
(WebCore::RenderStyle::setTextJustify):
(WebCore::RenderStyle::initialTextIndentType):
(WebCore::RenderStyle::initialTextJustify):

  • Source/WebCore/rendering/style/RenderStyleConstants.h:
  • Source/WebCore/rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • Source/WebCore/rendering/style/StyleRareInheritedData.h:
  • Source/WebKitLegacy/win/WebPreferences.cpp:

(WebPreferences::cssTextAlignLastEnabled):
(WebPreferences::cssTextJustifyEnabled):

  • Source/WebKitLegacy/win/WebPreferences.h:
  • Source/WebKitLegacy/win/WebView.cpp:

(WebView::notifyPreferencesChanged):

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
  • Tools/DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • Tools/Scripts/webkitperl/FeatureList.pm:

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

May 28, 2022:

10:09 PM Changeset in webkit [295009] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/html/parser

Optimize href attribute lookup in TokenPreloadScanner::updatePredictedBaseURL()
https://bugs.webkit.org/show_bug.cgi?id=241051

Reviewed by Darin Adler.

Optimize href attribute lookup in TokenPreloadScanner::updatePredictedBaseURL() by avoiding
is8Bit() checks for every character of the parameter. Instead, make sure both the parameter
is a const UChar* for fast comparison with attributes, which are stored as Vector<UChar>.

  • Source/WebCore/html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::updatePredictedBaseURL):

  • Source/WebCore/html/parser/HTMLToken.h:

(WebCore::findAttribute):
(WebCore::nameMatches): Deleted.

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

8:23 PM Changeset in webkit [295008] by Yijia Huang
  • 29 edits
    2 copies
    1 move
    3 adds in trunk

Shrink Structure to 96 Bytes when addresses can be encoded in 36-bits
https://bugs.webkit.org/show_bug.cgi?id=240407

Reviewed by Yusuke Suzuki.

We have 2% RAMification regression on iOS, which needs a memory performance
improvement. To work towards resolving this regression, this patch is to
reduce JS object's structure size from 112 bytes to 96 bytes for iOS systems.

  1. We can reduce 36-bit addresses into 4 bytes when dealing with pointers that

have 16-byte alignment.

  1. StructureID can be removed from StructureIDBlob since we can directly compute

the id by encoding the Structure pointer.

CompactPtr and CompactRefPtr classes are introduced for pointers, which can
achieve 8 bytes in MacOS and 4 bytes in iOS.

  • PerformanceTests/JetStream2/RexBench/OfflineAssembler/LowLevelInterpreter64.asm:
  • PerformanceTests/JetStream2/RexBench/OfflineAssembler/LowLevelInterpreter64.js:
  • PerformanceTests/JetStream2/RexBench/OfflineAssembler/expected.js:
  • PerformanceTests/RexBench/OfflineAssembler/LowLevelInterpreter64.asm:
  • PerformanceTests/RexBench/OfflineAssembler/LowLevelInterpreter64.js:
  • PerformanceTests/RexBench/OfflineAssembler/expected.js:
  • Source/JavaScriptCore/CMakeLists.txt:
  • Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
  • Source/JavaScriptCore/bytecode/GetByValHistory.h:

(JSC::GetByValHistory::observe):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
  • Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.cpp:

(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):

  • Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.h:
  • Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • Source/JavaScriptCore/heap/ConservativeRoots.cpp:

(JSC::ConservativeRoots::genericAddPointer):
(JSC::ConservativeRoots::genericAddSpan):

  • Source/JavaScriptCore/heap/ConservativeRoots.h:
  • Source/JavaScriptCore/heap/HeapSnapshot.h:
  • Source/JavaScriptCore/heap/HeapUtil.h:

(JSC::HeapUtil::findGCObjectPointersForMarking):
(JSC::HeapUtil::isPointerGCObjectJSCell):
(JSC::HeapUtil::isValueGCObject):

  • Source/JavaScriptCore/heap/MarkedBlockSet.h:

(JSC::MarkedBlockSet::add):
(JSC::MarkedBlockSet::recomputeFilter):
(JSC::MarkedBlockSet::filter const):

  • Source/JavaScriptCore/heap/TinyBloomFilter.h:

(JSC::TinyBloomFilter<Bits>::TinyBloomFilter):
(JSC::TinyBloomFilter<Bits>::add):
(JSC::TinyBloomFilter<Bits>::ruleOut const):
(JSC::TinyBloomFilter<Bits>::reset):
(JSC::TinyBloomFilter::TinyBloomFilter): Deleted.
(JSC::TinyBloomFilter::add): Deleted.
(JSC::TinyBloomFilter::ruleOut const): Deleted.
(JSC::TinyBloomFilter::reset): Deleted.

  • Source/JavaScriptCore/jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
(JSC::AssemblyHelpers::emitEncodeStructure):

  • Source/JavaScriptCore/jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
(JSC::AssemblyHelpers::loadCompactPtr):
(JSC::AssemblyHelpers::branchCompactPtr):

  • Source/JavaScriptCore/jit/JITPropertyAccess.cpp:

(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::emit_op_put_to_scope):

  • Source/JavaScriptCore/runtime/ClassInfo.h:

(JSC::ClassInfo::offsetOfParentClass): Deleted.
(JSC::ClassInfo::isSubClassOf const): Deleted.

  • Source/JavaScriptCore/runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces):

  • Source/JavaScriptCore/runtime/Structure.cpp:

(JSC::Structure::Structure):

  • Source/JavaScriptCore/runtime/Structure.h:

(JSC::Structure::id const):
(JSC::Structure::typeInfoBlob const):
(JSC::Structure::classInfoForCells const):
(JSC::Structure::indexingModeIncludingHistoryOffset):
(JSC::Structure::objectInitializationBlob const): Deleted.
(JSC::Structure::idBlob const): Deleted.
(JSC::Structure::structureIDOffset): Deleted.

  • Source/JavaScriptCore/runtime/StructureInlines.h:

(JSC::Structure::get):
(JSC::Structure::add):

  • Source/JavaScriptCore/runtime/TypeInfoBlob.h: Renamed from Source/JavaScriptCore/runtime/StructureIDBlob.h.

(JSC::TypeInfoBlob::TypeInfoBlob):
(JSC::TypeInfoBlob::operator=):
(JSC::TypeInfoBlob::indexingModeIncludingHistory const):
(JSC::TypeInfoBlob::fencedIndexingModeIncludingHistory):
(JSC::TypeInfoBlob::setIndexingModeIncludingHistory):
(JSC::TypeInfoBlob::type const):
(JSC::TypeInfoBlob::inlineTypeFlags const):
(JSC::TypeInfoBlob::typeInfo const):
(JSC::TypeInfoBlob::blob const):
(JSC::TypeInfoBlob::indexingModeIncludingHistoryOffset):

  • Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

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

(WTF::CompactPtr::CompactPtr):
(WTF::CompactPtr::operator* const):
(WTF::CompactPtr::operator-> const):
(WTF::CompactPtr::operator! const):
(WTF::CompactPtr::operator bool const):
(WTF::CompactPtr::operator=):
(WTF::CompactPtr::get const):
(WTF::CompactPtr::set):
(WTF::CompactPtr::exchange):
(WTF::CompactPtr::swap):
(WTF::CompactPtr::encode):
(WTF::CompactPtr::encode const):
(WTF::CompactPtr::decode const):
(WTF::GetPtrHelper<CompactPtr<T>>::getPtr):
(WTF::CompactPtrTraits::exchange):
(WTF::CompactPtrTraits::swap):
(WTF::CompactPtrTraits::unwrap):
(WTF::CompactPtrTraits::hashTableDeletedValue):
(WTF::CompactPtrTraits::isHashTableDeletedValue):

  • Source/WTF/wtf/CompactRefPtr.h: Copied from Source/JavaScriptCore/heap/HeapSnapshot.h.
  • Source/WTF/wtf/text/StringImpl.cpp:
  • Source/WTF/wtf/text/StringImpl.h:
  • Tools/TestWebKitAPI/CMakeLists.txt:
  • Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Tools/TestWebKitAPI/Tests/WTF/AlignedRefLogger.h: Copied from Source/JavaScriptCore/heap/TinyBloomFilter.h.

(TestWebKitAPI::DerivedAlignedRefLogger::DerivedAlignedRefLogger):

  • Tools/TestWebKitAPI/Tests/WTF/CompactPtr.cpp: Added.

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/CompactRefPtr.cpp: Added.

(TestWebKitAPI::TEST):
(TestWebKitAPI::f1):
(TestWebKitAPI::returnConstRefCountedRef):
(TestWebKitAPI::returnRefCountedRef):
(TestWebKitAPI::CompactRefPtrCheckingAlignedRefLogger::CompactRefPtrCheckingAlignedRefLogger):
(TestWebKitAPI::loggerName):
(TestWebKitAPI::CompactRefPtrCheckingAlignedRefLogger::ref):
(TestWebKitAPI::CompactRefPtrCheckingAlignedRefLogger::deref):

  • Tools/TestWebKitAPI/Tests/WTF/JSONValue.cpp:

(TestWebKitAPI::TEST):

  • Websites/browserbench.org/JetStream2.0/RexBench/OfflineAssembler/LowLevelInterpreter64.asm:
  • Websites/browserbench.org/JetStream2.0/RexBench/OfflineAssembler/LowLevelInterpreter64.js:
  • Websites/browserbench.org/JetStream2.0/RexBench/OfflineAssembler/expected.js:

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

7:03 PM Changeset in webkit [295007] by Chris Dumez
  • 1 edit in trunk/Source/WTF/wtf/text/StringBuilderJSON.cpp

Simplify / Optimize StringBuilder::appendQuotedJSONString()
https://bugs.webkit.org/show_bug.cgi?id=240955

Reviewed by Darin Adler.

This simplifies the code, makes it more consistent with the test of StringBuilder,
and appears to be a ~0.3% progression on Speedometer on Apple Silicon.

  • Source/WTF/wtf/text/StringBuilderJSON.cpp:

(WTF::StringBuilder::appendQuotedJSONString):

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

5:11 PM Changeset in webkit [295006] by commit-queue@webkit.org
  • 1 edit in trunk/LayoutTests/editing/execCommand/outdent-paragraph-crash.html

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

Patch by Rob Buis <rbuis@igalia.com> on 2022-05-28
Reviewed by Ryosuke Niwa.

Changed test to use setTimeout as it more reliably causes the original crash.

  • LayoutTests/editing/execCommand/outdent-paragraph-crash.html:

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

4:33 PM Changeset in webkit [295005] by bshafiei@apple.com
  • 1 copy in tags/WebKit-7614.1.14.1.15

Tag WebKit-7614.1.14.1.15.

3:58 PM Changeset in webkit [295004] by bshafiei@apple.com
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.15

11:00 AM Changeset in webkit [295003] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/rendering/RenderElement.h

Unreviewed build fix. rdar://problem/91519558

./rendering/RenderElement.cpp:723:21:|error: out-of-line definition of 'moveLayers' does not match any declaration in 'WebCore::RenderElement'

10:44 AM Changeset in webkit [295002] by ysuzuki@apple.com
  • 6 edits
    1 delete in trunk/Source

Unreviewed, revert "[Xcode] Compute PGO profdata paths instead of searching for them at build time"

This reverts commit 6dfb5dc2b3bcd083231cee3cacc599ca7f76998b because of Speedometer2 3% regression.
Probably breaking PGO build.

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

9:31 AM Changeset in webkit [295001] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Introduce FlexFormattingContext::computeLogicalHeightForFlexItems
https://bugs.webkit.org/show_bug.cgi?id=241056

Reviewed by Antti Koivisto.

This is just a very basic "let's stretch the flex items in the cross axis direction" change.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::availableLogicalVerticalSpace):
(WebCore::Layout::availableLogicalHorizontalSpace):
(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry):
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

9:18 AM Changeset in webkit [295000] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Transition flex-grow computation to flex-basis based
https://bugs.webkit.org/show_bug.cgi?id=241057

Reviewed by Antti Koivisto.

  1. Introduce StrechingFlexItem to cache growth related values
  2. Use flex-basis as the base for the flex grow computation
  3. Compute the final logical width values

(This is very similar to how we compute "shrink values".)

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForShrinkingFlexItems):
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForStretchingFlexItems):

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

6:26 AM Changeset in webkit [294999] by Jean-Yves Avenard
  • 40 edits in trunk/Source

Perform media networking operations off the main thread
https://bugs.webkit.org/show_bug.cgi?id=235353
rdar://84517825

Reviewed by Eric Carlson.

We run the media's networking operation and IPC service into a new dedicated WorkQueue.
Not all operation on a MediaResource can be made thread-agnostic, and the creation and shutdown of the MediaResource must still occur on the main thread due to the current architecture which forces more task dispatches than ideal.

However, all other operations will now run on a WorkQueue when the GPU Process is enabled. For WK1 we continue to use the main thread.
We use the IPC::Connection::WorkQueueMessageReceiver characteristics to proxy the network operations from the content process main thread to the GPU Process MediaResourceLoader's WorkQueue.

Some changes were required in data structures such as ResourceResponseBase, where we must use Strings over AtomStrings. A WorkQueue while guaranteeing that all tasks runs sequentially, will use different threads making the use of AtomStrings impossible.

RemoteMediaResourceManager now holds a strong reference to the RemoteMediaResource, to clear that reference and to make the call more explicit we rename PlatformMediaResource::stop into PlatformMediaResource::shutdown()
A call to shutdown() is equivalent to the previous call to stop() followed by setClient(nullptr).

Side-by fixes: various thread-safety fixes in WebCoreNSURLSession, access to some members weren't thread-safe.

To make the code flow easier to follow, we use the new assertIsCurrent(WorkQueue&) extensively. Most methods will now assert that it runs on the thread it's supposed to.

  • Source/WebCore/Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::create):

  • Source/WebCore/Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::readServerHandshake):
(WebCore::WebSocketHandshake::readStatusLine):

  • Source/WebCore/Modules/websockets/WebSocketHandshake.h:
  • Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::interceptWithResponse):
(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):

  • Source/WebCore/loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setResponseMIMEType):

  • Source/WebCore/loader/DocumentLoader.h:
  • Source/WebCore/loader/MediaResourceLoader.cpp:

(WebCore::MediaResource::MediaResource):
(WebCore::MediaResource::~MediaResource):
(WebCore::MediaResource::shutdown):
(WebCore::MediaResource::responseReceived):
(WebCore::MediaResource::shouldCacheResponse):
(WebCore::MediaResource::redirectReceived):
(WebCore::MediaResource::dataSent):
(WebCore::MediaResource::dataReceived):
(WebCore::MediaResource::notifyFinished):
(WebCore::MediaResource::ensureShutdown):
(WebCore::MediaResource::stop): Deleted.

  • Source/WebCore/loader/MediaResourceLoader.h:
  • Source/WebCore/loader/cache/CachedRawResourceClient.h:
  • Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h:

(WebCore::PlatformMediaResourceLoader::targetQueue):
(WebCore::PlatformMediaResource::shutdown):
(WebCore::PlatformMediaResource::didPassAccessControlCheck const):
(WebCore::PlatformMediaResource::setClient):
(WebCore::PlatformMediaResource::client const):
(WebCore::PlatformMediaResource::stop): Deleted.
(WebCore::PlatformMediaResource::client): Deleted.

  • Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache):
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
(WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest):
(WebCore::MediaPlayerPrivateAVFoundationObjC::didStopLoadingRequest):
(WebCore::MediaPlayerPrivateAVFoundationObjC::didPassCORSAccessCheck const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::wouldTaintOrigin const):

  • Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
  • Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::CachedResourceMediaLoader::responseReceived):
(WebCore::PlatformResourceMediaLoader::create):
(WebCore::PlatformResourceMediaLoader::PlatformResourceMediaLoader):
(WebCore::PlatformResourceMediaLoader::stop):
(WebCore::PlatformResourceMediaLoader::responseReceived):
(WebCore::PlatformResourceMediaLoader::loadFailed):
(WebCore::PlatformResourceMediaLoader::loadFinished):
(WebCore::PlatformResourceMediaLoader::dataReceived):
(WebCore::DataURLResourceMediaLoader::DataURLResourceMediaLoader):
(WebCore::WebCoreAVFResourceLoader::create):
(WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader):
(WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader):
(WebCore::WebCoreAVFResourceLoader::startLoading):
(WebCore::WebCoreAVFResourceLoader::stopLoading):
(WebCore::WebCoreAVFResourceLoader::responseReceived):
(WebCore::WebCoreAVFResourceLoader::loadFailed):
(WebCore::WebCoreAVFResourceLoader::loadFinished):
(WebCore::WebCoreAVFResourceLoader::newDataStoredInSharedBuffer):
(WebCore::WebCoreAVFResourceLoader::invalidate): Deleted.

  • Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(stopLoaderIfNeeded):
(webKitWebSrcUnLock):
(webKitSrcWouldTaintOrigin):

  • Source/WebCore/platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::crossThreadData const):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::mimeType const):
(WebCore::ResourceResponseBase::setMimeType):
(WebCore::ResourceResponseBase::textEncodingName const):
(WebCore::ResourceResponseBase::setTextEncodingName):
(WebCore::ResourceResponseBase::httpStatusText const):
(WebCore::ResourceResponseBase::setHTTPStatusText):
(WebCore::ResourceResponseBase::httpVersion const):
(WebCore::ResourceResponseBase::setHTTPVersion):

  • Source/WebCore/platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::decode):

  • Source/WebCore/platform/network/cf/ResourceResponseCFNet.cpp:

(WebCore::ResourceResponse::cfURLResponse const):
(WebCore::ResourceResponse::platformLazyInit):

  • Source/WebCore/platform/network/cocoa/RangeResponseGenerator.h:

(WebCore::RangeResponseGenerator::create):

  • Source/WebCore/platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::Data::Data):
(WebCore::RangeResponseGenerator::Data::~Data):
(WebCore::RangeResponseGenerator::Data::shutdownResource):
(WebCore::RangeResponseGenerator::RangeResponseGenerator):
(WebCore::synthesizedResponseForRange):
(WebCore::RangeResponseGenerator::removeTask):
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
(WebCore::RangeResponseGenerator::expectedContentLengthFromData):
(WebCore::RangeResponseGenerator::giveResponseToTasksWithFinishedRanges):
(WebCore::RangeResponseGenerator::willHandleRequest):
(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):
(WebCore::RangeResponseGenerator::~RangeResponseGenerator): Deleted.

  • Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.h:
  • Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionTaskTransactionMetrics _initWithMetrics:onTarget:]):
(-[WebCoreNSURLSessionTaskTransactionMetrics dealloc]):
(-[WebCoreNSURLSessionTaskMetrics _initWithMetrics:onTarget:]):
(-[WebCoreNSURLSessionTaskMetrics dealloc]):
(-[WebCoreNSURLSessionTaskMetrics transactionMetrics]):
(-[WebCoreNSURLSession initWithResourceLoader:delegate:delegateQueue:]):
(-[WebCoreNSURLSession dealloc]):
(-[WebCoreNSURLSession taskCompleted:]):
(-[WebCoreNSURLSession addDelegateOperation:]):
(-[WebCoreNSURLSession task:didReceiveCORSAccessCheckResult:]):
(-[WebCoreNSURLSession task:didReceiveResponseFromOrigin:]):
(-[WebCoreNSURLSession rangeResponseGenerator]):
(-[WebCoreNSURLSession didPassCORSAccessChecks]):
(-[WebCoreNSURLSession finishTasksAndInvalidate]):
(-[WebCoreNSURLSession dataTaskWithRequest:]):
(-[WebCoreNSURLSession sendH2Ping:pongHandler:]):
(WebCore::WebCoreNSURLSessionDataTaskClient::WebCoreNSURLSessionDataTaskClient):
(WebCore::WebCoreNSURLSessionDataTaskClient::clearTask):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataSent):
(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::shouldCacheResponse):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::accessControlCheckFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFinished):
(-[WebCoreNSURLSessionDataTask initWithSession:identifier:request:targetQueue:]):
(-[WebCoreNSURLSessionDataTask _cancel:]):
(-[WebCoreNSURLSessionDataTask error]):
(-[WebCoreNSURLSessionDataTask session]):
(-[WebCoreNSURLSessionDataTask setSession:]):
(-[WebCoreNSURLSessionDataTask resource]):
(-[WebCoreNSURLSessionDataTask setResource:]):
(-[WebCoreNSURLSessionDataTask cancel]):
(-[WebCoreNSURLSessionDataTask suspend]):
(-[WebCoreNSURLSessionDataTask resume]):
(-[WebCoreNSURLSessionDataTask dealloc]):
(-[WebCoreNSURLSessionDataTask resource:sentBytes:totalBytesToBeSent:]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):
(-[WebCoreNSURLSessionDataTask resource:shouldCacheResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedData:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):
(-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:metrics:]):
(-[WebCoreNSURLSessionDataTask resource:accessControlCheckFailedWithError:]):
(-[WebCoreNSURLSessionDataTask resource:loadFailedWithError:]):
(-[WebCoreNSURLSessionDataTask resourceFinished:metrics:]):
(-[WebCoreNSURLSessionTaskTransactionMetrics _initWithMetrics:]): Deleted.
(-[WebCoreNSURLSessionTaskMetrics _initWithMetrics:]): Deleted.
(-[WebCoreNSURLSessionDataTask initWithSession:identifier:request:]): Deleted.
(-[WebCoreNSURLSessionDataTask _restart]): Deleted.
(-[WebCoreNSURLSessionDataTask _cancel]): Deleted.

  • Source/WebCore/platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::setResponseFromCachedHeaders):

  • Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::handleDataURL):

  • Source/WebCore/platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::setStatusLine):

  • Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::remoteMediaResourceManager):

  • Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::requestResource):

  • Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::RemoteMediaResource):
(WebKit::RemoteMediaResource::~RemoteMediaResource):
(WebKit::RemoteMediaResource::shutdown):
(WebKit::RemoteMediaResource::didPassAccessControlCheck const):
(WebKit::RemoteMediaResource::responseReceived):
(WebKit::RemoteMediaResource::redirectReceived):
(WebKit::RemoteMediaResource::dataSent):
(WebKit::RemoteMediaResource::dataReceived):
(WebKit::RemoteMediaResource::accessControlCheckFailed):
(WebKit::RemoteMediaResource::loadFailed):
(WebKit::RemoteMediaResource::loadFinished):
(WebKit::RemoteMediaResource::stop): Deleted.

  • Source/WebKit/GPUProcess/media/RemoteMediaResource.h:
  • Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:

(WebKit::RemoteMediaResourceLoader::RemoteMediaResourceLoader):
(WebKit::RemoteMediaResourceLoader::requestResource):
(WebKit::RemoteMediaResourceLoader::sendH2Ping):

  • Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:
  • Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:

(WebKit::RemoteMediaResourceManager::~RemoteMediaResourceManager):
(WebKit::RemoteMediaResourceManager::stopListeningForIPC):
(WebKit::RemoteMediaResourceManager::initializeConnection):
(WebKit::RemoteMediaResourceManager::addMediaResource):
(WebKit::RemoteMediaResourceManager::removeMediaResource):
(WebKit::RemoteMediaResourceManager::resourceForIdAndReady):
(WebKit::RemoteMediaResourceManager::responseReceived):
(WebKit::RemoteMediaResourceManager::redirectReceived):
(WebKit::RemoteMediaResourceManager::dataSent):
(WebKit::RemoteMediaResourceManager::dataReceived):
(WebKit::RemoteMediaResourceManager::accessControlCheckFailed):
(WebKit::RemoteMediaResourceManager::loadFailed):
(WebKit::RemoteMediaResourceManager::loadFinished):

  • Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:
  • Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::processResponse):

  • Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::didGetFileInfo):

  • Source/WebKit/Shared/API/glib/WebKitURIResponse.cpp:

(webkit_uri_response_get_mime_type):

  • Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback):

  • Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::removeResource):

  • Source/WebKit/WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):

  • Source/WebKit/WebProcess/Network/WebResourceLoader.h:

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

6:22 AM Changeset in webkit [294998] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.36.3

WPE WebKit 2.36.3

6:21 AM Changeset in webkit [294997] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.36

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.36.3.
6:21 AM Changeset in webkit [294996] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Use flex-basis when shrinking flex items
https://bugs.webkit.org/show_bug.cgi?id=241046

Reviewed by Antti Koivisto.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForShrinkingFlexItems):

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

6:06 AM Changeset in webkit [294995] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Introduce the concept of frozen flex items
https://bugs.webkit.org/show_bug.cgi?id=241034

Reviewed by Antti Koivisto.

When a shrinking flex item gets too small, we exclude it from the shrinking algorithm and recompute the shrink factor. However the new shrink factor could make additional flex items too small.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForShrinkingFlexItems):

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

5:43 AM Changeset in webkit [294994] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Introduce ShrinkingFlexItem structure
https://bugs.webkit.org/show_bug.cgi?id=241033

Reviewed by Antti Koivisto.

This local structure caches some of the shrinking related values.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForShrinkingFlexItems):

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

3:43 AM Changeset in webkit [294993] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore/bindings/js

REGRESSION(251082@main): Broke WPE/GTK builds
https://bugs.webkit.org/show_bug.cgi?id=241060

Patch by Philippe Normand <philn@igalia.com> on 2022-05-28
Unreviewed, fix WPE/GTK builds by including new WebCoreOpaqueRoot header in custom JS bindings.

  • Source/WebCore/bindings/js/JSDOMQuadCustom.cpp:
  • Source/WebCore/bindings/js/JSNavigatorCustom.cpp:
  • Source/WebCore/bindings/js/JSServiceWorkerGlobalScopeCustom.cpp:
  • Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp:
  • Source/WebCore/bindings/js/JSWorkerNavigatorCustom.cpp:

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

2:11 AM Changeset in webkit [294992] by Adrian Perez de Castro
  • 1 copy in releases/WebKitGTK/webkit-2.36.3

WebKitGTK 2.36.3

2:10 AM Changeset in webkit [294991] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.36

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.36.3 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.36.3.
2:10 AM Changeset in webkit [294990] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source

Merge r294939 - Non unified build fixes, lateish May 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=241019

Unreviewed build fixes.

  • Source/JavaScriptCore/wasm/js/WasmToJS.cpp: Add missing JSCJSValueInlines.h header inclusion.
  • Source/WebCore/platform/audio/MultiChannelResampler.cpp: Add missing <functional> header inclusion, needed for std::bind().

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

2:10 AM Changeset in webkit [294989] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.36/Source

Merge r294881 - Cannot link WebKitTestRunner in non-unified builds
https://bugs.webkit.org/show_bug.cgi?id=240755

Reviewed by Adrian Perez de Castro.

In GTK non-unified build, WebKit shared library didn't export all
WEBCORE_EXPORT marked WebCore symbols because WebCore was a static
library.

WebCore should be an SHARED or OBJECT library to work WEBCORE_EXPORT
macro as expected.

  • Source/WebCore/PlatformGTK.cmake:
  • Source/WebCore/page/gtk/DragControllerGtk.cpp:
  • Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

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

1:07 AM Changeset in webkit [294988] by jer.noble@apple.com
  • 1 edit in trunk/Source/WebCore/platform/graphics/avfoundation/objc/QueuedVideoOutput.mm

CRASH: Exception thrown from QueuedVideoOutput::invalidate
https://bugs.webkit.org/show_bug.cgi?id=241052
<rdar://93953827>

Reviewed by Eric Carlson.

  • Source/WebCore/platform/graphics/avfoundation/objc/QueuedVideoOutput.mm:

(WebCore::QueuedVideoOutput::QueuedVideoOutput):

An Objective-C exception is thrown from -removeObserver: stating the observer
was never added in the first place. Clear out ivars in the early return to avoid
doing work in invalidate() which (in addition to being unnecessary) will trigger
the exception.

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

Note: See TracTimeline for information about the timeline view.