Timeline



Jun 25, 2021:

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

[GLIB] Update test expectations after r279217
https://bugs.webkit.org/show_bug.cgi?id=227410

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-25

  • platform/glib/TestExpectations:
7:26 PM Changeset in webkit [279306] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Remove redundant struct ResolvedItem
https://bugs.webkit.org/show_bug.cgi?id=227405

Reviewed by Sam Weinig.

  • layout/formattingContexts/table/TableLayout.cpp:

(WebCore::Layout::distributeAvailableSpace):

6:47 PM Changeset in webkit [279305] by Brent Fulgham
  • 9 edits in trunk/Source/WebKit

[macOS] Add logging and clean up AppSSO flows
https://bugs.webkit.org/show_bug.cgi?id=227379

Reviewed by Kate Cheney.

This patch adds detailed logging to understand the flows through the AppSSO authentication code,
and adds clean-up code in more places to ensure that the modal sheet used by AppSSO is dismissed
in cases where the authentication has completed (or failed).

  • UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm:

(WebKit::NavigationSOAuthorizationSession::shouldStartInternal): Adds new logging.
(WebKit::NavigationSOAuthorizationSession::webViewDidMoveToWindow): Ditto.
(WebKit::NavigationSOAuthorizationSession::pageActiveURLDidChangeDuringWaiting const): Ditto.

  • UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:

(WebKit::PopUpSOAuthorizationSession::shouldStartInternal): Adds new logging.
(WebKit::PopUpSOAuthorizationSession::fallBackToWebPathInternal): Ditto.
(WebKit::PopUpSOAuthorizationSession::abortInternal): Ditto.
(WebKit::PopUpSOAuthorizationSession::completeInternal): Ditto.
(WebKit::PopUpSOAuthorizationSession::close): Ditto.
(WebKit::PopUpSOAuthorizationSession::initSecretWebView): Ditto.

  • UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm:

(WebKit::RedirectSOAuthorizationSession::fallBackToWebPathInternal): Adds new logging.
(WebKit::RedirectSOAuthorizationSession::abortInternal): Ditto.
(WebKit::RedirectSOAuthorizationSession::completeInternal): Ditto.
(WebKit::RedirectSOAuthorizationSession::beforeStart): Ditto.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm:

(WebKit::SOAuthorizationCoordinator::tryAuthorize): Adds new logging.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::stateString const): Added.
(WebKit::SOAuthorizationSession::~SOAuthorizationSession): Add new logging, and ensure modal sheet is dismissed.
(WebKit::SOAuthorizationSession::becomeCompleted): Added new logging.
(WebKit::SOAuthorizationSession::shouldStart): Ditto.
(WebKit::SOAuthorizationSession::start): Ditto.
(WebKit::SOAuthorizationSession::continueStartAfterGetAuthorizationHints): Ditto.
(WebKit::SOAuthorizationSession::continueStartAfterDecidePolicy): Ditto.
(WebKit::SOAuthorizationSession::fallBackToWebPath): Add new logging, and ensure modal sheet is dismissed.
(WebKit::SOAuthorizationSession::abort): Ditto.
(WebKit::SOAuthorizationSession::complete): Ditto.
(WebKit::SOAuthorizationSession::presentViewController): Added new logging, and dismiss modal if an existing
view is in place.
(WebKit::SOAuthorizationSession::dismissModalSheetIfNecessary): Added.
(WebKit::SOAuthorizationSession::dismissViewController): Use new helper function.

  • UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:

(WebKit::SubFrameSOAuthorizationSession::fallBackToWebPathInternal): Adds new logging.
(WebKit::SubFrameSOAuthorizationSession::abortInternal): Ditto.
(WebKit::SubFrameSOAuthorizationSession::completeInternal): Ditto.
(WebKit::SubFrameSOAuthorizationSession::beforeStart): Ditto.
(WebKit::SubFrameSOAuthorizationSession::didFinishLoad): Ditto.
(WebKit::SubFrameSOAuthorizationSession::loadRequestToFrame): Ditto.

  • UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm:

(-[WKSOAuthorizationDelegate authorization:presentViewController:withCompletion:]): Adds new logging.
(-[WKSOAuthorizationDelegate authorizationDidNotHandle:]): Ditto.
(-[WKSOAuthorizationDelegate authorizationDidCancel:]): Ditto.
(-[WKSOAuthorizationDelegate authorizationDidComplete:]): Ditto.
(-[WKSOAuthorizationDelegate authorization:didCompleteWithHTTPAuthorizationHeaders:]): Ditto.
(-[WKSOAuthorizationDelegate authorization:didCompleteWithHTTPResponse:httpBody:]): Ditto.
(-[WKSOAuthorizationDelegate authorization:didCompleteWithError:]): Ditto.
(-[WKSOAuthorizationDelegate setSession:]): Ditto.

5:49 PM Changeset in webkit [279304] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[iOS] Web process sometimes crashes under findDataDetectionResultElementInImageOverlay
https://bugs.webkit.org/show_bug.cgi?id=227412
rdar://79588091

Reviewed by Devin Rousso.

Speculatively fix the crash by ensuring that the hit-tested text node inside an image overlay is inside the
shadow root of the element responding to click events, and that the element responding to click events contains
an image overlay.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::elementPositionInformation):

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

[macOS] WebGL content is unable to use the discrete GPU
https://bugs.webkit.org/show_bug.cgi?id=227408
<rdar://problem/79216506>

Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

There appears to be a key collision:

Source/ThirdParty/ANGLE/include/platform/PlatformMethods.h:#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h:#define EGL_POWER_PREFERENCE_ANGLE 0x3482

Both these keys seem to be accepted by EGL_GetPlatformDisplayEXT().

This patch just changes the value of one of them to a value I picked out of a hat, just so they don't conflict.
We should work with upstream to either:
A) Find a better solution (maybe disambiguate these values based on which function is accepting them), or
B) Make a robust way to make sure keys don't collide in the future.

  • include/platform/PlatformMethods.h:

Source/WebCore:

Simply pass along the power preference into ANGLE. This is read in
DisplayMtl::getMetalDeviceMatchingAttribute().

No new tests. I _think_ this is untestable, because the web exposed power preference is being set correctly.
We’re correctly reporting to the web content that they have successfully asked for a high power context.
We’re just not honoring that internally. If the test is a performance test, or checks the renderer string,
that test would be hardware-dependent, and couldn’t be a regular layout test.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::InitializeEGLDisplay):

5:23 PM Changeset in webkit [279302] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION (r278746): [Mac wk 1] media/media-fullscreen-return-to-inline.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227367.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-06-25

  • platform/mac-wk1/TestExpectations:
5:09 PM Changeset in webkit [279301] by mmaxfield@apple.com
  • 5 edits
    1 add in trunk

[macOS] -[NSString _web_widthWithFont:] returns 0
https://bugs.webkit.org/show_bug.cgi?id=227385
<rdar://problem/79430938>

Reviewed by Simon Fraser.

Source/WebCore:

Simply take the iOS codepath on macOS.

Test: WebKitLegacyStringWidth.ThaiWidthForWeb

  • platform/graphics/FontCascade.cpp:
  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::FontCascade::FontCascade):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/StringWidth.mm: Added.

(TEST):

4:17 PM Changeset in webkit [279300] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION: http/tests/preload/onload_event.html is a flaky timeout on Big Sur wk1 Release
https://bugs.webkit.org/show_bug.cgi?id=227366

Unreviewed test gardening

Patch by Ayumi Kojima <Ayumi Kojima> on 2021-06-25

  • platform/mac-wk1/TestExpectations:
4:04 PM Changeset in webkit [279299] by guijemont@igalia.com
  • 2 edits in trunk/JSTests

Unskip stress/call-apply-exponential-bytecode-size.js on most platforms
https://bugs.webkit.org/show_bug.cgi?id=227354

Reviewed by Yusuke Suzuki.

Instead of skipping, we increase the JIT memory size for this test on
platforms that have less than 64 MB by default.

  • stress/call-apply-exponential-bytecode-size.js:
3:06 PM Changeset in webkit [279298] by dino@apple.com
  • 8 edits in trunk/Source/WebCore

Add support for MTLSharedTextures in WebXR
https://bugs.webkit.org/show_bug.cgi?id=227245
<rdar://problem/79591620>

Reviewed by Tim Horton.

Source/WebCore:

Sometimes, the IOSurface passed to WebXR come from a shared MTLTexture. In
this case we can't treat the IOSurface data as a regular single-plane
image. Instead we should use it to recreate the MTLTexture and then
bind that to WebGL's framebuffer.

  • Modules/webxr/WebXROpaqueFramebuffer.cpp: Use some new binding methods on GraphicsContextGLOpenGL

if given a shared texture.
(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::endFrame):

  • Modules/webxr/WebXROpaqueFramebuffer.h:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: New methods to link an

IOSurface to a GL texture, going through a MTLSharedTexture.
(WebCore::GraphicsContextGLOpenGL::attachIOSurfaceToSharedTexture):
(WebCore::GraphicsContextGLOpenGL::detachIOSurfaceFromSharedTexture):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/xr/PlatformXR.h: Add a new "isShared" member to LayerData

to differentiate between normal IOSurfaces and those that came
from a shared texture.
(PlatformXR::Device::FrameData::LayerData::encode const):
(PlatformXR::Device::FrameData::LayerData::decode):

Source/WebCore/PAL:

Define MTLSharedTextureHandle's initWithIOSurface.

  • pal/spi/cocoa/MetalSPI.h:
1:50 PM Changeset in webkit [279297] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Set ImageBitmap experimental feature flag to true
https://bugs.webkit.org/show_bug.cgi?id=227140

Patch by Kenneth Russell <kbr@chromium.org> on 2021-06-25
Reviewed by Dean Jackson.

Web developers - most recently Google's Meet team - have asked for
ImageBitmap support in WebKit. The implementation was
substantially upgraded during development of WebGL 2.0, and is
thoroughly tested on the EWS. Change the default value for
ImageBitmap's experimental flag to true; this can be removed
completely after one release cycle.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
12:51 PM Changeset in webkit [279296] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix null crash in AudioMediaStreamTrackRendererCocoa::start
https://bugs.webkit.org/show_bug.cgi?id=227386
<rdar://79045120>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-25
Reviewed by Youenn Fablet.

AudioMediaStreamTrackRendererInternalUnitManager::Proxy::~Proxy calls those callbacks with nullptr.
So can LocalAudioMediaStreamTrackRendererInternalUnit::retrieveFormatDescription when createAudioUnitIfNeeded
has an early return or hasn't been called yet.

When this happens, let's not crash.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::start):

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

[macOS] Add missing methods to IOKit filter
https://bugs.webkit.org/show_bug.cgi?id=227398
<rdar://79487528>

Reviewed by Brent Fulgham.

Add missing methods to the IOAccelerator IOKit filter on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
11:50 AM Changeset in webkit [279294] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: Scope Chain sidebar panel is stripping repeating whitespace from strings
https://bugs.webkit.org/show_bug.cgi?id=227234

Reviewed by Devin Rousso.

String and Regular Expression values in Object Trees were having white-space: nowrap; applied to them, which
was redundant because white-space: pre; was already defined for .formatted-string and .formatted-regexp,
which makes sure that the text does not wrap unless it contains a newline, and these previews have newlines
replaced with a Unicode symbol to visually represent a newline without breaking to a new line.

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree-property :matches(.formatted-string, .formatted-regexp)): Deleted.

11:46 AM Changeset in webkit [279293] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.20.2

Tag Safari-612.1.20.2.

11:45 AM Changeset in webkit [279292] by Ruben Turcios
  • 2 edits in branches/safari-612.1.20-branch/Source/WebCore/PAL

Cherry-pick r279290. rdar://problem/79788549

Unreviewed, fix the macOS Monterey build

Some internal builders are still attempting to build WebKit for macOS Monterey using an SDK without the fix for
rdar://74299451. Restore the forward staging declaration for -initWithDataProvider:contentType:previewTitle:
in the meantime.

  • pal/spi/mac/QuickLookMacSPI.h:

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

11:42 AM Changeset in webkit [279291] by Ruben Turcios
  • 8 edits in branches/safari-612.1.20-branch/Source

Versioning.

WebKit-7612.1.20.2

11:08 AM Changeset in webkit [279290] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed, fix the macOS Monterey build

Some internal builders are still attempting to build WebKit for macOS Monterey using an SDK without the fix for
rdar://74299451. Restore the forward staging declaration for -initWithDataProvider:contentType:previewTitle:
in the meantime.

  • pal/spi/mac/QuickLookMacSPI.h:
10:55 AM Changeset in webkit [279289] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

WIRELESS_PLAYBACK_TARGET guards protect unrelated code
https://bugs.webkit.org/show_bug.cgi?id=227404

Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-25
Reviewed by Eric Carlson.

The dispatchEvent(), addEventListener() and removeEventListener() are now unconditionally
implemented. The WIRELESS_PLAYBACK_TARGET guards were refactored to enclose only the code
specific to this feature.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::setWirelessPlaybackTarget):
(WebCore::HTMLMediaElement::setShouldPlayToPlaybackTarget):
(WebCore::HTMLMediaElement::playbackTargetPickerWasDismissed):
(WebCore::HTMLMediaElement::remoteHasAvailabilityCallbacksChanged):
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):

  • html/HTMLMediaElement.h:
10:12 AM Changeset in webkit [279288] by Ryan Haddad
  • 67 edits in trunk/Source

Unreviewed, reverting r279208.
https://bugs.webkit.org/show_bug.cgi?id=227381

Broke the Apple Windows build.

Reverted changeset:

"Not all uses of AudioToolbox framework use soft linking"
https://bugs.webkit.org/show_bug.cgi?id=227250
https://trac.webkit.org/changeset/279208

9:31 AM Changeset in webkit [279287] by Peng Liu
  • 4 edits in trunk/Source/WebKit

Explicitly invalidate WKFullScreenViewController after a video exits fullscreen
https://bugs.webkit.org/show_bug.cgi?id=227372

Reviewed by Eric Carlson.

Since WKFullScreenWindowController owns WKFullScreenViewController,
we had better let WKFullScreenWindowController manage the life cycle
of WKFullScreenViewController.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.h:
  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController initWithWebView:]):
(-[WKFullScreenViewController invalidate]):
(-[WKFullScreenViewController dealloc]):
(-[WKFullScreenViewController showUI]):
(-[WKFullScreenViewController hideUI]):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController setAnimatingViewAlpha:]):
(-[WKFullScreenViewController setPrefersStatusBarHidden:]):
(-[WKFullScreenViewController setPrefersHomeIndicatorAutoHidden:]):
(-[WKFullScreenViewController setPlaying:]):
(-[WKFullScreenViewController setPictureInPictureActive:]):
(-[WKFullScreenViewController setAnimating:]):
(-[WKFullScreenViewController _manager]):
(-[WKFullScreenViewController _effectiveFullscreenInsets]):
(-[WKFullScreenViewController _cancelAction:]):
(-[WKFullScreenViewController _togglePiPAction:]):
(-[WKFullScreenViewController _touchDetected:]):
(-[WKFullScreenViewController _statusBarFrameDidChange:]):
(-[WKFullScreenViewController _updateWebViewFullscreenInsets]):
(-[WKFullScreenViewController _showPhishingAlert]):

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _completedExitFullScreen]):

8:42 AM Changeset in webkit [279286] by svillar@igalia.com
  • 5 edits in trunk

[css-flexbox] Improve computation of intrinsic sizes of flex items with aspect ratio
https://bugs.webkit.org/show_bug.cgi?id=227395

Reviewed by Rob Buis.

Source/WebCore:

Before computing the intrinsic sizes of flex items we first clear the overriding sizes of the item
that might have been set before in order to get the proper intrinsic size. However there is one
situation in which having an overriding size is desirable and it's when the cross size should
be set to the flex container's definite cross size. That's one of the exceptions for definite/indefinite
sizes mentioned in the specs (see https://drafts.csswg.org/css-flexbox/#definite-sizes).

In the aforementioned case we should temporarily set that overriding size in the cross axis so that
the intrinsic size could be computed with that constrain.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeChildIntrinsicLogicalWidths const): Set the overriding size
in the cross axis to compute the intrinsic size.
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): Added a missing check,
the cross size of the child must be auto, otherwise the rule does not apply.
(WebCore::RenderFlexibleBox::computeCrossSizeForChildUsingContainerCrossSize const): Refactored from
computeMainSizeFromAspectRatioUsing() as it's now used in two different places.

  • rendering/RenderFlexibleBox.h:

LayoutTests:

8:39 AM Changeset in webkit [279285] by Philippe Normand
  • 4 edits in trunk/Source/WebCore

[GStreamer] TextCombiner has unlinked internal encoders
https://bugs.webkit.org/show_bug.cgi?id=227362

Reviewed by Xabier Rodriguez-Calvar.

Each combiner pad can receive multiple caps events for the same stream, so we can't really
rely on those to modify the internal topology of the combiner. Instead we can check the
sticky events from the pad chain function, this is done at most once per pad. In case a caps
event was sticked to the pad, the combiner now reacts properly.

This issue was detected while running
media/track/in-band/track-in-band-kate-ogg-cues-added-once.html with playbin3 enabled. 6
different encoders where added to the combiner while only 2 are needed actually.

  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp:

(webKitTextCombinerHandleCaps):

  • platform/graphics/gstreamer/TextCombinerGStreamer.h:
  • platform/graphics/gstreamer/TextCombinerPadGStreamer.cpp:

(webkitTextCombinerPadChain):
(webkitTextCombinerPadConstructed):

8:28 AM Changeset in webkit [279284] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=226821

Reviewed by Ryosuke Niwa.

Source/WebCore:

r276394 fixed an issue in serialization when transversing the nodes. It added a new condition
to the ASSERT that was checking that its OK not to have a next pointer when there is a valid
pastEnd in the case of pastEnd being a descendant of the pointer traversing the node tree.

However that descendant check was not including the shadow DOM. This is precisely the case
detected by the test case this patch is adding.

Test: editing/selection/setSelection-shadow-dom-crash.html

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

LayoutTests:

  • editing/selection/setSelection-shadow-dom-crash-expected.txt: Added.
  • editing/selection/setSelection-shadow-dom-crash.html: Added.
8:12 AM Changeset in webkit [279283] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Build warnings in AudioFileReader since r279123
https://bugs.webkit.org/show_bug.cgi?id=227348

Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-25
Reviewed by Xabier Rodriguez-Calvar.

Simplify the code handling the giostreamsrc creation, now that it is the only option possible.

  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::decodeAudioForBusCreation):

8:06 AM Changeset in webkit [279282] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Unreviewed, reverting r279266.
https://bugs.webkit.org/show_bug.cgi?id=227402

Causes crash loop

Reverted changeset:

"Remove references to order files"
https://bugs.webkit.org/show_bug.cgi?id=227377
https://trac.webkit.org/changeset/279266

7:51 AM Changeset in webkit [279281] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GStreamer gardening

  • platform/glib/TestExpectations: Mark a mediastream as flaky.
7:51 AM Changeset in webkit [279280] by Ziran Sun
  • 2 edits in trunk/Tools

Add myself to contributor list
https://bugs.webkit.org/show_bug.cgi?id=227400

Reviewed by Sergio Villar Senin.

  • Scripts/webkitpy/common/config/contributors.json:
7:08 AM Changeset in webkit [279279] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

[GLib] Guard Cairo inclusions in shared GLib API implementation files
https://bugs.webkit.org/show_bug.cgi?id=227370

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-06-25
Reviewed by Philippe Normand.

For cross-port GLib API implementation, different Cairo inclusions are
moved into appropriate build guards tha match the build guards where
Cairo is then used.

  • UIProcess/API/glib/WebKitFaviconDatabase.cpp:
  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::handleGPU):

  • UIProcess/API/glib/WebKitWebView.cpp:
6:58 AM Changeset in webkit [279278] by Ziran Sun
  • 6 edits in trunk

[css-grid] Consider container's writing mode to get grid item's margin
https://bugs.webkit.org/show_bug.cgi?id=226877

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Update test results.

  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-008-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-011-expected.txt:

Source/WebCore:

When computing the logical offset of a non-static absolute positioned grid item, we need
to pass its container's style in order to resolve the child margin correctly, especially
for the case when the item has flipped block writing mode (vertical-rl).

This change is an import of the Chromium change at
https://chromium-review.googlesource.com/c/chromium/src/+/2577365

  • rendering/RenderBox.h:

(WebCore::RenderBox::marginLogicalLeft const):
(WebCore::RenderBox::marginLogicalRight const):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::logicalOffsetForOutOfFlowChild const):

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

[GStreamer] Minor debugging improvements in mediastream source element
https://bugs.webkit.org/show_bug.cgi?id=227396

Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-25
Reviewed by Xabier Rodriguez-Calvar.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: Give representative name to

the appsrc elements embedded in the MediaStreamSource element. Also add logging calls
related with tracks observation.

5:37 AM Changeset in webkit [279276] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Unskip structure-storedPrototype-should-only-assert-on-the-mutator-thread.js on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227222

Tested with 50 iterations in both arm and mips.

Unreviewed Gardening.

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-25

  • stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js:
5:28 AM Changeset in webkit [279275] by Paulo Matos
  • 2 edits in trunk/JSTests

Unskip materialized-regexp-has-correct-last-index-set-by-match on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227213

Unreviewed Gardening.

  • stress/materialized-regexp-has-correct-last-index-set-by-match.js:
4:22 AM Changeset in webkit [279274] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[css-flexbox] Cleanup OverridingSizesScope RAII class
https://bugs.webkit.org/show_bug.cgi?id=227394

Reviewed by Rob Buis.

In r279268 we added a new RAII class which adds an overriding sizes free scope to perform
layout computations. That class heavily uses the different set/get/clear methods for overriding
sizes. We can use a macro with subsitutions there to reduce the amount of required code.

Also moving the computeChildIntrinsicLogicalWidths() method to the private section as it does
not require protected visibility.

No new tests as it's just a code refactoring that does not modify the functionality.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::OverridingSizesScope::OverridingSizesScope):
(WebCore::OverridingSizesScope::~OverridingSizesScope):
(WebCore::OverridingSizesScope::setOrClearOverridingSize): Deleted.

  • rendering/RenderFlexibleBox.h:
2:55 AM Changeset in webkit [279273] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Unskip materialize-regexp-cyclic-regexp.js on ARM and MIPS
https://bugs.webkit.org/show_bug.cgi?id=227223

Tested with 50 iterations in both arm and mips.

Unreviewed Gardening.

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-25

  • stress/materialize-regexp-cyclic-regexp.js:
2:03 AM Changeset in webkit [279272] by Martin Robinson
  • 2 edits in trunk/Source/WebCore

[css-scroll-snap] Simplify snap point selection helpers
https://bugs.webkit.org/show_bug.cgi?id=227062

Reviewed by Frédéric Wang.

Combine indicesOfNearestSnapOffsets and findFirstSnapStopOffsetBetweenOriginAndDestination
and have the helper return the geometric previous and next snap points. This makes the
code a bit easier to read, slightly more efficient, and prepares for looking at
the geometric previous and next snap points for certain upcoming CSS Scroll Snap features.

Previously, indicesOfNearestSnapOffsets used a binary search and findFirstSnapStopOffsetBetweenOriginAndDestination
used a linear search. This change replaces these two functions with a single linear search.
While findFirstSnapStopOffsetBetweenOriginAndDestination is only called for directional scrolling,
directional scrolling is more common than non-directional scrolling (which is typically only called
by scrollIntoView() and other JS scrolling APIs). I have tested this change with a large table of
snap points and performance does not seem to be changed. In addition, a future change should mean
that this searchForPotentialSnapPoints should be called much less.

No new tests. This should not change behavior in any way.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::searchForPotentialSnapPoints): Added this new helper which is the combination
of indicesOfNearestSnapOffsets and findFirstSnapStopOffsetBetweenOriginAndDestination.
(WebCore::closestSnapOffsetWithInfoAndAxis): Use the new helper.

1:59 AM Changeset in webkit [279271] by svillar@igalia.com
  • 4 edits in trunk

[css-flexbox] Do not clamp flex base size with {min|max}-{height|width}
https://bugs.webkit.org/show_bug.cgi?id=225590

Reviewed by Alan Bujtas.

Source/WebCore:

When computing flex base size we should not clamp it with neither min-{height|width}
nor max-{height|width}. That would be done later and will be called the hypothetical
main size.

For most of the cases we were already doing it, however there are some particular cases
in which we have to call the generic layout code which does clamp the sizes using min
and max sizes. In order to make those code paths work, we reset the min|max values to
their initial ones (so they effectively become inactive) and then we set the original
values back after computing the base size.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::ScopedUnboundedBox::ScopedUnboundedBox): New scoped class that sets min|max sizes
to their initial values on instantiation and restores the original values on destruction.
(WebCore::ScopedUnboundedBox::~ScopedUnboundedBox):
(WebCore::RenderFlexibleBox::constructFlexItems): Wrap the base size computation with a
ScopedUnboundedBox.

LayoutTests:

The patch allows us to pass 3 new tests. We're adding percentage-max-height-003.html to
the list of expected failures because these changes make it fail. This is not really a
regression however because although the size of the deepest flex item was correct (and thus
allowed us to pass the test) the other sizes were completely wrong. So it's more an issue
of the test not being complete enough and passing artificially than anything else.

1:43 AM Changeset in webkit [279270] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening, mark more WebXR tests as unsupported
https://bugs.webkit.org/show_bug.cgi?id=227358

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-25

  • platform/gtk/TestExpectations:
1:31 AM Changeset in webkit [279269] by Ziran Sun
  • 86 edits
    3 copies
    330 adds in trunk/LayoutTests

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

Reviewed by Sergio Villar Senin and Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/descendant-static-position-004-expected.html:
  • web-platform-tests/css/css-grid/abspos/descendant-static-position-004.html:
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-safe-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-safe-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-002-expected.xht: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-003-expected.xht: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-004-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-004.html: Added.
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-013-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-015-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-018-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-018.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-019-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-019.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-020-expected.xht: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-020.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-021-expected.xht: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-021.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-022-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-022.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-001-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-001.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-002-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-002.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-003-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-negative-indices-003.html: Added.
  • web-platform-tests/css/css-grid/abspos/support/colors-8x16.png: Added.
  • web-platform-tests/css/css-grid/abspos/support/w3c-import.log:
  • web-platform-tests/css/css-grid/abspos/w3c-import.log:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html:
  • web-platform-tests/css/css-grid/alignment/grid-baseline-004-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-baseline-004.html:
  • web-platform-tests/css/css-grid/alignment/grid-baseline-align-cycles-001.html:
  • web-platform-tests/css/css-grid/alignment/grid-content-alignment-overflow-002-expected.txt: Added.
  • web-platform-tests/css/css-grid/alignment/grid-content-alignment-overflow-002.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-content-distribution-026-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
  • web-platform-tests/css/css-grid/alignment/grid-content-distribution-026.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-content-distribution-027-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/alignment/grid-content-distribution-027.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-content-distribution-028-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/alignment/grid-content-distribution-028.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-gutters-015-expected.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-gutters-015.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-gutters-016-expected.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-gutters-016.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-001-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-001.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-002-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-002.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-expected.txt: Added.
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-008-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-008.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-012-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-012.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-016-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-016.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment.html: Added.
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html:
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-001-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-001.html: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-002-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-002.html: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-003.tentative-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-003.tentative.html: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-004-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-004.html: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-005-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-005.html: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-006-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-006.html: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-007-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-007.html: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-008-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-008.html: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-009-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/replaced-alignment-with-aspect-ratio-009.html: Added.
  • web-platform-tests/css/css-grid/alignment/support/25x50-green.png: Added.
  • web-platform-tests/css/css-grid/alignment/support/50x50-green.png: Added.
  • web-platform-tests/css/css-grid/alignment/support/w3c-import.log:
  • web-platform-tests/css/css-grid/alignment/w3c-import.log:
  • web-platform-tests/css/css-grid/dynamic-grid-with-auto-fill-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/dynamic-grid-with-auto-fill.html: Added.
  • web-platform-tests/css/css-grid/dynamic-grid-within-flexbox-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/dynamic-grid-within-flexbox.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-aspect-ratio-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-aspect-ratio-001.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-aspect-ratio-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-aspect-ratio-002.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-001.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-002.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-dynamic-003.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-003-expected.txt: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-003.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-004-expected.txt: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-004.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-004-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-004.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-005-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-005.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-repeat-max-width-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-definition/grid-repeat-max-width-001.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html:
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html:
  • web-platform-tests/css/css-grid/grid-items/aspect-ratio-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-items/aspect-ratio-001.html: Added.
  • web-platform-tests/css/css-grid/grid-items/aspect-ratio-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-items/aspect-ratio-002.html: Added.
  • web-platform-tests/css/css-grid/grid-items/aspect-ratio-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-items/aspect-ratio-003.html: Added.
  • web-platform-tests/css/css-grid/grid-items/aspect-ratio-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-items/aspect-ratio-004.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-001-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-001.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-002.tentative-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-002.tentative.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-003.tentative-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-003.tentative.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-015-expected.txt: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-015.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-001-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-001.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-002-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-002.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-007-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-007.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-010-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-010.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-011-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-011.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-012-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-012.html: Added.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-013-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-items/replaced-element-013.html: Added.
  • web-platform-tests/css/css-grid/grid-items/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-003-expected.html:
  • web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-003.html:
  • web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-009-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-003-expected.html.
  • web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-009.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-model/grid-areas-overflowing-grid-container-003.html.
  • web-platform-tests/css/css-grid/grid-model/grid-button-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-model/grid-overflow-padding-001.html:
  • web-platform-tests/css/css-grid/grid-model/grid-overflow-padding-002.html:
  • web-platform-tests/css/css-grid/grid-model/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-within-flexbox-definite-change-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
  • web-platform-tests/css/css-grid/grid-within-flexbox-definite-change.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-002.html:
  • web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-003.html:
  • web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-004.html:
  • web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-005.html:
  • web-platform-tests/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-006.html:
  • web-platform-tests/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-001-expected.txt:
  • web-platform-tests/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-001.html:
  • web-platform-tests/css/css-grid/layout-algorithm/flex-sizing-rows-indefinite-height-expected.xht: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/flex-sizing-rows-indefinite-height.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-002-expected.txt:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-002.html:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001-expected.txt:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001.html:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-002-expected.txt:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-002.html:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-size-with-orthogonal-items-expected.txt:
  • web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-size-with-orthogonal-items.html:
  • web-platform-tests/css/css-grid/layout-algorithm/w3c-import.log:
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-003-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-003.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-004-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-004.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-multi-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-multi-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-003-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-003.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-004-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-004.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-005-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-005.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-006-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-006.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-gap-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-gap-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-content-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-content-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002a-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002a.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002b-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002b.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-template-columns-computed-withcontent-expected.txt: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-template-columns-computed-withcontent.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-003-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-003.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-004-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-004.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-005-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-005.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-006-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-006.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-003-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-003.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-004-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-004.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-005-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-005.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-006-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-006.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-007-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-007.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-003-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-003.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-004-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-004.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-multi-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-multi-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-order-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-order-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-order-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-order-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-parsing-expected.txt: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-parsing.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002-expected.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002.html: Added.
  • web-platform-tests/css/css-grid/masonry/tentative/w3c-import.log: Added.
  • web-platform-tests/css/css-grid/subgrid/abs-pos-004-expected.html: Added.
  • web-platform-tests/css/css-grid/subgrid/abs-pos-004.html: Added.
  • web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-004-expected.html: Added.
  • web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-004.html: Added.
  • web-platform-tests/css/css-grid/subgrid/w3c-import.log:
  • web-platform-tests/css/css-grid/support/grid-child-utils.js:
  • web-platform-tests/css/css-grid/table-grid-item-005-expected.txt: Added.
  • web-platform-tests/css/css-grid/table-grid-item-005.html: Added.
  • web-platform-tests/css/css-grid/table-grid-item-dynamic-002-expected.html: Added.
  • web-platform-tests/css/css-grid/table-grid-item-dynamic-002.html: Added.
  • web-platform-tests/css/css-grid/table-grid-item-dynamic-003-expected.html: Added.
  • web-platform-tests/css/css-grid/table-grid-item-dynamic-003.html: Added.
  • web-platform-tests/css/css-grid/table-grid-item-dynamic-004-expected.html: Added.
  • web-platform-tests/css/css-grid/table-grid-item-dynamic-004.html: Added.
  • web-platform-tests/css/css-grid/w3c-import.log:

LayoutTests:

1:09 AM Changeset in webkit [279268] by svillar@igalia.com
  • 5 edits in trunk/Source/WebCore

[css-flexbox] Move flex item preferred width computation specifics to RenderFlexibleBox class
https://bugs.webkit.org/show_bug.cgi?id=226822

Reviewed by Alan Bujtas.

RenderBlock had some specific code for flex items that cleared the overriding sizes before
computing the {min|max}PreferredWidths and then restored them afterwards. That is done to
properly compute flex items intrinsic sizes. That code is flexbox specific so we better move
it to RenderFlexibleBox. In order to do that a new virtual method was added to RenderBlock which
just calls minPreferredLogicalWidth() and maxPreferredLogicalWidth() for every block except
flexbox containers.

In the case of flexbox containers, it wraps those calls with a RAII class that properly
clears the overriding sizes on instantiation and clears them on destruction. Now that the RAII
class is available we use it also for another existing code path that requires to
temporarily set an overriding size in a given scope.

No need for new tests as there is no change in behaviour.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeChildIntrinsicLogicalWidths const): New virtual method.
(WebCore::RenderBlock::computeChildPreferredLogicalWidths const): Call computeChildIntrinsicLogicalWidths().

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

(WebCore::OverridingSizesScope::OverridingSizesScope): New RAII class to set/clear overriding sizes in a scope.
(WebCore::OverridingSizesScope::~OverridingSizesScope):
(WebCore::OverridingSizesScope::setOrClearOverridingSize):
(WebCore::RenderFlexibleBox::computeChildIntrinsicLogicalWidths const): Redefinition for flexbox containers.
(WebCore::RenderFlexibleBox::childIntrinsicLogicalHeight const): Removed constness from attribute.
(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth): Ditto.
(WebCore::RenderFlexibleBox::crossAxisIntrinsicExtentForChild): Ditto.

  • rendering/RenderFlexibleBox.h:
12:13 AM Changeset in webkit [279267] by graouts@webkit.org
  • 13 edits in trunk/Source

[Model] Create a sandbox extension for a temporary directory to store model resources
https://bugs.webkit.org/show_bug.cgi?id=227359

Reviewed by Tim Horton.

The SPIs we will use to render <model> resources expect a file URL to load and render the model.
Before we adopt these SPIs, we extend the sandbox to allow writing to a temporary directory where
we will store these resources.

Source/WebCore:

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::sharedModelElementCacheDirectory):
(WebCore::HTMLModelElement::setModelElementCacheDirectory):
(WebCore::HTMLModelElement::modelElementCacheDirectory):

  • Modules/model-element/HTMLModelElement.h:

Source/WebKit:

  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultModelElementCacheDirectory):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resolvedModelElementCacheDirectory const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::modelElementCacheDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setModelElementCacheDirectory):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):

Jun 24, 2021:

8:30 PM Changeset in webkit [279266] by sihui_liu@apple.com
  • 8 edits in trunk/Source

Remove references to order files
https://bugs.webkit.org/show_bug.cgi?id=227377
rdar://76070556

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • Configurations/JavaScriptCore.xcconfig:

Source/WebCore:

We don't need to refer to order files on iOS now.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

  • Configurations/WebKit.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:
7:23 PM Changeset in webkit [279265] by commit-queue@webkit.org
  • 18 edits
    1 add in trunk

[WASM-Function-References] Add support for (ref null? $t) type constructor
https://bugs.webkit.org/show_bug.cgi?id=226296

JSTests:

Adds additional tests for uses of (ref $t) and (ref null $t)
types, including with non-null extern/funcrefs.

Patch by Asumu Takikawa <asumu@igalia.com> on 2021-06-24
Reviewed by Yusuke Suzuki.

  • wasm/function-references/ref_types.js: Added.

(module):
(async testRefTypeLocal):
(async testNonNullRefTypeLocal):
(async testRefTypeInSignature):
(async testRefTypeParamCheck):
(async testRefGlobalCheck):
(async testExternFuncrefNonNullCheck):
(async testExternrefCompatibility):
(async testNonNullExternrefIncompatible):
(async testFuncrefCompatibility):
(async testNonNullFuncrefIncompatible):

  • wasm/wasm.json:

Source/JavaScriptCore:

Patch by Asumu Takikawa <asumu@igalia.com> on 2021-06-24
Reviewed by Yusuke Suzuki.

Adds the ref type constructor from the typed function references proposal:

https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md

It's also required for the type imports and GC proposals as well. Ref types represent
references to any heap type (including existing funcref and externref) with a specified
nullability.

This requires a new isNullable flag in the type representation. This flag also enables
non-null externref and funcrefs, and hence this commit also adds the necessary checks
at Wasm/JS boundaries.

Non-null reference types also generally cannot be used as function locals.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::gTypeIdx):
(JSC::Wasm::AirIRGenerator::tmpForType):
(JSC::Wasm::AirIRGenerator::emitCCall):
(JSC::Wasm::AirIRGenerator::moveOpForValueType):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addLocal):
(JSC::Wasm::AirIRGenerator::addConstant):
(JSC::Wasm::AirIRGenerator::addRefFunc):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::WasmCallingConvention::marshallLocation const):
(JSC::Wasm::JSCallingConvention::marshallLocation const):

  • wasm/WasmFormat.h:

(JSC::Wasm::isSubtype):
(JSC::Wasm::isValidHeapTypeKind):
(JSC::Wasm::isDefaultableType):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parse):
(JSC::Wasm::FunctionParser<Context>::parseAnnotatedSelectImmediates):
(JSC::Wasm::FunctionParser<Context>::checkBranchTarget):
(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmGlobal.cpp:

(JSC::Wasm::Global::get const):
(JSC::Wasm::Global::set):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::parseBlockSignature):
(JSC::Wasm::Parser<SuccessType>::parseValueType):
(JSC::Wasm::Parser<SuccessType>::parseRefType):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseType):
(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::parseInitExpr):
(JSC::Wasm::SectionParser::parseElementSegmentVectorOfExpressions):
(JSC::Wasm::SectionParser::parseGlobalType):

  • wasm/WasmSignature.cpp:

(JSC::Wasm::computeHash):

  • wasm/generateWasmOpsHeader.py:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyFunctionBase.h:

(JSC::WebAssemblyFunctionBase::offsetOfSignatureIndex):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::linkImpl):

  • wasm/wasm.json:
6:27 PM Changeset in webkit [279264] by Ruben Turcios
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.21

6:26 PM Changeset in webkit [279263] by Ruben Turcios
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.22

6:22 PM Changeset in webkit [279262] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.20.1

Tag Safari-612.1.20.1.

6:18 PM Changeset in webkit [279261] by Ruben Turcios
  • 8 edits in branches/safari-612.1.20-branch/Source

Versioning.

WebKit-7612.1.20.1

5:52 PM Changeset in webkit [279260] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.15.4.5

Tag Safari-612.1.15.4.5.

5:50 PM Changeset in webkit [279259] by Kocsen Chung
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebCore

Cherry-pick r278838. rdar://problem/79228536

[AppleWin] Fix build failure
https://bugs.webkit.org/show_bug.cgi?id=226966
<rdar://79228536>

Reviewed by Eric Carlson.

Disable warning causing the build failure.

  • platform/cf/MediaAccessibilitySoftLink.h:

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

5:46 PM Changeset in webkit [279258] by Kocsen Chung
  • 8 edits in branches/safari-612.1.15.4-branch/Source

Versioning.

WebKit-7612.1.15.4.5

5:33 PM Changeset in webkit [279257] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION: (r279244) [ Mac ] http/tests/workers/service/postmessage-after-terminate.https.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=227380
<rdar://problem/79748648>

Unreviewed, drop protector added in r279244 inside establishServiceWorkerContext() as it is what caused this test
to time out. I am not sure why this is happening yet but I am doing this partial revert to get us back in a good
state.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::establishServiceWorkerContext):

5:06 PM Changeset in webkit [279256] by mark.lam@apple.com
  • 17 edits
    1 add in trunk/Source/JavaScriptCore

Use ldp and stp more for saving / restoring registers on ARM64.
https://bugs.webkit.org/show_bug.cgi?id=227039
rdar://79354736

Reviewed by Saam Barati.

This patch introduces a spooler abstraction in AssemblyHelpers. The spooler
basically batches up load / store operations and emit them as pair instructions
if appropriate.

There are 4 spooler classes:

  1. Spooler
    • template base class for LoadRegSpooler and StoreRegSpooler.
    • encapsulates the batching strategy for load / store pairs.
  1. LoadRegSpooler - specializes Spooler to handle load pairs.
  2. StoreRegSpooler - specializes Spooler to handle store pairs.
  1. CopySpooler
    • handles matching loads with stores.
    • tries to emit loads as load pairs if possible.
    • tries to emot stores as store pairs if possible.
    • ensures that pre-requisite loads are emitted before stores are emitted.
    • other than loads, also support constants and registers as sources of values to be stored. This is useful in OSR exit ramps where we may materialize a stack value to store from constants or registers in addition to values we load from the old stack frame or from a scratch buffer.

In this patch, we also do the following:

  1. Use spoolers in many places so that we can emit load / store pairs instead of single load / stores. This helps shrink JIT code side, and also potentially improves performance.
  1. In DFG::OSRExit::compileExit(), we used to recover constants into a scratch buffer, and then later, load from that scratch buffer to store into the new stack frame(s).

This patch changes it so that we defer constant recovery until the final
loop where we store the recovered value directly into the new stack frame(s).
This saves us the work (and JIT code space) for storing into a scratch buffer
and then reloading from the scratch buffer.

There is one exception: tmp values used by active checkpoints. We need to call
operationMaterializeOSRExitSideState() to materialize the active checkpoint
side state before the final loop where we now recover constants. Hence, we
need these tmp values recovered before hand.

So, we check upfront if we have active checkpoint side state to materialize.
If so, we'll eagerly recover the constants for initializing those tmps.

We also use the CopySpooler in the final loop to emit load / store pairs for
filling in the new stack frame(s).

One more thing: it turns out that the vast majority of constants to be recovered
is simply the undefined value. So, as an optimization, the final loop keeps
the undefined value in a register, and has the spooler store directly from
that register when appropriate. This saves on JIT code to repeatedly materialize
the undefined JSValue constant.

  1. In reifyInlinedCallFrames(), replace the use of GPRInfo::nonArgGPR0 with GPRInfo::regT4. nonArgGPRs are sometimes map to certain regTXs on certain ports. Replacing with regT4 makes it easier to ensure that we're not trashing the register when we use more temp registers.

reifyInlinedCallFrames() will be using emitSaveOrCopyLLIntBaselineCalleeSavesFor()
later where we need more temp registers.

  1. Move the following functions to AssemblyHelpers.cpp. They don't need to be inline functions. Speedometer2 and JetStream2 shows that making these non inline does not hurt performance:

AssemblyHelpers::emitSave(const RegisterAtOffsetList&);
AssemblyHelpers::emitRestore(const RegisterAtOffsetList&);
AssemblyHelpers::emitSaveCalleeSavesFor(const RegisterAtOffsetList*);
AssemblyHelpers::emitSaveOrCopyCalleeSavesFor(...);
AssemblyHelpers::emitRestoreCalleeSavesFor(const RegisterAtOffsetList*);
AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer(...);

Also renamed emitSaveOrCopyCalleeSavesFor() to emitSaveOrCopyLLIntBaselineCalleeSavesFor()
because it is only used with baseline codeBlocks.

Results:
Cummulative LinkBuffer profile sizes shrunk by ~2M in aggregate:

base new

===

BaselineJIT: 83827048 (79.943703 MB) => 83718736 (79.840408 MB)

DFG: 56594836 (53.973042 MB) => 56603508 (53.981312 MB)

InlineCache: 33923900 (32.352352 MB) => 33183156 (31.645924 MB)

FTL: 6770956 (6.457287 MB) => 6568964 (6.264652 MB)

DFGOSRExit: 5212096 (4.970642 MB) => 3728088 (3.555382 MB)

CSSJIT: 748428 (730.886719 KB) => 748428 (730.886719 KB)

FTLOSRExit: 692276 (676.050781 KB) => 656884 (641.488281 KB)

YarrJIT: 445280 (434.843750 KB) => 512988 (500.964844 KB)

FTLThunk: 22908 (22.371094 KB) => 22556 (22.027344 KB)

BoundFunctionThunk: 8400 (8.203125 KB) => 10088 (9.851562 KB)

ExtraCTIThunk: 6952 (6.789062 KB) => 6824 (6.664062 KB)

SpecializedThunk: 4508 (4.402344 KB) => 4508 (4.402344 KB)

Thunk: 3912 (3.820312 KB) => 3784 (3.695312 KB)

LLIntThunk: 2908 (2.839844 KB) => 2908 (2.839844 KB)

VirtualThunk: 1248 (1.218750 KB) => 1248 (1.218750 KB)

DFGThunk: 1084 (1.058594 KB) => 444

DFGOSREntry: 216 => 184

JumpIsland: 0

WasmThunk: 0

Wasm: 0

Uncategorized: 0

Total: 188266956 (179.545361 MB) => 185773296 (177.167221 MB)

Speedometer2 and JetStream2 results shows that performance is neutral for this
patch (as measured on an M1 Mac):

Speedometer2:


| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |


| Elm-TodoMVC |129.037500 |127.212500 |0.985857 | 0.012706 |
| VueJS-TodoMVC |28.312500 |27.525000 |0.972185 | 0.240315 |
| EmberJS-TodoMVC |132.550000 |132.025000 |0.996039 | 0.538034 |
| Flight-TodoMVC |80.762500 |80.875000 |1.001393 | 0.914749 |
| BackboneJS-TodoMVC |51.637500 |51.175000 |0.991043 | 0.285427 |
| Preact-TodoMVC |21.025000 |22.075000 |1.049941 | 0.206140 |
| AngularJS-TodoMVC |142.900000 |142.887500 |0.999913 | 0.990681 |
| Inferno-TodoMVC |69.300000 |69.775000 |1.006854 | 0.505201 |
| Vanilla-ES2015-TodoMVC |71.500000 |71.225000 |0.996154 | 0.608650 |
| Angular2-TypeScript-TodoMVC |43.287500 |43.275000 |0.999711 | 0.987926 |
| VanillaJS-TodoMVC |57.212500 |57.812500 |1.010487 | 0.333357 |
| jQuery-TodoMVC |276.150000 |276.775000 |1.002263 | 0.614404 |
| EmberJS-Debug-TodoMVC |353.612500 |352.762500 |0.997596 | 0.518836 |
| React-TodoMVC |93.637500 |92.637500 |0.989321 | 0.036277 |
| React-Redux-TodoMVC |158.237500 |156.587500 |0.989573 | 0.042154 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |68.050000 |68.087500 |1.000551 | 0.897149 |


a mean = 236.26950
b mean = 236.57964
pValue = 0.7830785938
(Bigger means are better.)
1.001 times better
Results ARE NOT significant

JetStream2:


| subtest | pts | pts | b / a | pValue (significance using False Discovery Rate) |


| gaussian-blur |542.570057 |542.671885 |1.000188 | 0.982573 |
| HashSet-wasm |57.710498 |64.406371 |1.116025 | 0.401424 |
| gcc-loops-wasm |44.516009 |44.453535 |0.998597 | 0.973651 |
| json-parse-inspector |241.275085 |240.720491 |0.997701 | 0.704732 |
| prepack-wtb |62.640114 |63.754878 |1.017796 | 0.205840 |
| date-format-xparb-SP |416.976817 |448.921409 |1.076610 | 0.052977 |
| WSL |1.555257 |1.570233 |1.009629 | 0.427924 |
| OfflineAssembler |177.052352 |179.746511 |1.015217 | 0.112114 |
| cdjs |192.517586 |194.598906 |1.010811 | 0.025807 |
| UniPoker |514.023694 |526.111500 |1.023516 | 0.269892 |
| json-stringify-inspector |227.584725 |223.619390 |0.982576 | 0.102714 |
| crypto-sha1-SP |980.728788 |984.192104 |1.003531 | 0.838618 |
| Basic |685.148483 |711.590247 |1.038593 | 0.142952 |
| chai-wtb |106.256376 |106.590318 |1.003143 | 0.865894 |
| crypto-aes-SP |722.308829 |728.702310 |1.008851 | 0.486766 |
| Babylon |655.857561 |654.204901 |0.997480 | 0.931520 |
| string-unpack-code-SP |407.837271 |405.710752 |0.994786 | 0.729122 |
| stanford-crypto-aes |456.906021 |449.993856 |0.984872 | 0.272994 |
| raytrace |883.911335 |902.887238 |1.021468 | 0.189785 |
| multi-inspector-code-load |409.997347 |405.643639 |0.989381 | 0.644447 |
| hash-map |593.590160 |601.576332 |1.013454 | 0.249414 |
| stanford-crypto-pbkdf2 |722.178638 |728.283532 |1.008453 | 0.661195 |
| coffeescript-wtb |42.393544 |41.869545 |0.987640 | 0.197441 |
| Box2D |452.034685 |454.104868 |1.004580 | 0.535342 |
| richards-wasm |140.873688 |148.394050 |1.053384 | 0.303651 |
| lebab-wtb |61.671318 |62.119403 |1.007266 | 0.620998 |
| tsf-wasm |108.592794 |119.498398 |1.100427 | 0.504710 |
| base64-SP |629.744643 |603.425565 |0.958207 | 0.049997 |
| navier-stokes |740.588523 |739.951662 |0.999140 | 0.871445 |
| jshint-wtb |51.938359 |52.651104 |1.013723 | 0.217137 |
| regex-dna-SP |459.251148 |463.492489 |1.009235 | 0.371891 |
| async-fs |235.853820 |236.031189 |1.000752 | 0.938459 |
| first-inspector-code-load |275.298325 |274.172125 |0.995909 | 0.623403 |
| segmentation |44.002842 |43.445960 |0.987344 | 0.207134 |
| typescript |26.360161 |26.458820 |1.003743 | 0.609942 |
| octane-code-load |1126.749036 |1087.132024 |0.964840 | 0.524171 |
| float-mm.c |16.691935 |16.721354 |1.001762 | 0.194425 |
| quicksort-wasm |461.630091 |450.161127 |0.975156 | 0.371394 |
| Air |392.442375 |412.201810 |1.050350 | 0.046887 |
| splay |510.111886 |475.131657 |0.931426 | 0.024732 |
| ai-astar |607.966974 |626.573181 |1.030604 | 0.468711 |
| acorn-wtb |67.510766 |68.143956 |1.009379 | 0.481663 |
| gbemu |144.133842 |145.620304 |1.010313 | 0.802154 |
| richards |963.475078 |946.658879 |0.982546 | 0.231189 |
| 3d-cube-SP |549.426784 |550.479154 |1.001915 | 0.831307 |
| espree-wtb |68.707483 |73.762202 |1.073569 | 0.033603 |
| bomb-workers |96.882596 |96.116121 |0.992089 | 0.687952 |
| tagcloud-SP |309.888767 |303.538511 |0.979508 | 0.187768 |
| mandreel |133.667031 |135.009929 |1.010047 | 0.075232 |
| 3d-raytrace-SP |491.967649 |492.528992 |1.001141 | 0.957842 |
| delta-blue |1066.718312 |1080.230772 |1.012667 | 0.549382 |
| ML |139.617293 |140.088630 |1.003376 | 0.661651 |
| regexp |351.773956 |351.075935 |0.998016 | 0.769250 |
| crypto |1510.474663 |1519.218842 |1.005789 | 0.638420 |
| crypto-md5-SP |795.447899 |774.082493 |0.973140 | 0.079728 |
| earley-boyer |812.574545 |870.678372 |1.071506 | 0.044081 |
| octane-zlib |25.162470 |25.660261 |1.019783 | 0.554591 |
| date-format-tofte-SP |395.296135 |398.008992 |1.006863 | 0.650475 |
| n-body-SP |1165.386611 |1150.525110 |0.987248 | 0.227908 |
| pdfjs |189.060252 |191.015628 |1.010343 | 0.633777 |
| FlightPlanner |908.426192 |903.636642 |0.994728 | 0.838821 |
| uglify-js-wtb |34.029399 |34.164342 |1.003965 | 0.655652 |
| babylon-wtb |81.329869 |80.855680 |0.994170 | 0.854393 |
| stanford-crypto-sha256 |826.850533 |838.494164 |1.014082 | 0.579636 |


a mean = 237.91084
b mean = 239.92670
pValue = 0.0657710897
(Bigger means are better.)
1.008 times better
Results ARE NOT significant

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::pushToSaveByteOffset):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::pushToSaveByteOffset):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLSaveRestore.cpp:

(JSC::FTL::saveAllRegisters):
(JSC::FTL::restoreAllRegisters):

  • ftl/FTLSaveRestore.h:
  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::restoreCalleeSavesFromEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesToEntryFrameCalleeSavesBufferImpl):
(JSC::AssemblyHelpers::emitSave):
(JSC::AssemblyHelpers::emitRestore):
(JSC::AssemblyHelpers::emitSaveCalleeSavesFor):
(JSC::AssemblyHelpers::emitRestoreCalleeSavesFor):
(JSC::AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::emitSaveOrCopyLLIntBaselineCalleeSavesFor):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::emitSave): Deleted.
(JSC::AssemblyHelpers::emitRestore): Deleted.
(JSC::AssemblyHelpers::emitSaveOrCopyCalleeSavesFor): Deleted.

  • jit/AssemblyHelpersSpoolers.h: Added.

(JSC::AssemblyHelpers::Spooler::Spooler):
(JSC::AssemblyHelpers::Spooler::handleGPR):
(JSC::AssemblyHelpers::Spooler::finalizeGPR):
(JSC::AssemblyHelpers::Spooler::handleFPR):
(JSC::AssemblyHelpers::Spooler::finalizeFPR):
(JSC::AssemblyHelpers::Spooler::op):
(JSC::AssemblyHelpers::LoadRegSpooler::LoadRegSpooler):
(JSC::AssemblyHelpers::LoadRegSpooler::loadGPR):
(JSC::AssemblyHelpers::LoadRegSpooler::finalizeGPR):
(JSC::AssemblyHelpers::LoadRegSpooler::loadFPR):
(JSC::AssemblyHelpers::LoadRegSpooler::finalizeFPR):
(JSC::AssemblyHelpers::LoadRegSpooler::handlePair):
(JSC::AssemblyHelpers::LoadRegSpooler::handleSingle):
(JSC::AssemblyHelpers::StoreRegSpooler::StoreRegSpooler):
(JSC::AssemblyHelpers::StoreRegSpooler::storeGPR):
(JSC::AssemblyHelpers::StoreRegSpooler::finalizeGPR):
(JSC::AssemblyHelpers::StoreRegSpooler::storeFPR):
(JSC::AssemblyHelpers::StoreRegSpooler::finalizeFPR):
(JSC::AssemblyHelpers::StoreRegSpooler::handlePair):
(JSC::AssemblyHelpers::StoreRegSpooler::handleSingle):
(JSC::RegDispatch<GPRReg>::get):
(JSC::RegDispatch<GPRReg>::temp1):
(JSC::RegDispatch<GPRReg>::temp2):
(JSC::RegDispatch<GPRReg>::regToStore):
(JSC::RegDispatch<GPRReg>::invalid):
(JSC::RegDispatch<GPRReg>::regSize):
(JSC::RegDispatch<GPRReg>::isValidLoadPairImm):
(JSC::RegDispatch<GPRReg>::isValidStorePairImm):
(JSC::RegDispatch<FPRReg>::get):
(JSC::RegDispatch<FPRReg>::temp1):
(JSC::RegDispatch<FPRReg>::temp2):
(JSC::RegDispatch<FPRReg>::regToStore):
(JSC::RegDispatch<FPRReg>::invalid):
(JSC::RegDispatch<FPRReg>::regSize):
(JSC::RegDispatch<FPRReg>::isValidLoadPairImm):
(JSC::RegDispatch<FPRReg>::isValidStorePairImm):
(JSC::AssemblyHelpers::CopySpooler::Source::getReg):
(JSC::AssemblyHelpers::CopySpooler::CopySpooler):
(JSC::AssemblyHelpers::CopySpooler::temp1 const):
(JSC::AssemblyHelpers::CopySpooler::temp2 const):
(JSC::AssemblyHelpers::CopySpooler::regToStore):
(JSC::AssemblyHelpers::CopySpooler::invalid):
(JSC::AssemblyHelpers::CopySpooler::regSize):
(JSC::AssemblyHelpers::CopySpooler::isValidLoadPairImm):
(JSC::AssemblyHelpers::CopySpooler::isValidStorePairImm):
(JSC::AssemblyHelpers::CopySpooler::load):
(JSC::AssemblyHelpers::CopySpooler::move):
(JSC::AssemblyHelpers::CopySpooler::copy):
(JSC::AssemblyHelpers::CopySpooler::store):
(JSC::AssemblyHelpers::CopySpooler::flush):
(JSC::AssemblyHelpers::CopySpooler::loadGPR):
(JSC::AssemblyHelpers::CopySpooler::copyGPR):
(JSC::AssemblyHelpers::CopySpooler::moveConstant):
(JSC::AssemblyHelpers::CopySpooler::storeGPR):
(JSC::AssemblyHelpers::CopySpooler::finalizeGPR):
(JSC::AssemblyHelpers::CopySpooler::loadFPR):
(JSC::AssemblyHelpers::CopySpooler::copyFPR):
(JSC::AssemblyHelpers::CopySpooler::storeFPR):
(JSC::AssemblyHelpers::CopySpooler::finalizeFPR):
(JSC::AssemblyHelpers::CopySpooler::loadPair):
(JSC::AssemblyHelpers::CopySpooler::storePair):

  • jit/ScratchRegisterAllocator.cpp:

(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
(JSC::ScratchRegisterAllocator::preserveRegistersToStackForCall):
(JSC::ScratchRegisterAllocator::restoreRegistersFromStackForCall):

  • jit/ScratchRegisterAllocator.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addReturn):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addReturn):

5:06 PM Changeset in webkit [279255] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Source/WebCore:
Crash in IDBTransaction::dispatchEvent when m_openDBRequest is null.
https://bugs.webkit.org/show_bug.cgi?id=226885

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-06-24
Reviewed by Sihui Liu.

Added a test to create null openDBRequest so that it can crash.

Test: storage/indexeddb/request-with-null-open-db-request.html

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::dispatchEvent):

LayoutTests:
Crash in IDBTransaction::dispatchEvent when m_openDBRequest is null.
https://bugs.webkit.org/show_bug.cgi?id=226885

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-06-24
Reviewed by Sihui Liu.

  • storage/indexeddb/request-with-null-open-db-request-expected.txt: Added.
  • storage/indexeddb/request-with-null-open-db-request.html: Added.
4:55 PM Changeset in webkit [279254] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Crash in WebFrameLoaderClient::dispatchDidStartProvisionalLoad after provisionalLoader is gone.
https://bugs.webkit.org/show_bug.cgi?id=226979

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-06-24
Reviewed by Ryosuke Niwa.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):

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

Unreviewed, build fix for ARM64
https://bugs.webkit.org/show_bug.cgi?id=227201

  • ftl/FTLLowerDFGToB3.cpp:

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

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::cageWithoutUntagging):
(JSC::AssemblyHelpers::cageConditionallyAndUntag):

4:12 PM Changeset in webkit [279252] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebKit

[GPU Process] RELEASE_ASSERT in RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may fire if GPUP is relaunched
https://bugs.webkit.org/show_bug.cgi?id=227229
<rdar://79147947>

Reviewed by Myles C. Maxfield.

When the GPUP is relaunched remoteResourceCacheWasDestroyed() clears
m_fontIdentifierToLastRenderingUpdateVersionMap but it does not reset
m_numberOfFontsUsedInCurrentRenderingUpdate. This will make it always
greater than m_fontIdentifierToLastRenderingUpdateVersionMap.size().
And this is why the assertion fires.

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):

4:11 PM Changeset in webkit [279251] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE Metal] - Set barriers on transform feedback buffers only up to the in use buffer count
https://bugs.webkit.org/show_bug.cgi?id=227272
<rdar://79587861>

Patch by John Cunningham <johncunningham@apple.com> on 2021-06-24
Reviewed by Dean Jackson.

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

(rx::ContextMtl::onEndTransformFeedback):

4:07 PM Changeset in webkit [279250] by jer.noble@apple.com
  • 4 edits
    5 adds in trunk

[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis' appended to a SampleBuffer are not played
https://bugs.webkit.org/show_bug.cgi?id=226069
<rdar://78004793>

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac-bigsur/media/media-source/media-vorbis-partial.html

When parsing samples from a WebM file, the samples emitted by the parser can be very short in
duration, which is ineffecient both in storage costs in our SampleMap, as well as in decoding
CPU costs, as each sample must be fed into the decoder separately. So the parser will group
together these small samples into a larger "meta sample" with a duration no shorter than 2s.

However, at the end of a file, no more sample data will be appended, up to 2s of audio data
will not be emitted from the parser.

At the end of an append, always flush audio track data to ensure that all parsed samples are
emitted, regardless of their collective duration.

Drive-by Fixes:

  • createSampleBuffer() would completely empty m_packetData, which would corrupt the parser state in the case where there was partial frame data read (because that partial data would be cleared) Instead, remove only the data from the m_packetData that actually went into the CMSampleBuffer
  • createSampleBuffer() would use the entire m_packetData to create a CMSampleBuffer, even if partial data was read but not yet complete. Only use the fully parsed data to create the CMSampleBuffer.
  • consumeFrameData() would only increase the size of m_packetData when m_currentPacketSize was unset, which would leave the buffer zeroed when partial sample data was present. Always grow m_packetData to be large enough to receive the read data.
  • The Read() method would not return the correct number of bytes read (0) when a null destination buffer was passed in.
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer):

LayoutTests:

  • platform/mac/TestExpectations:
  • platform/mac/media/media-source/content/test-vorbis-manifest.json: Added.
  • platform/mac/media/media-source/content/test-vorbis.webm: Added.
  • platform/mac/media/media-source/media-vorbis-partial-expected.txt: Added.
  • platform/mac/media/media-source/media-vorbis-partial.html: Added.
3:50 PM Changeset in webkit [279249] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

Add a new pattern to instruction selector to utilize BFI supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227201

Patch by Yijia Huang <Yijia Huang> on 2021-06-24
Reviewed by Filip Pizlo.

Bitfield insert(BFI), leaving other bits unchanged. The instruction selector
can utilize this to lowering certain patterns in B3 IR before further Air
optimization. Given the operation:

bfi d, n, lsb, width

The equivalent pattern would be:

Pattern 1:

mask1 = ((1 << width) - 1) << lsb
mask2 = ~mask1
d = ((n << lsb) & mask1) | (d & mask2);

Pattern 2:

mask1 = (1 << width) - 1
mask2 = ~(mask1 << lsb)
d = ((n & mask1) << lsb) | (d & mask2)

Current optimizer already has the strength reduction rule:

Turn This: (n << lsb) & mask1)
Into This: (n & mask1) << lsb)

Then, d = ((n & mask1) << lsb) | (d & mask2) is the canonical form.

With constraints:

  1. 0 <= lsb < datasize
  2. 0 < width < datasize
  3. lsb + width <= dataszie

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = lsb
Int @3 = mask
Int @4 = BitAnd(@1, @3)
Int @5 = Shl(@4, @2)
Int @6 = BitOr(@0, @5)
Int @7 = Return(@6, Terminal)

Before Adding BFI:
Old optimized AIR
And mask, %x1, %x1, @4
Lshift %x1, lsb, %x1, @5
Or %x1, %x0, %x0, @6
Ret %x0, @7

After Adding BFI:
New optimized AIR
BitFieldInsert %x1, lsb, width, %x0, @6
Ret %x0, @7

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::bitFieldInsert32):
(JSC::MacroAssemblerARM64::bitFieldInsert64):

  • assembler/testmasm.cpp:

(JSC::testUbfx32):
(JSC::testUbfx64):
(JSC::testUbfiz32):
(JSC::testUbfiz64):
(JSC::testBitFieldInsert32):
(JSC::testBitFieldInsert64):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testBitFieldInsert32):
(testBitFieldInsert64):
(addBitTests):

3:45 PM Changeset in webkit [279248] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix WKDownloadDelegate header doc
https://bugs.webkit.org/show_bug.cgi?id=227378

Reviewed by Brady Eidson.

This removes the following sentence:
"If this is a download of a blob URL, response will be null."
This was correct in an earlier iteration of the implementation of this API, but is now incorrect
and verified by the WKDownload.BlobResponse API test.

  • UIProcess/API/Cocoa/WKDownloadDelegate.h:
3:12 PM Changeset in webkit [279247] by Kate Cheney
  • 5 edits in trunk

WKWebView loadSimulatedRequest does not set attribution value for url requests within html content
https://bugs.webkit.org/show_bug.cgi?id=227266
<rdar://problem/79316911>

Reviewed by Brent Fulgham.

Source/WebKit:

We currently pass the attribution value from the main NSURLRequest
passed into WebPageProxy::loadRequest by setting a value on the WebPage
document loader that gets passed to all requests initiated by that main
navigation. This patch adds the same functionality for
WebPageProxy::loadSimulatedRequest, which could initiate URL requests
from HTML content.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadSimulatedRequest):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadSimulatedRequestAndResponse):

Tools:

API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
3:10 PM Changeset in webkit [279246] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.20

Tag Safari-612.1.20.

2:41 PM Changeset in webkit [279245] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

[watchOS] Automatically apply system minimum layout margins as scroll view content insets
https://bugs.webkit.org/show_bug.cgi?id=227178
rdar://76784095

Reviewed by Tim Horton.

Respect -[UIViewController systemMinimumLayoutMargins] on watchOS by treating them in a similar way as safe
area insets, such that we avoid laying out parts of the web page within these margins unless the page's meta
viewport specifies viewport-fit=cover. On watch, avoiding these layout margins is crucial.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _computedObscuredInsetForSafeBrowsingWarning]):
(-[WKWebView _contentInsetsFromSystemMinimumLayoutMargins]):

Add a helper method to compute the amount of additional content inset we need to apply to the scroll view in
order for content to fit within WKWebView's view controller's -systemMinimumLayoutMargins. Note that this
accounts for cases where the web view's frame is already inset relative to the view controller's content view.

(-[WKWebView _computedObscuredInset]):
(-[WKWebView _computedContentInset]):

Unconditionalize a few codepaths that apply obscured and content insets by consulting
-_scrollViewSystemContentInset.

(-[WKWebView _computedUnobscuredSafeAreaInset]):

On watchOS, we augment safe area insets, such that they include _contentInsetsFromSystemMinimumLayoutMargins
as well.

(-[WKWebView activeViewLayoutSize:]):
(-[WKWebView _updateScrollViewContentInsetsIfNecessary]):

Add a helper method that (on watchOS only) updates WKScrollView's content scroll insets such that the web page
fits inside -systemMinimumLayoutMargins. See WKScrollView changes below for more details.

(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _setAvoidsUnsafeArea:]):

Update scroll view content insets on watchOS if the viewport-fit state changes. Additionally make sure that we
also update the active layout size if the insets actually change (without this tweak, when dynamically adding
viewport-fit=cover, we'll end up in a state where the content size is still narrow to account for the old
content scroll insets, but the new content scroll insets are set, so the web page apears misaligned relative to
the scroll view).

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

(-[WKScrollView _setContentScrollInset:]):
(-[WKScrollView _setContentScrollInsetInternal:]):

Add an internal method for setting -[UIScrollView _contentScrollInset] that defers to the embedding client.
This means WKWebView clients that use webView.scrollView.contentScrollInset = myInset; will override the above
behavior in -_updateScrollViewContentInsetsIfNecessary, but otherwise, the content scroll insets will be
automatically computed and set in order to avoid minimum layout margins if needed.

Note that this also returns a BOOL indicating whether the inset was updated.

(-[WKScrollView _updateContentScrollInset]):

2:38 PM Changeset in webkit [279244] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Improve release logging in WebProcessProxy
https://bugs.webkit.org/show_bug.cgi?id=227374

Reviewed by Geoffrey Garen.

Improve release logging in WebProcessProxy:

  • Add more logging
  • Use more consistent logging format to faciliate grep'ing
  • Always include pointer and PID in the logging
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::enableProcessTermination):
(WebKit::WebProcessPool::disableProcessTermination):

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

(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::setWebsiteDataStore):
(WebKit::WebProcessProxy::addProvisionalPageProxy):
(WebKit::WebProcessProxy::removeProvisionalPageProxy):
(WebKit::WebProcessProxy::processWillShutDown):
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::markIsNoLongerInPrewarmedPool):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
(WebKit::WebProcessProxy::gpuProcessExited):
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::didBecomeResponsive):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::canBeAddedToWebProcessCache const):
(WebKit::WebProcessProxy::canTerminateAuxiliaryProcess):
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::requestTermination):
(WebKit::WebProcessProxy::sendPrepareToSuspend):
(WebKit::WebProcessProxy::sendProcessDidResume):
(WebKit::WebProcessProxy::didSetAssertionType):
(WebKit::WebProcessProxy::updateAudibleMediaAssertions):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):
(WebKit::WebProcessProxy::processTerminated):
(WebKit::WebProcessProxy::didExceedActiveMemoryLimit):
(WebKit::WebProcessProxy::didExceedInactiveMemoryLimit):
(WebKit::WebProcessProxy::didExceedCPULimit):
(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):
(WebKit::WebProcessProxy::incrementSuspendedPageCount):
(WebKit::WebProcessProxy::decrementSuspendedPageCount):
(WebKit::WebProcessProxy::processPoolIfExists const):
(WebKit::WebProcessProxy::startBackgroundActivityForFullscreenInput):
(WebKit::WebProcessProxy::endBackgroundActivityForFullscreenInput):
(WebKit::WebProcessProxy::establishServiceWorkerContext):
(WebKit::WebProcessProxy::updateServiceWorkerProcessAssertion):
(WebKit::WebProcessProxy::registerServiceWorkerClientProcess):
(WebKit::WebProcessProxy::unregisterServiceWorkerClientProcess):
(WebKit::WebProcessProxy::disableServiceWorkers):
(WebKit::WebProcessProxy::enableServiceWorkers):

12:33 PM Changeset in webkit [279243] by guijemont@igalia.com
  • 2 edits
    1 delete in trunk/JSTests

Improve our checking of NaN values in DataView tests
https://bugs.webkit.org/show_bug.cgi?id=227347

Reviewed by Yusuke Suzuki.

This allows the merging of dataview-jit-set-nan.js and
dataview-jit-set.js.

  • stress/dataview-jit-set-nan.js: Removed.
  • stress/dataview-jit-set.js:

(test5):
(test6):

12:14 PM Changeset in webkit [279242] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r275633.
https://bugs.webkit.org/show_bug.cgi?id=227373

Revert to see if this was the cause for some crashes seen
lately

Reverted changeset:

"Reduce Vector<> wasted capacity in some RuleSet code"
https://bugs.webkit.org/show_bug.cgi?id=224160
https://trac.webkit.org/changeset/275633

12:07 PM Changeset in webkit [279241] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Add release logging in the WebPage constructor / destructor
https://bugs.webkit.org/show_bug.cgi?id=227361

Reviewed by Geoffrey Garen.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::~WebPage):

11:49 AM Changeset in webkit [279240] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use <cmath> instead of <math.h>
https://bugs.webkit.org/show_bug.cgi?id=225856

This is needed to avoid ambiguity between abs and std::abs observed on
vanilla clang 7.1.0.

Patch by Dmitry Kalinkin <dmitry.kalinkin+webkit@gmail.com> on 2021-06-24
Reviewed by Fujii Hironori.

  • platform/graphics/ColorComponents.h:
11:27 AM Changeset in webkit [279239] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GStreamer] Unreviewed Test gardening, webrtc/peer-connection-remote-audio-mute* are no longer failing
https://bugs.webkit.org/show_bug.cgi?id=221504

These tests pass as of r277175.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-24

  • platform/glib/TestExpectations:
11:24 AM Changeset in webkit [279238] by Darin Adler
  • 6 edits in trunk

CSS parser does not handle unpaired surrogates correctly
https://bugs.webkit.org/show_bug.cgi?id=227357

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-syntax/input-preprocessing-expected.txt:

Expect tests to pass instead of fail.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/css-syntax/input-preprocessing.html

  • bindings/js/JSDOMConvertStrings.cpp:

(WebCore::stringToUSVString): Made non-inline to be used outside this file.

  • bindings/js/JSDOMConvertStrings.h: Added stringToUSVString.
  • css/parser/CSSTokenizer.cpp:

(WebCore::preprocessString): Call stringToUSVString to convert unpaired
surrogates to replacement characters.

10:49 AM Changeset in webkit [279237] by sihui_liu@apple.com
  • 5 edits in trunk

IndexedDB prints error log about blob files when there is no error
https://bugs.webkit.org/show_bug.cgi?id=227092

Reviewed by Chris Dumez.

Source/WebCore:

We should try opening database if file exists, and try getting blob files only if database is opened.

API test: IndexedDB.StoreBlobThenDeleteDatabase

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/StoreBlobToBeDeleted.html:
10:38 AM Changeset in webkit [279236] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Fix incorrect version check in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=227346
<rdar://79589961>

Reviewed by Alexey Proskuryakov.

  • WebProcess/com.apple.WebProcess.sb.in:
10:29 AM Changeset in webkit [279235] by achristensen@apple.com
  • 5 edits in trunk/LayoutTests/imported/w3c

Fix URL test expectations after r279234
https://bugs.webkit.org/show_bug.cgi?id=227321

That revision was a mistake. I took the expected from the bots instead of the actual.
This should actually update the expectations.

  • web-platform-tests/url/url-constructor.any-expected.txt:
  • web-platform-tests/url/url-constructor.any.worker-expected.txt:
  • web-platform-tests/url/url-origin.any-expected.txt:
  • web-platform-tests/url/url-origin.any.worker-expected.txt:
10:19 AM Changeset in webkit [279234] by achristensen@apple.com
  • 5 edits in trunk/LayoutTests/imported/w3c

Fix URL test expectations after r279211
https://bugs.webkit.org/show_bug.cgi?id=227321

The process of moving and committing did something strange to the invalid UTF-16 sequences.
This should fix the bots.

  • web-platform-tests/url/url-constructor.any-expected.txt:
  • web-platform-tests/url/url-constructor.any.worker-expected.txt:
  • web-platform-tests/url/url-origin.any-expected.txt:
  • web-platform-tests/url/url-origin.any.worker-expected.txt:
10:10 AM Changeset in webkit [279233] by Chris Dumez
  • 5 edits
    7 adds
    2 deletes in trunk/LayoutTests/imported/w3c

Resync eventsource WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227324

Reviewed by Alex Christensen.

Resync eventsource WPT tests from upstream a38612f39e7752c353.

  • web-platform-tests/eventsource/*: Updated.
9:44 AM Changeset in webkit [279232] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WPE] Uninstalled Cog now requires a COG_MODULEDIR environment variable
https://bugs.webkit.org/show_bug.cgi?id=227351

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

Renamed the cog_path() method to cog_path_to() which requires a file_or_directory argument.
This is useful when setting the COG_MODULEDIR environment variable.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.cog_path_to):
(WPEPort.browser_name):
(WPEPort.browser_env):
(WPEPort.run_minibrowser):
(WPEPort.cog_path): Deleted.

9:29 AM Changeset in webkit [279231] by Chris Dumez
  • 5 edits in trunk/LayoutTests/imported/w3c

(r279211) introduced 4 failing web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=227355
<rdar://problem/79728204>

Unreviewed, rebaseline a few WPT url tests after resync in r279211.

  • web-platform-tests/url/url-constructor.any-expected.txt:
  • web-platform-tests/url/url-constructor.any.worker-expected.txt:
  • web-platform-tests/url/url-origin.any-expected.txt:
  • web-platform-tests/url/url-origin.any.worker-expected.txt:
9:28 AM Changeset in webkit [279230] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[iOS] Allow network-outbound logging for internal builds
https://bugs.webkit.org/show_bug.cgi?id=227332
<rdar://problem/79669627>

Reviewed by Per Arne Vollan.

We allow network-outbound for /private/var/run/syslog in the WebContent process for debugging
purposes on internal OS images. We should do the same for our other processes to avoid noisy logging.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
8:49 AM Changeset in webkit [279229] by Ruben Turcios
  • 2 edits in branches/safari-612.1.20-branch/Source/WebKit

Cherry-pick r279210. rdar://problem/79726355

REGRESSION(r278970): A CATransaction commitHandler should not execute a client callback
https://bugs.webkit.org/show_bug.cgi?id=227318
<rdar://79625962>

Reviewed by Tim Horton.

In takeSnapshotWithConfiguration() we call callSnapshotRect() inside the
callback of [CATransaction addCommitHandler].

callSnapshotRect() calls the client callback which may call directly or
indirectly addCommitHandler. But it is prohibited by CA to add a commit
handler while processing a registered commit handler.

The fix is to postpone calling callSnapshotRect() till CATransaction
processes all its commit handler callbacks.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

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

8:37 AM Changeset in webkit [279228] by Chris Dumez
  • 222 edits
    65 copies
    9 moves
    74 adds
    55 deletes in trunk/LayoutTests

Resync websockets WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227317

Reviewed by Alex Christensen.

Resync websockets WPT tests from upstream a38612f39e7752c3532080c.

  • web-platform-tests/websockets/*: Updated.
8:33 AM Changeset in webkit [279227] by Chris Dumez
  • 13 edits
    16 adds in trunk/LayoutTests/imported/w3c

Resync custom-elements WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227330

Reviewed by Alex Christensen.

Resync custom-elements WPT tests from upstream a38612f39e7752c353.

  • web-platform-tests/custom-elements/*: Updated.
8:31 AM Changeset in webkit [279226] by Chris Dumez
  • 5 edits
    3 adds in trunk/LayoutTests/imported/w3c

Resync WebIDL WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227322

Reviewed by Alex Christensen.

Resync WebIDL WPT tests from upstream a38612f39e7752c353.

  • web-platform-tests/WebIDL/*: Updated.
8:23 AM Changeset in webkit [279225] by Chris Dumez
  • 75 edits
    3 adds
    6 deletes in trunk/LayoutTests

Resync shadow-dom WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227331

Reviewed by Alex Christensen.

Resync shadow-dom WPT tests from upstream a38612f39e7752c353.

  • web-platform-tests/shadow-dom/*: Updated.
8:19 AM Changeset in webkit [279224] by Chris Dumez
  • 5 edits
    4 moves
    8 adds
    25 deletes in trunk/LayoutTests

Resync beacon WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227323

Reviewed by Alex Christensen.

Resync beacon WPT tests from upstream a38612f39e7752c353.

  • web-platform-tests/beacon/*: Updated.
8:04 AM Changeset in webkit [279223] by emilio
  • 6 edits
    4 adds in trunk/LayoutTests/imported/w3c

Update some html pseudo-class tests.
https://bugs.webkit.org/show_bug.cgi?id=225851

Reviewed by Manuel Rego Casasnovas.

Generated by ./Tools/Scripts/import-w3c-tests web-platform-tests/html/semantics/selectors -t, plus the relevant expectation update.

  • resources/import-expectations.json:
  • web-platform-tests/html/semantics/selectors/META.yml:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/autofill-expected.txt: Added.
  • web-platform-tests/html/semantics/selectors/pseudo-classes/autofill.html: Added.
  • web-platform-tests/html/semantics/selectors/pseudo-classes/invalid-after-clone-expected.txt: Added.
  • web-platform-tests/html/semantics/selectors/pseudo-classes/invalid-after-clone.html: Added.
  • web-platform-tests/html/semantics/selectors/pseudo-classes/link-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/link.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/w3c-import.log:
7:59 AM Changeset in webkit [279222] by commit-queue@webkit.org
  • 2 edits in trunk

REGRESSION(r236846): WPE shouldn't depend on OpenGL ES 3
https://bugs.webkit.org/show_bug.cgi?id=227289

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-06-24
Reviewed by Adrian Perez de Castro.

  • Source/cmake/OptionsWPE.cmake: Drop the OpenGLES2 package search.

None of the possible versions are meaningful because libepoxy is used
as the underlying GL relay.

7:38 AM Changeset in webkit [279221] by commit-queue@webkit.org
  • 41 edits
    3 copies
    1 add in trunk/Source

Using a video as a source for a WebGL texture is slow and hangs on iOS 15
https://bugs.webkit.org/show_bug.cgi?id=227081

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-24
Reviewed by Eric Carlson.

Source/WebCore:

Video frame transfer from GPU process to Web process would fail when
WebGL tried to copy the video frame to a texture. The failure was
artificial, due to use of WebCore::IOSurface as a unneeeded helper
to convert CVPixelBufferRef to cross-process object.

This would cause performance regression when WebGL would
fall back to software conversion fallback. This callback did work
as it obtains the image through "get last frame as native image"
API.

  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

Remove CVPixelBufferRef -> WebCore::IOSurface conversion function.
Remove WebCore::IOSurface -> CVPixelBufferRef conversion function.
These were used in WebKit IPC serialization for CVPixelBufferRef.
However, this is incorrect behavior as CVPixelBufferRef
is not always compatible with WebCore::IOSurface. IOSurfaceRef
has always a destination color space. This would be missing from
CVPixelBufferRef. The code is moved to the IPC serialization
functions.

Source/WebKit:

In current form, media is decoded in GPU process and WebGL is processed
in Web process.

Video frame transfer from GPU process to Web process would fail when
WebGL tried to copy the video frame to a texture. The failure was
artificial, due to use of WebCore::IOSurface as a unneeeded helper
to convert CVPixelBufferRef to a cross-process object.

The failure would occur when AVPlayerItemVideoOutput
would generate a CVPixelBufferRef without color space information. Creating
WebCore::IOSurface out of this would fail. WebCore::IOSurface
has always a color space. The failure is not significant, as WebCore::IOSurface
was only used as a convenience.

This would cause performance regression when WebGL would
fall back to software conversion fallback. This callback did work
as it obtains the image through "get last frame as native image"
API.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:

Use the correct type of object in the IPC messages:
Function PixelBufferForCurrentTime returns CVPixelBufferRef
so use that type instead of MachPort. It is an implementation
detail of CVPixelBufferRef encode/decode how the object
transfer is implemented.

The type of transfer must be RetainPtr<CVPixelBufferRef> as that
is how the IPC system operates wrt input, output and "storage"
types. This is the same as with IPC support for RefPtr<> types.

No tests as Sources/WebKit is not unit-testable ATM.

  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTime):
Change the receive side according to the message type change.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(class_template_headers):
Add support for RetainPtr in the IPC message language.

  • Scripts/webkit/messages_unittest.py:
  • Scripts/webkit/tests/Makefile:
  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:

(IPC::jsValueForArguments):
(IPC::messageArgumentDescriptions):

  • Scripts/webkit/tests/MessageNames.cpp:

(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):

  • Scripts/webkit/tests/MessageNames.h:
  • Scripts/webkit/tests/TestWithCVPixelBuffer.messages.in: Added.
  • Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp: Added.

(WebKit::TestWithCVPixelBuffer::didReceiveMessage):
(WebKit::TestWithCVPixelBuffer::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithCVPixelBufferMessages.h: Copied from Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessagesReplies.h.

(Messages::TestWithCVPixelBuffer::messageReceiverName):
(Messages::TestWithCVPixelBuffer::SendCVPixelBuffer::name):
(Messages::TestWithCVPixelBuffer::SendCVPixelBuffer::SendCVPixelBuffer):
(Messages::TestWithCVPixelBuffer::SendCVPixelBuffer::arguments const):
(Messages::TestWithCVPixelBuffer::ReceiveCVPixelBuffer::name):
(Messages::TestWithCVPixelBuffer::ReceiveCVPixelBuffer::arguments const):

  • Scripts/webkit/tests/TestWithCVPixelBufferMessagesReplies.h: Copied from Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessagesReplies.h.
  • Scripts/webkit/tests/TestWithSuperclassMessagesReplies.h:

Add code generation examples for IPC implemetation regarding transferring
RetainPtr<CVPixelBufferRef>.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<RetainPtr<CVPixelBufferRef>>::encode):
(IPC::ArgumentCoder<RetainPtr<CVPixelBufferRef>>::decode):

  • Shared/WebCoreArgumentCoders.h:

Move the CVPixelBufferRef transfer code from IOSurface
to the IPC layer.
The encode function must be of type RetainPtr<CVPixelBufferRef> instead of
CVPixelBufferRef, in contrast to existing RetainPtr<CF*> types.
The existing RetainPtr<CF*> types are not used as IPC message inputs,
only as subobjects. The IPC message language does not have concept of
encode type differing from decode type.

  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):
Change the send side according to the message type change.

6:49 AM Changeset in webkit [279220] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[IFC][Integration] Text selection flashing to end of paragraph
https://bugs.webkit.org/show_bug.cgi?id=227158
<rdar://79138828>

Reviewed by Antti Koivisto.

Source/WebCore:

The "find the line for this position" code in RenderText::positionForPoint() expects adjoining lines boxes (i.e. no gaps between the lines). This function is called by hittesting as part of the text selection process.
This patch implements the legacy behavior by

  1. expanding the "selection top" all the way to the (selection)bottom of the previous line.
  2. ensures that the first line's computed offset is ignored when the containing block has no border/padding.

Test: fast/events/touch/ios/hidpi-selection-when-content-is-on-subpixel.html

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::selectionTop const):
(WebCore::LayoutIntegration::LineIteratorModernPath::selectionTopForHitTesting const):

LayoutTests:

  • fast/events/touch/ios/drag-to-autoscroll-in-single-line-editable.html:
  • fast/events/touch/ios/hidpi-selection-when-content-is-on-subpixel-expected.txt: Added.
  • fast/events/touch/ios/hidpi-selection-when-content-is-on-subpixel.html: Added.
4:43 AM Changeset in webkit [279219] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Unskip arguments-properties-order.js on MIPS
https://bugs.webkit.org/show_bug.cgi?id=227254

No failures after 50 iterations. Also tested on Loongson 3A4000 (in 32-bits mode).

Unreviewed Gardening.

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-24

  • stress/arguments-properties-order.js:
3:49 AM Changeset in webkit [279218] by Martin Robinson
  • 67 edits in trunk

[css-scroll-snap] Remove ENABLE_SCROLL_SNAP compile-time option
https://bugs.webkit.org/show_bug.cgi?id=227067

Reviewed by Simon Fraser.

Remove compile-time ENABLE_SCROLL_SNAP configuration option.

.:

  • Source/cmake/WebKitFeatures.cmake: Remove the flag from the CMake configuration.

Source/WebCore:

No new tests. This should not change behavior in any way.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValueMappings.h:
  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEventInAppropriateEnclosingBox):

  • page/FrameView.cpp:

(WebCore::FrameView::updateScrollingCoordinatorScrollSnapProperties const):
(WebCore::FrameView::performPostLayoutTasks):

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

(WebCore::EventHandler::processWheelEventForScrollSnap):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::setStateScrollingNodeSnapOffsetsAsFloat):
(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):
(WebCore::AsyncScrollingCoordinator::updateScrollSnapPropertiesWithFrameView):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollSnapOffsetsInfo.cpp:
  • page/scrolling/ScrollSnapOffsetsInfo.h:
  • page/scrolling/ScrollingMomentumCalculator.cpp:
  • page/scrolling/ScrollingMomentumCalculator.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::applicableProperties const):
(WebCore::ScrollingStateScrollingNode::setCurrentVerticalSnapPointIndex):
(WebCore::ScrollingStateScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingStateScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::dumpProperties const):
(WebCore::ScrollingTreeScrollingNode::setCurrentVerticalSnapPointIndex):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):

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

(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateFromStateNode):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::viewportSize const):

  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:

(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::handleWheelEvent):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator):
(WebCore::ScrollAnimator::~ScrollAnimator):
(WebCore::ScrollAnimator::scroll):
(WebCore::ScrollAnimator::resnapAfterLayout):
(WebCore::ScrollAnimator::handleWheelEvent):
(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset):
(WebCore::ScrollAnimator::notifyPositionChanged):
(WebCore::ScrollAnimator::pageScaleFactor const):
(WebCore::ScrollAnimator::scrollControllerAnimationTimerFired):
(WebCore::ScrollAnimator::adjustScrollOffsetForSnappingIfNeeded):

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

(WebCore::ScrollController::usesScrollSnap const):
(WebCore::ScrollController::resnapAfterLayout):

  • platform/ScrollController.h:
  • platform/ScrollSnapAnimatorState.cpp:
  • platform/ScrollSnapAnimatorState.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::doPostThumbMoveSnapping):

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

(WebCore::ScrollAnimatorMac::isScrollSnapInProgress const):
(WebCore::ScrollAnimatorMac::didBeginScrollGesture const):
(WebCore::ScrollAnimatorMac::didEndScrollGesture const):
(WebCore::gestureShouldBeginSnap):
(WebCore::ScrollAnimatorMac::allowsVerticalStretching const):
(WebCore::ScrollAnimatorMac::allowsHorizontalStretching const):

  • platform/mac/ScrollController.mm:

(WebCore::ScrollController::stopAllTimers):
(WebCore::ScrollController::handleWheelEvent):
(WebCore::ScrollController::isScrollSnapInProgress const):
(WebCore::ScrollController::updateScrollSnapAnimatingState):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::willBeDestroyed):
(WebCore::RenderBox::styleWillChange):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView const):

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::updateScrollInfoAfterLayout):
(WebCore::RenderLayerScrollableArea::isScrollSnapInProgress const):

  • rendering/RenderLayerScrollableArea.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::unregisterBoxWithScrollSnapPositions):

  • rendering/RenderView.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout const):
(WebCore::RenderStyle::setScrollPaddingRight):
(WebCore::RenderStyle::hasSnapPosition const):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • rendering/style/StyleScrollSnapPoints.h:
  • style/StyleBuilderConverter.h:
  • testing/Internals.cpp:

(WebCore::Internals::isScrollSnapInProgress):

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

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
(WebKit::dump):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView scrollViewWillBeginDragging:]):
(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
(-[WKWebView _updateVisibleContentRects]):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::resetStateAfterProcessExited):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h:

Source/WTF:

  • wtf/PlatformEnable.h: Remove the global feature definition.

Tools:

  • Scripts/webkitperl/FeatureList.pm: Remove the option from the list of features.
2:31 AM Changeset in webkit [279217] by eocanha@igalia.com
  • 9 edits
    1 add in trunk

[GTK] media/muted-video-is-playing-audio.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=208321

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Added setPageMediaVolume() API to set the Page mediaVolume. This was 0
by default and a way to set it to a non-zero value was needed in order
to prevent a zero effectiveVolume in HTMLMediaElement.

  • testing/Internals.cpp:

(WebCore::Internals::setPageMediaVolume): Set the Page mediaVolume.

  • testing/Internals.h: Added setPageMediaVolume().
  • testing/Internals.idl: Ditto.

Tools:

Set the WebKitTestRunnerWPE application name on user-agent to ease the
detection of the WPE port from the layout tests using the isWPE()
function in platform-helper.js.

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformConfigureViewForTest): Set WebKitTestRunnerWPE application name on user-agent.

LayoutTests:

Changed the test to set a non-zero mediaVolume, because a zero one
(default value set by TestController::resetStateToConsistentValues())
would multiply any other volume in HTMLMediaElement::effectiveVolume(),
cause a zero effectiveVolume (being considered in practice as "no audio" by
HTMLMediaElement::mediaState()) and prevent the IsPlayingAudio MediaState
being set.

Also, adapted the test to still expect IsPlayingAudio after mute on the
glib ports (GTK & WPE), since on those ports a muted video is expected to
report IsPlayingAudio, as per the HTMLMediaElement::mediaState() source
code comments.

  • media/muted-video-is-playing-audio.html: Test changed as described above.
  • platform/glib/media/muted-video-is-playing-audio-expected.txt: Added expectation for glib port.
  • resources/platform-helper.js:

(isGtk): Clarified where the GTK user-agent string comes from.
(isWPE): New function to check if a WPE port is being used.

1:31 AM Changeset in webkit [279216] by commit-queue@webkit.org
  • 16 edits in trunk

[JSC] Implement returnEarlyFromInfiniteLoopsForFuzzing for 32bits
https://bugs.webkit.org/show_bug.cgi?id=227290

JSTests:

Patch by Xan Lopez <Xan Lopez> on 2021-06-24
Reviewed by Mark Lam.

Now that we can return early from infinite (actual or just
extremely long running) loops on 32bits, we can pass these tests.

  • stress/construct-return-early-from-infinite-loop-for-fuzzer.js: unskip for 32bits.
  • stress/early-return-from-builtin2.js: ditto.
  • stress/validate-does-gc-with-return-early-from-infinite-loop-2.js: ditto.
  • stress/validate-does-gc-with-return-early-from-infinite-loop.js: ditto.

Source/JavaScriptCore:

Patch by Xan López <Xan Lopez> on 2021-06-24
Reviewed by Mark Lam.

Mostly a matter of changing the counter type to uintptr_t and
making the baseline/dfg/ftl code generation work on both 32 and
64bits, most of it can be shared with minor tweaks.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileLoopHint):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

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

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_loop_hint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • runtime/VM.cpp:

(JSC::VM::addLoopHintExecutionCounter):
(JSC::VM::getLoopHintExecutionCounter):

  • runtime/VM.h:
1:13 AM Changeset in webkit [279215] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(r272882): [WPE][GTK] xdg-dbus-proxy may not be mounted in sandbox
https://bugs.webkit.org/show_bug.cgi?id=227294

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-06-24
Reviewed by Adrian Perez de Castro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bubblewrapSpawn):

Jun 23, 2021:

11:56 PM Changeset in webkit [279214] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WPE] WebKitGLibAPITestsCore should more explicitly link against library dependencies
https://bugs.webkit.org/show_bug.cgi?id=227288

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-06-23
Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/glib/CMakeLists.txt: Set up the WebKitGLibAPITestsCore_LIBRARIES

variable, use that for the target_link_libraries() call for the
WebKitGLibAPITestsCore target.

  • TestWebKitAPI/glib/PlatformWPE.cmake: Extent the new variable to also

explicitly include Cairo and WPEToolingBackends libraries.

11:52 PM Changeset in webkit [279213] by Kyle Piddington
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Fix incorrect indexing / out of bounds access in getRestartIndices
https://bugs.webkit.org/show_bug.cgi?id=227274
<rdar://79244789>

In the case where a restart index is present in the last element of an index array, we can accidently
access out of bounds. Fix this by checking boundaries, and fixing other indexing errors

Tests: Ran deqp/functional/gles3/primitiverestart suite. Passed 8 tests.

Reviewed by Dean Jackson.

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

(rx::calculateRestartRanges):

11:51 PM Changeset in webkit [279212] by Kyle Piddington
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Guard against compile failures of the default libraries
https://bugs.webkit.org/show_bug.cgi?id=227239
<rdar://79037623>

Under certain events (High memory usage), the MTLCompilerService can fail when creating the default library.
Guard against nil pipelines by failing GL calls instead, if this happens. While this can create rendering artifacts
due to missing blits / conversions, this can at least avoid crashing the process.

Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/mtl_render_utils.h:
  • src/libANGLE/renderer/metal/mtl_render_utils.mm:

(rx::mtl::ClearUtils::setupClearWithDraw):
(rx::mtl::ClearUtils::clearWithDraw):
(rx::mtl::ColorBlitUtils::setupColorBlitWithDraw):
(rx::mtl::ColorBlitUtils::blitColorWithDraw):
(rx::mtl::DepthStencilBlitUtils::setupDepthStencilBlitWithDraw):
(rx::mtl::DepthStencilBlitUtils::blitDepthStencilWithDraw):
(rx::mtl::VertexFormatConversionUtils::setupCommonConvertVertexFormatToFloat):
(rx::mtl::VertexFormatConversionUtils::expandVertexFormatComponentsVS):
(rx::mtl::VertexFormatConversionUtils::setupCommonExpandVertexFormatComponents):

11:01 PM Changeset in webkit [279211] by achristensen@apple.com
  • 16 edits
    23 adds
    3 deletes in trunk/LayoutTests/imported/w3c

Resync url WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227321

Patch by Chris Dumez <Chris Dumez> on 2021-06-23
Reviewed by Alex Christensen.

Resync url WPT tests from upstream a38612f39e7752c353.

  • web-platform-tests/url/*: Updated.
10:27 PM Changeset in webkit [279210] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebKit

REGRESSION(r278970): A CATransaction commitHandler should not execute a client callback
https://bugs.webkit.org/show_bug.cgi?id=227318
<rdar://79625962>

Reviewed by Tim Horton.

In takeSnapshotWithConfiguration() we call callSnapshotRect() inside the
callback of [CATransaction addCommitHandler].

callSnapshotRect() calls the client callback which may call directly or
indirectly addCommitHandler. But it is prohibited by CA to add a commit
handler while processing a registered commit handler.

The fix is to postpone calling callSnapshotRect() till CATransaction
processes all its commit handler callbacks.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

9:27 PM Changeset in webkit [279209] by mark.lam@apple.com
  • 7 edits in trunk/Source

Base Options::useWebAssemblyFastMemory's default value on Gigacage::hasCapacityToUseLargeGigacage.
https://bugs.webkit.org/show_bug.cgi?id=227328

Reviewed by Saam Barati.

Source/bmalloc:

Rename Gigacage::useLargeGigacage to Gigacage::hasCapacityToUseLargeGigacage.

  • bmalloc/Gigacage.h:

Source/JavaScriptCore:

Gigacage::hasCapacityToUseLargeGigacage is determined based on EFFECTIVE_ADDRESS_WIDTH.
If we have enough address range to potentially use a large gigacage, then we have
enough address range to useWebAssemblyFastMemory.

  • runtime/Options.cpp:

(JSC::canUseWebAssemblyFastMemory):

  • runtime/OptionsList.h:

Source/WTF:

Provide a Gigacage::hasCapacityToUseLargeGigacage value for when !GIGACAGE_ENABLED.

  • wtf/Gigacage.h:
9:13 PM Changeset in webkit [279208] by Jean-Yves Avenard
  • 67 edits in trunk/Source

Not all uses of AudioToolbox framework use soft linking
https://bugs.webkit.org/show_bug.cgi?id=227250
<rdar://problem/79606090>

Reviewed by Eric Carlson.

Source/WebCore:

Unify AudioToolbox, CoreMedia, VideoToolbox and MediaToolbox's method
definitions and their use, ensuring that they are always soft-linked.
Unified builds and the inconsistent use of explicitly using the PAL namespace
caused some calls to be ambiguous leading to compilation errors; some
code would also use the softlinked methods while others called into the frameworks
directly.
To get around those we ensure that any calls to AudioToolbox or CoreMedia is always using
the fully resolved PAL name.
Remove unnecessary using namespace PAL; statements wherever applicable.
No change in observable behavior.

  • Modules/mediastream/PeerConnectionBackend.cpp:
  • Modules/plugins/QuickTimePluginReplacement.mm:
  • Modules/webaudio/MediaStreamAudioSourceCocoa.cpp:

(WebCore::MediaStreamAudioSource::consumeAudio):

  • dom/Document.cpp:
  • html/HTMLCanvasElement.cpp:
  • html/HTMLMediaElement.cpp:
  • platform/audio/AudioFileReader.h:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp:

(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile): Deleted.

  • platform/audio/cocoa/AudioFileReaderCocoa.h:
  • platform/audio/cocoa/AudioOutputUnitAdaptor.cpp:

(WebCore::AudioOutputUnitAdaptor::~AudioOutputUnitAdaptor):
(WebCore::AudioOutputUnitAdaptor::start):
(WebCore::AudioOutputUnitAdaptor::stop):

  • platform/audio/cocoa/AudioSampleBufferList.cpp:

(WebCore::AudioSampleBufferList::copyFrom):

  • platform/audio/cocoa/AudioSampleDataSource.mm:
  • platform/audio/cocoa/WebAudioBufferList.cpp:

(WebCore::WebAudioBufferList::WebAudioBufferList):

  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::decodeAudioForBusCreation):
(WebCore::createBusFromAudioFile): Deleted.

  • platform/audio/ios/AudioOutputUnitAdaptorIOS.cpp:

(WebCore::AudioOutputUnitAdaptor::configure):

  • platform/audio/mac/AudioOutputUnitAdaptorMac.cpp:

(WebCore::AudioOutputUnitAdaptor::configure):

  • platform/cocoa/MediaUtilities.cpp:

(WebCore::createAudioFormatDescription):
(WebCore::createAudioSampleBuffer):

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::RemoteVideoSample::create):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::create):
(WebCore::AudioSourceProviderAVFObjC::provideInput):
(WebCore::AudioSourceProviderAVFObjC::createMixIfNeeded):
(WebCore::AudioSourceProviderAVFObjC::finalizeCallback):
(WebCore::AudioSourceProviderAVFObjC::prepareCallback):
(WebCore::AudioSourceProviderAVFObjC::unprepareCallback):
(WebCore::AudioSourceProviderAVFObjC::processCallback):
(WebCore::AudioSourceProviderAVFObjC::prepare):
(WebCore::AudioSourceProviderAVFObjC::process):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMinTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::isAvailable):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataGroupDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtMediaTime):

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

(WebCore::EffectiveRateChangedListener::stop):
(WebCore::EffectiveRateChangedListener::EffectiveRateChangedListener):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCurrentTimeDidChangeCallback):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtMediaTime):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable):
(WebCore::videoTransformationMatrix):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):

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

(WTF::CFTypeTrait<CMSampleBufferRef>::typeID):
(WebCore::MediaSampleAVFObjC::createImageSample):
(WebCore::MediaSampleAVFObjC::presentationTime const):
(WebCore::MediaSampleAVFObjC::decodeTime const):
(WebCore::MediaSampleAVFObjC::duration const):
(WebCore::MediaSampleAVFObjC::sizeInBytes const):
(WebCore::MediaSampleAVFObjC::videoPixelFormat const):
(WebCore::isCMSampleBufferAttachmentRandomAccess):
(WebCore::doesCMSampleBufferHaveSyncInfo):
(WebCore::isCMSampleBufferRandomAccess):
(WebCore::isCMSampleBufferAttachmentNonDisplaying):
(WebCore::isCMSampleBufferNonDisplaying):
(WebCore::MediaSampleAVFObjC::presentationSize const):
(WebCore::MediaSampleAVFObjC::offsetTimestampsBy):
(WebCore::MediaSampleAVFObjC::setTimestamps):
(WebCore::MediaSampleAVFObjC::isDivisable const):
(WebCore::MediaSampleAVFObjC::divide):
(WebCore::MediaSampleAVFObjC::createNonDisplayingCopy const):
(WebCore::MediaSampleAVFObjC::getRGBAImageData const):
(WebCore::setSampleBufferAsDisplayImmediately):
(WebCore::MediaSampleAVFObjC::isHomogeneous const):
(WebCore::MediaSampleAVFObjC::divideIntoHomogeneousSamples):
(WebCore::MediaSampleAVFObjC::cloneSampleBufferAndSetAsDisplayImmediately):

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

(WebCore::bufferWasConsumedCallback):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::rendererWasAutomaticallyFlushed):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
(WebCore::SourceBufferPrivateAVFObjC::setMinimumUpcomingPresentationTime):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::OnFrame):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer):

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::convertToCMColorPrimaries):
(WebCore::convertToCMTransferFunction):
(WebCore::convertToCMYCbCRMatrix):
(WebCore::createFormatDescriptionFromVPCodecConfigurationRecord):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WTF::CFTypeTrait<CMSampleBufferRef>::typeID):
(WebCore::WebCoreDecompressionSession::setTimebase):
(WebCore::WebCoreDecompressionSession::enqueueSample):
(WebCore::WebCoreDecompressionSession::shouldDecodeSample):
(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
(WebCore::WebCoreDecompressionSession::decodeSample):
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput):
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::automaticDequeue):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample):
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData const):
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame):
(WebCore::WebCoreDecompressionSession::imageForTime):
(WebCore::WebCoreDecompressionSession::flush):
(WebCore::WebCoreDecompressionSession::getDecodeTime):
(WebCore::WebCoreDecompressionSession::getPresentationTime):
(WebCore::WebCoreDecompressionSession::getDuration):
(WebCore::WebCoreDecompressionSession::compareBuffers):
(WebCore::WebCoreDecompressionSession::updateQosWithDecodeTimeStatistics):

  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::createPixelBuffer):
(WebCore::ImageTransferSessionVT::convertCMSampleBuffer):
(WebCore::ImageTransferSessionVT::createCMSampleBuffer):

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::seekableRangesChanged):

  • platform/mac/VideoFullscreenInterfaceMac.mm:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::initialize):
(WebCore::AudioSampleBufferCompressor::finish):
(WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
(WebCore::AudioSampleBufferCompressor::provideSourceDataNumOutputPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):
(WebCore::AudioSampleBufferCompressor::processSampleBuffer):
(WebCore::AudioSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::AudioSampleBufferCompressor::takeOutputSampleBuffer):

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::MediaRecorderPrivateWriter):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedVideoSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::startAssetWriter):
(WebCore::MediaRecorderPrivateWriter::appendCompressedVideoSampleBuffer):
(WebCore::appendEndsPreviousSampleDurationMarker):
(WebCore::copySampleBufferWithCurrentTimeStamp):
(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::completeFetchData):
(WebCore::MediaRecorderPrivateWriter::pause):
(WebCore::MediaRecorderPrivateWriter::resume):

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::initialize):
(WebCore::VideoSampleBufferCompressor::finish):
(WebCore::VideoSampleBufferCompressor::videoCompressionCallback):
(WebCore::VideoSampleBufferCompressor::vtProfileLevel const):
(WebCore::VideoSampleBufferCompressor::initCompressionSession):
(WebCore::VideoSampleBufferCompressor::processSampleBuffer):
(WebCore::VideoSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::VideoSampleBufferCompressor::takeOutputSampleBuffer):

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:

(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::start):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::stop):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::createAudioUnitIfNeeded):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):
(WebCore::AVVideoCaptureSource::frameDurationForFrameRate):
(WebCore::AVVideoCaptureSource::generatePresets):

  • platform/mediastream/mac/CoreAudioCaptureDevice.cpp:

(WebCore::CoreAudioCaptureDevice::deviceClock):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
(WebCore::CoreAudioSharedUnit::configureSpeakerProc):
(WebCore::CoreAudioSharedUnit::cleanupAudioUnit):
(WebCore::CoreAudioSharedUnit::reconfigureAudioUnit):
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioSharedUnit::stopInternal):
(WebCore::CoreAudioSharedUnit::defaultInputDevice):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
  • platform/mediastream/mac/MockAudioSharedUnit.mm:

(WebCore::MockAudioSharedUnit::reconfigure):
(WebCore::MockAudioSharedUnit::emitSampleBuffers):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:

(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

(WebCore::RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable):

  • platform/mediastream/mac/WindowDisplayCapturerMac.mm:

Source/WebCore/PAL:

  • pal/cf/AudioToolboxSoftLink.cpp:
  • pal/cf/AudioToolboxSoftLink.h: Add methods whose definitions were scattered across

the code.

  • pal/cocoa/MediaToolboxSoftLink.cpp:
  • pal/cocoa/MediaToolboxSoftLink.h: Same as above.
  • pal/cf/AudioToolboxSoftLink.cpp:
  • pal/cf/AudioToolboxSoftLink.h: Add missing methods
  • pal/cf/CoreMediaSoftLink.cpp:
  • pal/cf/CoreMediaSoftLink.h: Add missing methods
  • pal/cf/VideoToolboxSoftLink.cpp:
  • pal/cf/VideoToolboxSoftLink.h: Add missing methods and fix some spelling in define names
  • pal/cocoa/MediaToolboxSoftLink.cpp:
  • pal/cocoa/MediaToolboxSoftLink.h: Add missing methods

Source/WebKit:

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::consumeAudioComponentRegistrations):

  • Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp:

(WebKit::createWrapper):
(WebKit::wrapperStorage):
(WebKit::wrapperVTable):

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::copyProperty):

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:

(WebKit::MediaSampleByteRange::MediaSampleByteRange):

  • Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • UIProcess/Media/cocoa/MediaUsageManagerCocoa.mm:
  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::consumeAudioComponentRegistrations):

8:43 PM Changeset in webkit [279207] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

Remove #include <wtf/Optional.h>
https://bugs.webkit.org/show_bug.cgi?id=227335

Reviewed by Darin Adler.

  • Modules/mediasession/MediaSessionCoordinatorPrivate.h:
8:34 PM Changeset in webkit [279206] by Peng Liu
  • 3 edits in trunk/Source/WebCore

[iPadOS] A video cannot enter picture-in-picture when Safari is suspended
https://bugs.webkit.org/show_bug.cgi?id=227325

Reviewed by Eric Carlson.

When an element goes into the element fullscreen mode, a descendant video element
gains the ability to automatically enter picture-in-picture on application suspend.
However, the video element may lose the ability after some stress tests.

The root cause is related to m_restoringFullscreenForPictureInPictureStop.
Under stress tests, -[AVPlayerViewController enterFullScreenAnimated:completionHandler]
may call the completion handler with success == NO. The current implementation
will keep m_restoringFullscreenForPictureInPictureStop with a wrong value,
so that the video cannot enter picture-in-picture automatically when the browser
is suspended.

This patch removes m_restoringFullscreenForPictureInPictureStop since it is not needed
after r269557.

Manually tested.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):

8:32 PM Changeset in webkit [279205] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.https.html as flaky on iOS.

  • platform/ios-wk2/TestExpectations:
8:27 PM Changeset in webkit [279204] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, silence console logging for imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html

The console logging was making the test flaky.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

LayoutTests:

7:06 PM Changeset in webkit [279203] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Fix some PerformanceNavigationTiming bugs
https://bugs.webkit.org/show_bug.cgi?id=227329

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

LayoutTests/imported/w3c:

  • web-platform-tests/navigation-timing/buffered-flag.window-expected.txt: Added.
  • web-platform-tests/navigation-timing/buffered-flag.window.html: Added.
  • web-platform-tests/navigation-timing/nav2_test_unique_nav_instances-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/navigation-timing/buffered-flag.window.html

This fixes two bugs:

  1. We need to delay the PerformanceObserver event until didFinishNavigation time, which is after iframes have also finished loading.
  2. We need to remember whether we've added the PerformanceNavigationTiming to a PerformanceObserver's list to avoid duplicate entries.

This fixes two WPT tests that were passed by Chrome and Firefox.
PerformanceNavigationTiming is still an off-by-default experimental feature, so this won't affect anything yet.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame):

  • page/Performance.cpp:

(WebCore::Performance::appendBufferedEntriesByType const):
(WebCore::Performance::registerPerformanceObserver):
(WebCore::Performance::scheduleNavigationObservationTaskIfNeeded):

  • page/Performance.h:
  • page/PerformanceObserver.cpp:

(WebCore::PerformanceObserver::observe):

  • page/PerformanceObserver.h:

(WebCore::PerformanceObserver::hasNavigationTiming const):
(WebCore::PerformanceObserver::addedNavigationTiming):

6:58 PM Changeset in webkit [279202] by Chris Dumez
  • 91 edits
    2 moves
    3 adds
    1 delete in trunk/LayoutTests

Update WPT resources from upstream
https://bugs.webkit.org/show_bug.cgi?id=227296

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/idlharness.https.any-expected.txt:
  • web-platform-tests/WebCryptoAPI/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window-expected.txt:
  • web-platform-tests/css/css-animations/idlharness-expected.txt:
  • web-platform-tests/css/css-font-loading/idlharness.https-expected.txt:
  • web-platform-tests/css/css-syntax/input-preprocessing-expected.txt:
  • web-platform-tests/css/css-transitions/idlharness-expected.txt:
  • web-platform-tests/css/cssom-view/idlharness-expected.txt:
  • web-platform-tests/css/cssom/idlharness-expected.txt:
  • web-platform-tests/dom/idlharness.any.worker-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/domparsing/idlharness.window-expected.txt:
  • web-platform-tests/eventsource/idlharness-expected.txt:
  • web-platform-tests/fetch/api/idlharness.any-expected.txt:
  • web-platform-tests/fetch/api/idlharness.any.worker-expected.txt:
  • web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any-expected.txt:
  • web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any.worker-expected.txt:
  • web-platform-tests/hr-time/idlharness.any-expected.txt:
  • web-platform-tests/hr-time/idlharness.any.worker-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic-expected.txt:
  • web-platform-tests/html/dom/idlharness.worker-expected.txt:
  • web-platform-tests/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt:
  • web-platform-tests/interfaces/DOM-Parsing.idl:
  • web-platform-tests/interfaces/SVG.idl:
  • web-platform-tests/interfaces/mediasession.idl:
  • web-platform-tests/mediasession/idlharness.window-expected.txt:
  • web-platform-tests/notifications/idlharness.https.any-expected.txt:
  • web-platform-tests/notifications/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/pointerevents/idlharness.window-expected.txt:

Rebaseline existing tests.

  • web-platform-tests/resources/*: Updated.

LayoutTests:

  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
6:25 PM Changeset in webkit [279201] by Russell Epstein
  • 1 copy in tags/Safari-611.3.10.1.2

Tag Safari-611.3.10.1.2.

5:45 PM Changeset in webkit [279200] by Truitt Savell
  • 2 edits in trunk/Source/WebCore

Fix iOS Debug testing be removing the assert added in r279119
https://bugs.webkit.org/show_bug.cgi?id=227227

Reviewed by Eric Carlson.

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::setEligibleForSmartRouting):

5:15 PM Changeset in webkit [279199] by Russell Epstein
  • 1 copy in tags/Safari-612.1.18.11.2

Tag Safari-612.1.18.11.2.

5:10 PM Changeset in webkit [279198] by Russell Epstein
  • 8 edits in branches/safari-612.1.18.11-branch/Source

Versioning.

WebKit-7612.1.18.11.2

4:44 PM Changeset in webkit [279197] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

Add a delegate SPI to allow arbitrary gestures to ignore preventDefault() with active touch events
https://bugs.webkit.org/show_bug.cgi?id=227311
rdar://79624236

Reviewed by Tim Horton.

Add a UI delegate hook to allow internal clients to (easily) introduce gesture recognizers on WKWebView that are
capable of recognizing even if active touch events are prevented by the page. This allows Safari to stop
overriding an internal method on WKWebView, -_isNavigationSwipeGestureRecognizer:.

Testing this requires the ability to simulate touch events (through HID event dispatch) in API tests.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _touchEventsMustRequireGestureRecognizerToFail:]):

Note that we only consult the delegate here for gestures that are added directly to WKWebView. This is because
we already avoid deferring gestures that are added *above* WKWebView, and it's unnecessary to allow clients to
avoid deferring gestures that are internal to WebKit (i.e. added on WKContentView).

(-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

4:36 PM Changeset in webkit [279196] by Russell Epstein
  • 3 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit

Unreviewed build fix. rdar://problem/79474211

Sources/libwebrtc/Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:82:5: error: static_assert failed due to requirement 'sizeof (WebKitVP9Decoder_BaseClass.alignedClass.version) == sizeof(unsigned long)' CMBaseClass fixup is not required

4:00 PM Changeset in webkit [279195] by commit-queue@webkit.org
  • 6 edits
    4 adds in trunk

[iOS 15 Regression]: scroll position resets when using scroll snap
https://bugs.webkit.org/show_bug.cgi?id=226816
<rdar://problem/79081301>

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-06-23
Reviewed by Simon Fraser.

Source/WebKit:

To improve scrolling fluidity on iOS, have any sort of momentum scroll trigger directional
scroll snapping. This means that any momentum scroll will move to the next or previous scroll
position and not snap back. This improves behavior on tesla.com and also on the scroll
snapping demo on the WebKit page.

Tests: fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-main-frame.html

fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-overflow-scroll-area.html

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Pass the current scroll offset to
the RemoteScrollingCoordinatorProxy. Passing a value for this offset is the trigger for directional scroll
snapping.

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: Update method definitions.
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Pass the current offset.
(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling const): Ditto.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Enable
directional scroll snapping for RenderLayers.

LayoutTests:

  • fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-main-frame-expected.txt: Added.
  • fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-main-frame.html: Added.
  • fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-overflow-scroll-area-expected.txt: Added.
  • fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-overflow-scroll-area.html: Added.
3:37 PM Changeset in webkit [279194] by Russell Epstein
  • 1 copy in tags/Safari-612.1.18.11.1

Tag Safari-612.1.18.11.1.

3:09 PM Changeset in webkit [279193] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Add a new pattern to instruction selector to utilize UBFIZ supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227204

Patch by Yijia Huang <Yijia Huang> on 2021-06-23
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch includes three parts:

A) Add UBFIZ to instruction selector.
B) Fix UBFX, introduced in https://bugs.webkit.org/show_bug.cgi?id=226984,

to match all patterns.

C) Fix error condition in one strength reduction introduced

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

Part A
Unsigned Bitfield Insert in Zero(UBFIZ), supported by ARM64, zeros the
destination register and copies any number of contiguous bits from a
source register into any position in the destination register. The
instruction selector can utilize this to lowering certain patterns in
B3 IR before further Air optimization.

Given the operation: ubfiz d, n, lsb, width

This is equivalent to "d = (n << lsb) & (((1 << width) - 1) << lsb)".
Since wasm introduces constant folding, then the matched patterns would be:
1.1 d = (n << lsb) & maskShift
1.2 d = maskShift & (n << lsb)

2.1 d = (n & mask) << lsb
2.2 d = (mask & n) << lsb

Where:

maskShift = mask << lsb
mask = (1 << width) - 1

To make the pattern matching in instruction selection beneficial to JIT, these
constraints should be introduced:

  1. 0 <= lsb < datasize
  2. 0 < width < datasize
  3. lsb + width <= datasize

Choose (n & mask) << lsb as the canonical form and introduce a strength reduction.
Turn this: (n << lsb) & maskShift
Into this: (n & mask) << lsb

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = lsb
Int @2 = 0b0110
Int @3 = Shl(@0, @1)
Int @4 = BitAnd(@3, @2)
Void@5 = Return(@4, Terminal)

Before Adding UBFIZ Pattern:
Old optimized AIR
Lshift %x0, $62, %x0, @3
And 0b0110, %x0, %x0, @4
Ret %x0, @5

After Adding UBFIZ Pattern:
New optimized AIR
Ubfiz %x0, lsb, 2, %x0, @4
Ret %x0, @5

Part B
Fix UBFX to match both patterns:
dest = (src >> lsb) & mask
dest = mask & (src >> lsb)

Where:

  1. mask = (1 << width) - 1
  2. 0 <= lsb < datasize
  3. 0 < width < datasize
  4. lsb + width <= datasize

Part C
Fix one B3 strength reduction.
Turn this: (src >> shiftAmount) & mask
Into this: src >> shiftAmount

With updated constraints:

  1. mask = (1 << width) - 1
  2. 0 <= shiftAmount < datasize
  3. 0 < width < datasize
  4. shiftAmount + width >= datasize
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::ubfiz32):
(JSC::MacroAssemblerARM64::ubfiz64):

  • assembler/testmasm.cpp:

(JSC::testUbfiz32):
(JSC::testUbfiz64):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testUbfx32ArgLeft):
(testUbfx32ArgRight):
(testUbfx64ArgLeft):
(testUbfx64ArgRight):
(testUbfiz32ArgLeft):
(testUbfiz32ArgRight):
(testUbfiz64ArgLeft):
(testUbfiz64ArgRight):
(addBitTests):
(testUbfx32): Deleted.
(testUbfx32PatternMatch): Deleted.
(testUbfx64): Deleted.
(testUbfx64PatternMatch): Deleted.

Source/WTF:

Add functions to count the consecutive zero bits (trailing) on the
right with modulus division and lookup. Reference: Bit Twiddling Hacks.

  • wtf/MathExtras.h:

(WTF::countTrailingZeros):

3:04 PM Changeset in webkit [279192] by Chris Dumez
  • 6 edits
    13 adds in trunk/LayoutTests/imported/w3c

Resync IndexedDB WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227315

Reviewed by Darin Adler.

Resync IndexedDB WPT tests from upstream a38612f39e7752c3532080c.

  • web-platform-tests/IndexedDB/*: Updated.
3:03 PM Changeset in webkit [279191] by Russell Epstein
  • 8 edits in branches/safari-612.1.18.11-branch/Source

Versioning.

WebKit-7612.1.18.11.1

2:42 PM Changeset in webkit [279190] by Russell Epstein
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.2

2:41 PM Changeset in webkit [279189] by Russell Epstein
  • 2 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc

Cherry-pick r279187. rdar://problem/79474211

WebKitDecoder.h should include TargetConditionals.h
https://bugs.webkit.org/show_bug.cgi?id=227314
<rdar://problem/79689776>

Reviewed by Geoff Garen.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.h: Include TargetConditionals.h so the TARGET_ defines are initialized correctly.

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

2:41 PM Changeset in webkit [279188] by Russell Epstein
  • 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc

Cherry-pick r279101. rdar://problem/79474211

[Mac] libwebrtc CMBaseClass objects need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=227137
<rdar://problem/79464124>

Reviewed by Youenn Fablet.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.h: Define CMBASE_OBJECT_NEEDS_ALIGNMENT.
  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp: (webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on Mac and Mac Catalyst when building for x86_64 so function pointers are naturally aligned. Add static_asserts to ensure alignment and sizes are correct.
  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp: (webrtc::createWebKitVP9Decoder): Ditto.

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

2:30 PM Changeset in webkit [279187] by eric.carlson@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

WebKitDecoder.h should include TargetConditionals.h
https://bugs.webkit.org/show_bug.cgi?id=227314
<rdar://problem/79689776>

Reviewed by Geoff Garen.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.h: Include TargetConditionals.h so the

TARGET_ defines are initialized correctly.

2:21 PM Changeset in webkit [279186] by jer.noble@apple.com
  • 14 edits in trunk/Source

[Cocoa] Make the hostTime parameter to playSession a Monotonic time
https://bugs.webkit.org/show_bug.cgi?id=226515

Reviewed by Youenn Fablet.

Source/WebCore:

Fire the playSession action handler at approximately the hostTime indicated by the MediaSessionCoordinatorPrivate.

  • Modules/mediasession/MediaSessionCoordinator.cpp:

(WebCore::MediaSessionCoordinator::playSession):

  • Modules/mediasession/MediaSessionCoordinator.h:
  • Modules/mediasession/MediaSessionCoordinatorPrivate.h:

(WebCore::MediaSessionCoordinatorClient::playSession):

Source/WebCore/PAL:

SoftLink CMClockConvertHostTimeToSystemUnits.

  • pal/cf/CoreMediaSoftLink.cpp:
  • pal/cf/CoreMediaSoftLink.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _createMediaSessionCoordinatorForTesting:completionHandler:]):
(-[WKMediaSessionCoordinatorHelper playSessionWithCompletion:]):

  • UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:

(WebKit::RemoteMediaSessionCoordinatorProxy::playSession):

  • UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
  • WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:

(WebKit::RemoteMediaSessionCoordinator::playSession):

  • WebProcess/MediaSession/RemoteMediaSessionCoordinator.h:
  • WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
1:44 PM Changeset in webkit [279185] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
1:27 PM Changeset in webkit [279184] by Kate Cheney
  • 9 edits in trunk

Migrate App Privacy Report code from WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=227045
<rdar://problem/74333287>

Reviewed by Alex Christensen.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(processPCMRequest):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(contextString): Deleted.
This patch deletes the contextString function because it is no longer
needed now that CFNetwork sets the attribution context based on the
main document URL, and it seemed silly to migrate code from
WebKitAdditions just to delete it immediately. This also moves the
processPCMRequest function declaration from WebKitAdditions so we can
remove NETWORK_DATA_TASK_COCOA_ADDITIONS.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::isActingOnBehalfOfAFullWebBrowser):
(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setLastNavigationWasAppBound):

Source/WTF:

Update compile flag naming to align with the App Privacy Report
feature. Added a new check for Symptoms for a simpler, more clear
check.

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
1:20 PM Changeset in webkit [279183] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION (r279169?): [MacOS] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html is consistently failing.
https://bugs.webkit.org/show_bug.cgi?id=227312
<rdar://problem/79684170>

Unreviewed, update python script used by the test to be compatible with the new WPT tools (updated in r279169).

  • web-platform-tests/html/semantics/embedded-content/the-video-element/timeout_on_seek.py:

(main):

1:08 PM Changeset in webkit [279182] by Russell Epstein
  • 1 copy in branches/safari-612.1.18.11-branch

New branch.

1:02 PM Changeset in webkit [279181] by Aditya Keerthi
  • 7 edits in trunk

[iOS] Adopt new date picker presentation SPI
https://bugs.webkit.org/show_bug.cgi?id=227221
<rdar://problem/77930086>

Reviewed by Wenson Hsieh.

Source/WebKit:

In native applications, tapping on a compact UIDatePicker presents an
inline picker using _UIDatePickerOverlayPresentation. To avoid
maintaining our own presentation logic, and to better match the native
presentation, use _UIDatePickerOverlayPresentation when tapping on a
date/time input in WebKit.

Covered by existing tests.

  • Platform/spi/ios/UIKitSPI.h:

Declare the SPI rather than importing the header directly, as the
_UIDatePickerOverlayAnchor enum is not available in all SDKs with
the header.

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePickerViewController initWithDatePicker:]):
(-[WKDateTimePickerViewController setDelegate:]):
(-[WKDateTimePicker initWithView:datePickerMode:]):

Create the UIDatePicker here so it can be shared by the old context menu
presentation and the new overlay presentation.

(-[WKDateTimePicker handleDatePickerPresentationDismissal]):
(-[WKDateTimePicker removeDatePickerPresentation]):

accessoryDone eventually removes the presentation. If the date picker
is already being dismissed, do not dismiss it without an animation.

For programmatic dismissal (using blur()) this method is called prior to
accessoryDone, in which case we force dismissal without animation.

(-[WKDateTimePicker dateTimePickerViewControllerDidPressResetButton:]):
(-[WKDateTimePicker dateTimePickerViewControllerDidPressDoneButton:]):
(-[WKDateTimePicker showDateTimePicker]):
(-[WKDateTimePicker datePickerChanged:]):
(-[WKDateTimePicker reset:]):
(-[WKDateTimePicker done:]):
(-[WKDateTimePicker dealloc]):
(-[WKDateTimePicker _timeZoneOffsetFromGMT:]):
(-[WKDateTimePicker dateFormatterForPicker]):
(-[WKDateTimePicker _dateChangedSetAsNumber]):
(-[WKDateTimePicker _dateChangedSetAsString]):
(-[WKDateTimePicker setDateTimePickerToInitialValue]):
(-[WKDateTimePicker controlBeginEditing]):
(-[WKDateTimePicker controlEndEditing]):
(-[WKDateTimePicker calendarType]):
(-[WKDateTimePicker hour]):
(-[WKDateTimePicker minute]):
(-[WKDateTimePicker setHour:minute:]):

Source/WTF:

  • wtf/PlatformHave.h:

Add HAVE(UIDATEPICKER_OVERLAY_PRESENTATION) and HAVE(UITOOLBAR_STANDARD_APPEARANCE).

LayoutTests:

  • fast/forms/ios/constant-scroll-area-when-moving-focus-between-fields.html:

Re-order the call to wait for the keyboard to dismiss since the
presentation SPI doesn't tell us exactly when the presentation animation
is complete. The other alternative was to add a manual delay, however,
re-ordering the calls is safe and preserves the original test behavior.

12:40 PM Changeset in webkit [279180] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening, skip a WebGL2 test
https://bugs.webkit.org/show_bug.cgi?id=227303

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-23

  • platform/glib/TestExpectations:
12:20 PM Changeset in webkit [279179] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

add/removeManagedReference:withOwner: should have autoreleasepools
https://bugs.webkit.org/show_bug.cgi?id=227308

Reviewed by Darin Adler.

Since these APIs create autoreleased objects as an implementation detail
but don't return any to the caller there's no indication such autoreleased
objects could be accumulating. Additionally, it's entirely reasonable to
call these methods in a loop an a large set of objects, which further
exacerbates the problem.

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine addManagedReference:withOwner:]):
(-[JSVirtualMachine removeManagedReference:withOwner:]):

12:11 PM Changeset in webkit [279178] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

Remove unneeded explicit exception checks in ScriptModuleLoader::evaluate().
https://bugs.webkit.org/show_bug.cgi?id=227302

Reviewed by Yusuke Suzuki.

A RELEASE_AND_RETURN will do because we're just propagating the exception to the
client in both cases.

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::evaluate):

11:49 AM Changeset in webkit [279177] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Bound stress/put-by-id-flags with a fixed number of iterations
https://bugs.webkit.org/show_bug.cgi?id=227305

Reviewed by Mark Lam.

  • stress/put-by-id-flags.js:

(numberOfDFGCompiles): Deleted.

11:38 AM Changeset in webkit [279176] by Chris Dumez
  • 1 edit
    2 adds in trunk/LayoutTests

CSSStyleDeclaration.getPropertyPriority() should return the empty string for invalid CSS properties
https://bugs.webkit.org/show_bug.cgi?id=227257
<rdar://problem/79622278>

Reviewed by Darin Adler.

Follow-up to r279125 to improve test coverage for usage of USVString in CSSStyleDeclaration.

  • fast/css/CSSStyleDeclaration-setProperty-unicode-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-setProperty-unicode.html: Added.
11:34 AM Changeset in webkit [279175] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Run typedarray-intrinsic-getters-change-prototype for a fixed set of iterations
https://bugs.webkit.org/show_bug.cgi?id=227304

Reviewed by Mark Lam.

  • stress/typedarray-intrinsic-getters-change-prototype.js:

(body):

10:42 AM Changeset in webkit [279174] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[macOS WK1] imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-snap-003.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=227085

Unreviewed test gardening.

Updating previous test expectation.

  • platform/mac-wk1/TestExpectations:
10:14 AM Changeset in webkit [279173] by Russell Epstein
  • 8 edits in branches/safari-611.3.10.0-branch/Source

Versioning.

WebKit-7611.3.10.0.1

10:08 AM Changeset in webkit [279172] by commit-queue@webkit.org
  • 9 edits in trunk/Source

rAF driven WebGL submits excessive amount of GPU work when frames are slow
https://bugs.webkit.org/show_bug.cgi?id=227059
<rdar://problem/79385858>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-23
Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

Advertise GL_ARB_sync for the Metal backend.
Since GL_ARB_sync is core in OpenGL ES 3.0 and the Metal backend advertises OpenGL ES 3.0,
the API must be working already.

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

(rx::DisplayMtl::initializeExtensions const):

Source/WebCore:

Limit in-flight WebGL frames to three frames. Do not continue preparation for display
until the commands for the oldest frame have been executed by the GPU.

This limits the impact slow frames have, especially in the
case where the compositor skip frames and WebKit would issue a new slow frame
on top of the skipped frame.

No new tests, tested manually with the pages referenced from the bugs.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::waitAndUpdateOldestFrame):

  • platform/graphics/angle/GraphicsContextGLANGLEUtilities.h:

(WebCore::ScopedGLFence::ScopedGLFence):
(WebCore::ScopedGLFence::operator=):
(WebCore::ScopedGLFence::~ScopedGLFence):
(WebCore::ScopedGLFence::reset):
(WebCore::ScopedGLFence::abandon):
(WebCore::ScopedGLFence::fenceSync):
(WebCore::ScopedGLFence::operator GLsync const):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
9:59 AM Changeset in webkit [279171] by Andres Gonzalez
  • 24 edits
    5 adds in trunk

Accessibility support for image text recognition.
https://bugs.webkit.org/show_bug.cgi?id=224280
rdar://76348740

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/ios-simulator/image-overlay-elements.html

Exposes to accessibility clients the elements created by
WebPage::requestTextRecognition for static images. This allows clients
to present the recognized text in images to assistive technology users.

  • Added a new AXObject subclass, AXImage, to encapsulate this functionality.

This class can be expanded to offload some of the image specific code
contained in AccessibilityRenderObject, AccessibilityNodeObject,
AccessibilityObject and others.

  • Since requestTextRecognition is an async call, added an AXNotification

to notify clients when the image overlay elements are available for
consumption.

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

(WebCore::AXImage::AXImage):
(WebCore::AXImage::create):
(WebCore::AXImage::roleValue const):
(WebCore::AXImage::imageOverlayElements):

  • accessibility/AXImage.h: Added.
  • accessibility/AXLogger.cpp:

(WebCore::operator<<):

  • accessibility/AXObjectCache.cpp:

(WebCore::isSimpleImage): Determines whether a given element is a static
image.
(WebCore::createFromRenderer): Instantiate an AXImage object when
appropriate.

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canHaveChildren const): Images can
have children.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::notificationPlatformName):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityElements]):
(-[WebAccessibilityObjectWrapper accessibilityImageOverlayElements]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::isAXImageInstance const):

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

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::children const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::children const):
(WTR::AccessibilityUIElement::imageOverlayElements const):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::children const):
(WTR::AccessibilityUIElement::imageOverlayElements const):

LayoutTests:

  • accessibility/image-link-expected.txt:
  • accessibility/ios-simulator/image-overlay-elements-expected.txt: Added.
  • accessibility/ios-simulator/image-overlay-elements.html: Added.
  • accessibility/resources/green-400x400.png: Added.
9:25 AM Changeset in webkit [279170] by mark.lam@apple.com
  • 7 edits
    2 adds in trunk

Add missing exception checks in ScriptModuleLoader and JSDOMPromiseDeferred.
https://bugs.webkit.org/show_bug.cgi?id=221374
rdar://problem/68911404

Reviewed by Yusuke Suzuki.

Based on patch by Frédéric Wang <fwang@igalia.com>.

Source/WebCore:

When an import call fails, ScriptModuleLoader::notifyFinished() rejects the
deferred promise with either a call to
DeferredPromise::reject(ExceptionCode, const String&, RejectAsHandled) or a call to
rejectToPropagateNetworkError() / DeferredPromise::rejectWithCallback(). When it
succeeds, it calls DeferredPromise::resolveWithPromise(). These correspond to three
places where we enter the VM. Catch scopes are thus added to handle uncaught
exceptions for DeferredPromise.

Currently, this logic for uncaught exceptions is already duplicated at several
places in the code, and is likely needed for other places too in follow-up work.
This patch however covers all the rejection and resolution calls from
ScriptModuleLoader. Additionally, it handles missing exception checks in
ScriptModuleLoader::evaluate.

Test: js/dom/modules/missing-exception-check-for-import.html

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::reject):
(WebCore::DeferredPromise::handleTerminationExceptionIfNeeded):
(WebCore::DeferredPromise::handleUncaughtException):

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::DeferredPromise::resolveWithCallback):
(WebCore::DeferredPromise::rejectWithCallback):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::evaluate):

LayoutTests:

Add a regression test for import('./'). Depending on the system configuration this can
execute two different rejection methods from ScriptModuleLoader::notifyFinished().
In other words, we may get 2 different error messages. Hence, the test needs to
allow for this variance.

Additional test cases are added for rejectToPropagateNetworkError /
DeferredPromise::rejectWithCallback (e.g. module file not found), for
DeferredPromise::reject(ExceptionCode, const String&, RejectAsHandled) (e.g. module file does
not have JavaScript MIME type) and DeferredPromise::resolveWithCallback (e.g. module import
is successful).

Also update promise-rejection-might-stack-overflow.html now that the stack overflow error is
reported.

  • js/dom/modules/missing-exception-check-for-import-expected.txt: Added.
  • js/dom/modules/missing-exception-check-for-import.html: Added.
  • js/dom/promise-rejection-might-stack-overflow-expected.txt:
  • js/dom/promise-rejection-might-stack-overflow.html:
8:37 AM Changeset in webkit [279169] by Chris Dumez
  • 725 edits
    15 copies
    1 move
    682 adds
    32 deletes in trunk

Update WPT tools from upstream
https://bugs.webkit.org/show_bug.cgi?id=227255

Reviewed by Jonathan Bedard.

LayoutTests/imported/w3c:

Update WPT tools from upstream 94d018bb5d7c0d46df7ba1.

  • web-platform-tests/tools/*: Updated.

Tools:

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer.init):
The WPT server requires Python v3 to run so fallback to python3 executable if
the python executable is v2.

8:20 AM Changeset in webkit [279168] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r279104.
https://bugs.webkit.org/show_bug.cgi?id=227292

Made various layout tests very flaky

Reverted changeset:

"[GPU Process] RELEASE_ASSERT in
RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may
fire if GPUP is relaunched"
https://bugs.webkit.org/show_bug.cgi?id=227229
https://trac.webkit.org/changeset/279104

8:20 AM Changeset in webkit [279167] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Run lazy properties initializers under a DeferTerminationForAWhile scope
https://bugs.webkit.org/show_bug.cgi?id=227271

Reviewed by Mark Lam.

We don't expect that exceptions can be thrown when initializing
a lazy property. Termination exceptions were preventing this from
being true. The latest example found is inside JSModuleLoader when
it asserts that no exception is thrown when creating its JSMap field.
This patch makes it so termination exceptions can't be thrown when
running lazy property initializers.

  • runtime/LazyPropertyInlines.h:

(JSC::ElementType>::initLater):
(JSC::ElementType>::callFunc):

Jun 22, 2021:

11:34 PM Changeset in webkit [279166] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Message dropped when restoring webpages.
https://bugs.webkit.org/show_bug.cgi?id=227278

Reviewed by Tim Horton.

The message to initialize the state of highlightVisibility is dropped sometimes, but
fortunately, there is no need to pass the current state when initializing the
HighlightObserver, as WebPageProxy::creationParameters will obtain the correct
highlight state on initialization after r279078.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setUpHighlightsObserver):

6:33 PM Changeset in webkit [279165] by Darin Adler
  • 27 edits in trunk

Improve more of the CSS list style implementations
https://bugs.webkit.org/show_bug.cgi?id=227206

Reviewed by Antti Koivisto.

Source/WebCore:

Added support for 12 new values for list-style-type: disclosure-closed,
disclosure-open, ethiopic-numeric, japanese-formal, japanese-informal,
korean-hangul-formal, korean-hanja-formal, korean-hanja-informal,
simp-chinese-formal, simp-chinese-informal, trad-chinese-informal,
and trad-chinese-formal.

Improved implementation to match specification more closely for a few
existing values for list-style-type: armenian, cjk-ideographic, hebrew,
lower-armenian, lower-roman, upper-armenian, and upper-roman.

Fixed a rendering issue where we would position list items incorrectly
in list-style-position:inside cases because of measuring the list marker
widths and the list marker suffix widths separately and adding them
instead of measuring them together. This was causing some of the
Web Platform Tests, done using ref tests, to fail.

  • accessibility/AccessibilityObject.cpp:

(WebCore::listMarkerTextForNode): Updated since
RenderListItem::markerTextWithSuffix now returns a StringView.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::stringValue const): Updated
to call RenderListMarker::textWithoutSuffix.

  • accessibility/atk/WebKitAccessibleHyperlink.cpp:

(rangeLengthForObject): Ditto.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(accessibilityObjectLength): Ditto.
(webkitAccessibleTextGetText): Updated since
RenderListItem::markerTextWithSuffix now returns a StringView.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::toCSSValueID): Factored this out into a separate helper.
Also made it take advantage of the relationship between the enumeration
and the CSS value keywords that the code in the other direction already
was relying on so we don't have to list all the keywords.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Refactored to call the
toCSSValueID function.

  • css/CSSValueKeywords.in: Added 12 new list-type-style constants:

disclosure-open, disclosure-closed, japanese-informal, japanese-formal,
korean-hangul-formal, korean-hanja-informal, korean-hanja-formal,
simp-chinese-informal, simp-chinese-formal, trad-chinese-informal,
trad-chinese-formal, and ethiopic-numeric.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::isPredefinedCounterStyle): Updated
since the last predefined counter style is EthiopicNumeric.

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::markerTextWithoutSuffix const): Renamed from
markerText, and changed to return a StringView.
(WebCore::RenderListItem::markerTextWithSuffix const): Return a StringView.

  • rendering/RenderListItem.h: Updated for the above.
  • rendering/RenderListMarker.cpp:

(WebCore::toRoman): Deleted.
(WebCore::toAlphabeticOrNumeric): Tweaked to use compile time instead of
runtime checks for alphabetic vs. numeric.
(WebCore::toSymbolic): Updated for above.
(WebCore::toAlphabetic): Ditto.
(WebCore::toNumeric): Ditto.
(WebCore::toHebrewUnder1000): Deleted.
(WebCore::toHebrew): Deleted.
(WebCore::toArmenianUnder10000): Deleted.
(WebCore::toArmenian): Deleted.
(WebCore::toGeorgian): Deleted.
(WebCore::toCJKIdeographic): Added handling for negative numbers and also
tweaked coding style a bit.
(WebCore::toPredefinedAdditiveSystem): Added. Implements the additive
system concept, which we use below to re-implement Hebrew, Armenian,
Georgian, Japanese, and Korean styles.
(WebCore::toEthiopicNumeric): Added.
(WebCore::effectiveListMarkerType): Added the new styles. Also updated the
allowable values for CJKIdeographic to allow negative numbers, and for Hebrew
to no longer allow 0 or numbers over 10999. Also sorted the sections by the
name of the first list style type in each section.
(WebCore::listMarkerSuffix): Changed to return a StringView instead of a
UChar, and include the trailing space. Choose the suffix based on the
specified type and not the effective type, so fallback does not cause the
suffix to fall back. Added the new types.
(WebCore::suffixRequiresSpace): Deleted.
(WebCore::listMarkerText): Added implementations for all the new types.
Also updated the implementation of CJKIdeographic, LowerRoman, UpperRoman,
Armenian, UpperArmenian, LowerArmenian, Georgian, and Hebrew to match a
newer CSS specification draft, and in most cases was able to use
toPredefinedAdditiveSystem instead of language-specific functions.
(WebCore::RenderListMarker::createInlineBox): Stop using the isText function,
which was only used here.
(WebCore::RenderListMarker::paint): Updated for the name change of
relativeMarkerRect. Removed unneeded special case for ListStyleType::None.
Use the new RenderListMarker::textRun function, moving all the code that
deals with direction and suffix in there.
(WebCore::reversed): Added. Helper used by textRun.
(WebCore::RenderListMarker::textRun const): Added. Composes a TextRun for
drawing or measuring text. By using the same function in all those places,
we guarantee we measure the text together instead of in pieces, which fixes
some layout errors leading to test failures that measuring separately and
adding the results together was causing.
(WebCore::RenderListMarker::addOverflowFromListMarker): Use the data
member m_lineOffsetForListItem instead of the lineOffsetForListItem
function, which was only used here.
(WebCore::RenderListMarker::updateMarginsAndContent): Moved the check of
preferredLogicalWidthsDirty and the comment about it here.
(WebCore::RenderListMarker::updateContent): Moved check of
preferredLogicalWidthsDirty out of this function since one caller asserts
it, and so the other caller can do the check itself. Added code to set
m_textWithSuffix, m_textWithoutSuffixLength, and m_textIsLeftToRightDirection.
Removed unneeded special cases for ListStyleType::None, Circle, Disc, and
Square, which are all handled correctly by the main algorithm. Added a FIXME
about the inadequacy of our bidi algorithm implementation for the general case.
(WebCore::RenderListMarker::computePreferredLogicalWidths): Use the new
textRun function, allowing us to remove some special case code, including
the special cases for ListStyleType::None, Asterisks, Footnotes, and String.
(WebCore::RenderListMarker::updateMargins): Removed unneeded special case for
ListStyleType::None, and updated string empty checks for the new name of the
m_textWithSuffix data member.
(WebCore::RenderListMarker::suffix const): Deleted.
(WebCore::RenderListMarker::relativeMarkerRect): Renamed from
getRelativeMarkerRect. Use the new textRun function, allowing us to remove
some special case code, including the special cases for ListTyleType::None,
Asterisks, Footnotes, and String.
(WebCore::RenderListMarker::textWithoutSuffix const): Added.

  • rendering/RenderListMarker.h: Marked functions as final instead of just

override. Got rid of unneeded suffix and lineOffsetForListItem functions.
Renamed text ot textWithoutSuffix and added textWithSuffix. Added textRun
private member function. Replaced m_text with m_textWithSuffix,
m_textWithoutSuffixLength, and m_textIsLeftToRightDirection.

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject): Use textWithoutSuffix.
(WebCore::markerTextForListItem): Use markerTextWithoutSuffix.

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<): Use getValueName from CSSValueKeywords.h and
toCSSValueID to avoid repeating the names of all the list style types here.

  • rendering/style/RenderStyleConstants.h: Added the 12 new list style types.

Source/WTF:

  • wtf/unicode/CharacterNames.h: Added blackDown/Left/RightPointingSmallTriangle.

LayoutTests:

  • fast/lists/li-values-expected.txt: Updated to expect newly specified behavior. When

this test was written, the specification was different.

  • fast/lists/li-values.html: Ditto.
  • fast/lists/w3-css3-list-styles-fallback-style-expected.txt: Ditto. Also many of these

were expecting failures.

  • fast/lists/w3-css3-list-styles-fallback-style.html: Ditto.
  • fast/lists/w3-css3-list-styles-numeric-expected.txt: Ditto. Also added tests for

ethiopic-numeric.

  • fast/lists/w3-css3-list-styles-numeric.html: Ditto.
  • fast/lists/w3-list-styles-expected.txt: Updated expected result for 0 in Hebrew.
  • platform/mac/TestExpectations: Moved some image failure expectations from here to the

main TestExpectations because they do not seem to be platform-specific.

6:32 PM Changeset in webkit [279164] by Wenson Hsieh
  • 28 edits
    1 copy in trunk/Source

[Live Text] [macOS] Add an internal option to disable inline text selection in images
https://bugs.webkit.org/show_bug.cgi?id=227265
rdar://79460142

Reviewed by Tim Horton.

Source/WebCore:

Add support for the new feature flag. See WebKit/ChangeLog for more details.

  • en.lproj/Localizable.strings:

Add additional localizable strings to represent each of the possible titles for the "Quick Look"/"Look Up"
context menu item. When inline text selection is enabled, the item shows up as "Look Up", and is only added if
we actually discover visual search results.

However, when inline text selection is disabled, this item will always be added to the context menu under the
title "Quick Look", and will be retitled to either "Look Up in Quick Look" or "Select Text in Quick Look" once
either visual search results or text is recognized, respectively.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):

In the case where inline text selection is disabled, add the Quick Look item to the end of the context menu,
after a separator. Note that in the case where inline text selection is enabled, it doesn't actually matter
where we add this item, since it is automatically removed and only reinserted if we find visual search results
for the image.

(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

Rename the existing ContextMenuItemTagLookUpImage to ContextMenuItemTagQuickLookImage, since it is no longer
limited to the visual look up feature.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):

Consult the feature flag and avoid kicking off the text recognition timer if inline text selection is disabled.

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:
  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::contextMenuItemTagQuickLookImage):
(WebCore::contextMenuItemTagQuickLookImageForTextSelection):
(WebCore::contextMenuItemTagQuickLookImageForVisualSearch):

Source/WebKit:

Refactor Live Text and Visual Look Up logic, such that the ability to select text inside of images is behind an
internal feature flag that can be toggled at runtime. When Live Text is disabled, we'll unconditionally show the
"Look Up" context menu action using the more generic title "Quick Look". This "Quick Look" action is then
retitled to either "Look Up in Quick Look" or "Select Text in Quick Look" once image analysis completes.

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

Rename ContextMenuItemTagLookUpImage to ContextMenuItemTagQuickLookImage.

  • UIProcess/Cocoa/QuickLookPreviewActivity.h: Copied from Source/WebKit/UIProcess/mac/WKQuickLookPreviewController.h.

Move this enum out of WKQuickLookPreviewController.h, such that we can use and import it in non-Cocoa headers
and implementation files.

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

(WebKit::WebViewImpl::computeHasImageAnalysisResults):

Rename computeHasVisualSearchResults to computeHasImageAnalysisResults, and allow it to take a flag to
indicate whether or not it should request text recognition results or visual search results. We use this for the
"Quick Look" context menu action when inline text selection is disabled, in order to retitle the item to "Select
Text in Quick Look".

(WebKit::WebViewImpl::computeHasVisualSearchResults): Deleted.

  • UIProcess/PageClient.h:

(WebKit::PageClient::computeHasImageAnalysisResults):
(WebKit::PageClient::computeHasVisualSearchResults): Deleted.

  • UIProcess/WebContextMenuProxy.h:

(WebKit::WebContextMenuProxy::quickLookPreviewActivity const):

Add a flag to WebContextMenuProxy to determine what initial activity to use when presenting the QuickLook
preview panel after selecting the ContextMenuItemTagQuickLookImage item.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::computeHasImageAnalysisResults):
(WebKit::WebPageProxy::computeHasVisualSearchResults): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::computeHasImageAnalysisResults):
(WebKit::PageClientImpl::computeHasVisualSearchResults): Deleted.

  • UIProcess/mac/WKQuickLookPreviewController.h:
  • UIProcess/mac/WKQuickLookPreviewController.mm:
  • UIProcess/mac/WebContextMenuProxyMac.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):

Add logic to either remove and reinsert the "Look Up" context menu action (if inline text selection in images is
enabled), or to promote the "Quick Look" context menu action to either "Select Text in Quick Look" or "Look Up
in Quick Look" in the case where inline text selection in images is disabled.

Note that when inline text selection in images is disabled, we'll first check for visual search results before
checking for text. This is because visual search results will take precedence over text selection (i.e., we'll
show "Look Up in Quick Look" even if both visual search results and text is present), so we can avoid performing
text analysis in the case where we already found visual search results.

(WebKit::WebContextMenuProxyMac::insertOrUpdateQuickLookImageItem):
(WebKit::WebContextMenuProxyMac::updateQuickLookContextMenuItemTitle):

Add a helper method to find and update the title of the NSMenuItem corresponding to
ContextMenuItemTagQuickLookImage. See getContextMenuFromItems above for more details.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::handleContextMenuQuickLookImage):
(WebKit::WebPageProxy::handleContextMenuLookUpImage): Deleted.

Rename this to handleContextMenuQuickLookImage, and have it take an argument to indicate whether the QuickLook
panel should start out in Visual Look Up mode.

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

Rename ContextMenuItemTagLookUpImage to ContextMenuItemTagQuickLookImage.

  • WebView/WebHTMLView.mm:

(toTag):

Source/WTF:

Add a new internal feature flag. See WebKit ChangeLog for more details.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
6:19 PM Changeset in webkit [279163] by Russell Epstein
  • 1 copy in tags/Safari-611.3.10.1.1

Tag Safari-611.3.10.1.1.

6:16 PM Changeset in webkit [279162] by Russell Epstein
  • 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc

Revert "Revert "Revert r279101. rdar://problem/79474211""

This reverts commit r279156.

6:16 PM Changeset in webkit [279161] by Russell Epstein
  • 1 edit in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.h

Revert "Unreviewed build fix. rdar://problem/79474211"

This reverts commit r279157.

6:00 PM Changeset in webkit [279160] by Alan Coon
  • 1 copy in tags/Safari-611.3.8.1.1

Tag Safari-611.3.8.1.1.

5:43 PM Changeset in webkit [279159] by Russell Epstein
  • 1 copy in tags/Safari-612.1.18.1.4

Tag Safari-612.1.18.1.4.

5:27 PM Changeset in webkit [279158] by Amir Mark Jr.
  • 3 edits in trunk/LayoutTests

[Catalina WK2 Debug/ iOS 14 Debug] fast/css-custom-paint/out-of-memory-while-adding-worklet-module.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=227273

Unrevieweed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:52 PM Changeset in webkit [279157] by Russell Epstein
  • 1 edit in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.h

Unreviewed build fix. rdar://problem/79474211

Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:82:5: error: static_assert failed due to requirement 'sizeof (WebKitVP8Decoder_BaseClass.alignedClass.version) == sizeof(unsigned long)'

4:52 PM Changeset in webkit [279156] by Russell Epstein
  • 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc

Revert "Revert r279101. rdar://problem/79474211"

This reverts commit r279154.

4:48 PM Changeset in webkit [279155] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

[macOS] Suspend WebProcesses that are in the process cache
https://bugs.webkit.org/show_bug.cgi?id=227269

Reviewed by Geoffrey Garen.

Suspend WebProcesses that are in the process cache on macOS to make sure they use no CPU.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setIsInProcessCache):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
3:06 PM Changeset in webkit [279154] by Alan Coon
  • 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc

Revert r279101. rdar://problem/79474211

This reverts commit r279141.

3:00 PM Changeset in webkit [279153] by Russell Epstein
  • 2 edits in branches/safari-611.3.8.1-branch/Source/ThirdParty/libwebrtc

Cherry-pick r278906. rdar://problem/79634523

Enable kVTVideoEncoderSpecification_RequiredLowLatency in case of MacOS software encoder
https://bugs.webkit.org/show_bug.cgi?id=226873

Reviewed by Eric Carlson.

In case software encoder is being created for baseline, we can use kVTVideoEncoderSpecification_RequiredLowLatency
which provides better bitrate management than the regular SW encoder while still generating baseline content.
We check whether SW encoder is created based on kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder.
If property is unsupported or if its value is false, it means the encoder is software.

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm: (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

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

2:58 PM Changeset in webkit [279152] by Russell Epstein
  • 8 edits in branches/safari-611.3.8.1-branch/Source

Versioning.

WebKit-7611.3.8.1.1

2:55 PM Changeset in webkit [279151] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Further unreviewed build fix after r279133: remove even more things.

  • UIProcess/WebPageProxy.cpp:
2:43 PM Changeset in webkit [279150] by Russell Epstein
  • 1 copy in branches/safari-611.3.8.1-branch

New branch.

2:25 PM Changeset in webkit [279149] by Jonathan Bedard
  • 4 edits in trunk/Tools

[results.webkit.org] XSS vulnerability in configuration
https://bugs.webkit.org/show_bug.cgi?id=227267
<rdar://problem/74876210>

Reviewed by Dewei Zhu.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/drawer.js: Escape configuration specification.
  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
2:25 PM Changeset in webkit [279148] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

REGRESSION: [iOS] ASSERTION FAILED: pixelBuffer->data().length() >= 4 under WebCore::sampleColor
https://bugs.webkit.org/show_bug.cgi?id=227256
<rdar://problem/79584286>

Unreviewed, speculative internal test fix.

  • page/PageColorSampler.cpp:

(WebCore::sampleColor):
It seems like sometimes the PixelBuffer can have a length() of 0. Instead of only
having an ASSERT that there are enough items, actually early-return.

2:20 PM Changeset in webkit [279147] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r279133: remove unnecessary includes and defines after upstreaming.

  • UIProcess/WebPageProxy.cpp:
2:11 PM Changeset in webkit [279146] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] AVPlayer periodic time observer callback should use weakPtr
https://bugs.webkit.org/show_bug.cgi?id=227264
rdar://79269047

Reviewed by Jer Noble.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):

2:07 PM Changeset in webkit [279145] by pvollan@apple.com
  • 7 edits in trunk

[macOS] Deny mach-lookup to the service 'com.apple.print.normalizerd'
https://bugs.webkit.org/show_bug.cgi?id=227248
<rdar://problem/79600557>

Reviewed by Brent Fulgham.

Source/WebKit:

Deny mach-lookup to the service 'com.apple.print.normalizerd' in the WebKit processes on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuMachServices):

  • WebProcess/com.apple.WebProcess.sb.in:

LayoutTests:

Skip EPS test, which is failing when this service is unavailable.

  • platform/mac/TestExpectations:
2:00 PM Changeset in webkit [279144] by Ruben Turcios
  • 8 edits in branches/safari-612.1.18.1-branch/Source

Versioning.

WebKit-7612.1.18.1.4

1:33 PM Changeset in webkit [279143] by dino@apple.com
  • 18 edits
    4 adds in trunk/Source/ThirdParty/ANGLE

[ANGLE] Support importing external MTLTextures
https://bugs.webkit.org/show_bug.cgi?id=226690

Reviewed by Tim Horton.

Support MTLTextures as GL textures.
Merge https://chromium-review.googlesource.com/c/angle/angle/+/2820178

  • ANGLE.xcodeproj/project.pbxproj:
  • extensions/EGL_ANGLE_metal_texture_client_buffer.txt: Added.
  • include/EGL/eglext_angle.h:
  • src/common/utilities.cpp:

(egl::IsExternalImageTarget):

  • src/libANGLE/Caps.cpp:

(egl::DisplayExtensions::getStrings const):

  • src/libANGLE/Caps.h:
  • src/libANGLE/renderer/metal/BUILD.gn:
  • src/libANGLE/renderer/metal/DisplayMtl.h:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::createImage):
(rx::DisplayMtl::createExternalImageSibling):
(rx::DisplayMtl::generateExtensions const):
(rx::DisplayMtl::validateImageClientBuffer const):
(rx::DisplayMtl::initializeExtensions const):

  • src/libANGLE/renderer/metal/ImageMtl.h: Added.

(rx::TextureImageSiblingMtl::getTexture const):
(rx::TextureImageSiblingMtl::getFormatMtl const):
(rx::ImageMtl::getTexture const):
(rx::ImageMtl::getImageTextureType const):
(rx::ImageMtl::getImageLevel const):
(rx::ImageMtl::getImageLayer const):

  • src/libANGLE/renderer/metal/ImageMtl.mm: Added.

(rx::TextureImageSiblingMtl::TextureImageSiblingMtl):
(rx::TextureImageSiblingMtl::~TextureImageSiblingMtl):
(rx::TextureImageSiblingMtl::ValidateClientBuffer):
(rx::TextureImageSiblingMtl::initialize):
(rx::TextureImageSiblingMtl::initImpl):
(rx::TextureImageSiblingMtl::onDestroy):
(rx::TextureImageSiblingMtl::getFormat const):
(rx::TextureImageSiblingMtl::isRenderable const):
(rx::TextureImageSiblingMtl::isTexturable const):
(rx::TextureImageSiblingMtl::getSize const):
(rx::TextureImageSiblingMtl::getSamples const):
(rx::ImageMtl::ImageMtl):
(rx::ImageMtl::~ImageMtl):
(rx::ImageMtl::onDestroy):
(rx::ImageMtl::initialize):
(rx::ImageMtl::orphan):

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

(rx::RenderbufferMtl::setStorageEGLImageTarget):

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

(rx::TextureMtl::setEGLImageTarget):

  • src/libANGLE/renderer/metal/gen_mtl_format_table.py:

(gen_image_map_switch_mac_case.gen_format_assign_code):
(gen_image_mtl_to_angle_switch_string):
(main):

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

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

  • src/libANGLE/renderer/metal/mtl_format_utils.h:
  • src/libANGLE/validationEGL.cpp:

(egl::ValidateCreateImage):

  • src/tests/BUILD.gn:
  • src/tests/gl_tests/ImageTest.cpp:

(angle::TEST_P):

  • src/tests/gl_tests/ImageTestMetal.mm: Added.

(angle::ScopeMetalTextureRef::ScopeMetalTextureRef):
(angle::ScopeMetalTextureRef::~ScopeMetalTextureRef):
(angle::ScopeMetalTextureRef::get const):
(angle::ScopeMetalTextureRef::operator id<MTLTexture> const):
(angle::ScopeMetalTextureRef::operator=):
(angle::ScopeMetalTextureRef::release):
(angle::CreateMetalTexture2D):
(angle::ImageTestMetal::ImageTestMetal):
(angle::ImageTestMetal::getMtlDevice):
(angle::ImageTestMetal::createMtlTexture2D):
(angle::ImageTestMetal::verifyResultsTexture):
(angle::ImageTestMetal::verifyResults2D):
(angle::ImageTestMetal::reinterpretHelper):
(angle::ImageTestMetal::hasImageNativeMetalTextureExt const):
(angle::ImageTestMetal::hasOESExt const):
(angle::ImageTestMetal::hasBaseExt const):
(angle::ImageTestMetal::sourceMetalTarget2D_helper):
(angle::TEST_P):

1:26 PM Changeset in webkit [279142] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[RenderTreeBuilder] ASSERTION FAILED: m_renderer in FloatingObject::renderer()
https://bugs.webkit.org/show_bug.cgi?id=227260
<rdar://77329323>

Reviewed by Antti Koivisto.

Source/WebCore:

This is a very similar to webkit.org/b/224996, where moving subtrees around fails to invalidate floating object sets in sibling blocks.
(see the Changelog entry for more details on how sibling invalidation works).
In this case the anonymous parent block is destroyed as it is no longer needed (and we move all its descendants out first). However this
block has an intruding float and this float is also registered in the sibling blocks.

Test: fast/block/float-assert-when-anon-parent-is-destroyed.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::moveChildren):
(WebCore::RenderTreeBuilder::removeFloatingObjects):

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

(WebCore::RenderTreeBuilder::Block::removeLeftoverAnonymousBlock):

LayoutTests:

  • fast/block/float-assert-when-anon-parent-is-destroyed-expected.txt: Added.
  • fast/block/float-assert-when-anon-parent-is-destroyed.html: Added.
1:13 PM Changeset in webkit [279141] by Alan Coon
  • 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc

Cherry-pick r279101. rdar://problem/79474211

[Mac] libwebrtc CMBaseClass objects need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=227137
<rdar://problem/79464124>

Reviewed by Youenn Fablet.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.h: Define CMBASE_OBJECT_NEEDS_ALIGNMENT.
  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp: (webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on Mac and Mac Catalyst when building for x86_64 so function pointers are naturally aligned. Add static_asserts to ensure alignment and sizes are correct.
  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp: (webrtc::createWebKitVP9Decoder): Ditto.

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

1:13 PM Changeset in webkit [279140] by Alan Coon
  • 2 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc

Cherry-pick r278906. rdar://problem/79581492

Enable kVTVideoEncoderSpecification_RequiredLowLatency in case of MacOS software encoder
https://bugs.webkit.org/show_bug.cgi?id=226873

Reviewed by Eric Carlson.

In case software encoder is being created for baseline, we can use kVTVideoEncoderSpecification_RequiredLowLatency
which provides better bitrate management than the regular SW encoder while still generating baseline content.
We check whether SW encoder is created based on kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder.
If property is unsupported or if its value is false, it means the encoder is software.

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm: (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

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

1:08 PM Changeset in webkit [279139] by Alan Coon
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.1

1:07 PM Changeset in webkit [279138] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed tvOS build fix after r279119: add PLATFORM(IOS) guards to exclude tvOS and Catalyst builds.

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::setEligibleForSmartRouting):

12:47 PM Changeset in webkit [279137] by Fujii Hironori
  • 4 edits in trunk/Source

[GLib] Rewrite NetworkCache::Data::adoptMap without FileSystem::MappedFileData::leakHandle and munmap
https://bugs.webkit.org/show_bug.cgi?id=227017

Reviewed by Carlos Garcia Campos.

Source/WebKit:

FileSystem::MappedFileData class wraps file mapping APIs like mmap
and munmap in cross-platform manner. NetworkCache::Data::adoptMap
shouldn't use FileSystem::MappedFileData::leakHandle and munmap.

  • NetworkProcess/cache/NetworkCacheDataGLib.cpp:

(WebKit::NetworkCache::MapWrapper::~MapWrapper):
(WebKit::NetworkCache::Data::adoptMap):

Source/WTF:

  • wtf/FileSystem.h: MappedFileData::leakHandle is used only if PLATFORM(COCOA) now.
12:38 PM Changeset in webkit [279136] by Russell Epstein
  • 1 copy in branches/safari-611.3.10.1-branch

New branch.

12:38 PM Changeset in webkit [279135] by Russell Epstein
  • 1 copy in branches/safari-611.3.10.0-branch

New branch.

11:53 AM Changeset in webkit [279134] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Add a new pattern to instruction selector to utilize SMADDL supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227188

Patch by Yijia Huang <Yijia Huang> on 2021-06-22
Reviewed by Saam Barati.

Signed Multiply-Add Long(SMADDL), supported by ARM64, multiplies two 32-bit
register values, adds a 64-bit register value, and writes the result to the
64-bit destination register. The instruction selector can utilize this to
lowering certain patterns in B3 IR before further Air optimization.

Given the operation:

smaddl d, n, m, a

The equivalent patterns would be:

d = a + SExt32(n) * SExt32(m)
d = SExt32(n) * SExt32(m) + a

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = SExt32(Trunc(ArgumentReg(%x1)))
Int @2 = SExt32(Trunc(ArgumentReg(%x2)))
Int @3 = Mul(@1, @2)
Int @4 = Add(@0, @3)
Void@5 = Return(@4, Terminal)

Before Adding SMADDL:
Old optimized AIR
SignExtend32ToPtr %x1, %x1, @1
SignExtend32ToPtr %x2, %x2, @2
MultiplyAdd64 %x1, %x2, %x0, %x0, @4
Ret64 %x0, @5

After Adding SMADDL:
New optimized AIR
MultiplyAddSignExtend32 %x1, %x2, %x0, %x0, @8
Ret64 %x0, @9

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::multiplyAddSignExtend32):

  • assembler/testmasm.cpp:

(JSC::testMultiplyAddSignExtend32Left):
(JSC::testMultiplyAddSignExtend32Right):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testMulAddArg):
(testMulAddArgsLeft):
(testMulAddArgsRight):
(testMulAddSignExtend32ArgsLeft):
(testMulAddSignExtend32ArgsRight):
(testMulAddArgsLeft32):
(testMulAddArgsRight32):

  • b3/testb3_3.cpp:

(addArgTests):

11:49 AM Changeset in webkit [279133] by jer.noble@apple.com
  • 5 edits
    1 copy
    10 adds in trunk/Source/WebKit

[Cocoa] Upstream GroupActivitiesCoordinator
https://bugs.webkit.org/show_bug.cgi?id=226757

Reviewed by Eric Carlson.

Upstream the backing objects for a GroupActivities-based MediaSessionCoordinator.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/GroupActivities/GroupActivitiesCoordinator.h: Added.
  • UIProcess/Cocoa/GroupActivities/GroupActivitiesCoordinator.mm: Added.

(-[WKGroupActivitiesCoordinatorDelegate initWithParent:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssuePlayCommand:completionHandler:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssuePauseCommand:completionHandler:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssueSeekCommand:completionHandler:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssueBufferingCommand:completionHandler:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssuePrepareTransitionCommand:]):
(WebKit::GroupActivitiesCoordinator::create):
(WebKit::GroupActivitiesCoordinator::GroupActivitiesCoordinator):
(WebKit::GroupActivitiesCoordinator::~GroupActivitiesCoordinator):
(WebKit::GroupActivitiesCoordinator::sessionStateChanged):
(WebKit::GroupActivitiesCoordinator::identifier const):
(WebKit::GroupActivitiesCoordinator::join):
(WebKit::GroupActivitiesCoordinator::leave):
(WebKit::GroupActivitiesCoordinator::seekTo):
(WebKit::GroupActivitiesCoordinator::play):
(WebKit::GroupActivitiesCoordinator::pause):
(WebKit::GroupActivitiesCoordinator::setTrack):
(WebKit::GroupActivitiesCoordinator::positionStateChanged):
(WebKit::GroupActivitiesCoordinator::readyStateChanged):
(WebKit::GroupActivitiesCoordinator::playbackStateChanged):
(WebKit::GroupActivitiesCoordinator::trackIdentifierChanged):
(WebKit::GroupActivitiesCoordinator::issuePlayCommand):
(WebKit::GroupActivitiesCoordinator::issuePauseCommand):
(WebKit::GroupActivitiesCoordinator::issueSeekCommand):
(WebKit::GroupActivitiesCoordinator::issueBufferingCommand):
(WebKit::GroupActivitiesCoordinator::issuePrepareTransitionCommand):

  • UIProcess/Cocoa/GroupActivities/GroupActivitiesSession.h: Added.

(WebKit::GroupActivitiesSession::groupSession):

  • UIProcess/Cocoa/GroupActivities/GroupActivitiesSession.mm: Added.

(WebKit::GroupActivitiesSession::create):
(WebKit::GroupActivitiesSession::GroupActivitiesSession):
(WebKit::GroupActivitiesSession::~GroupActivitiesSession):
(WebKit::GroupActivitiesSession::join):
(WebKit::GroupActivitiesSession::leave):
(WebKit::GroupActivitiesSession::state const):
(WebKit::GroupActivitiesSession::uuid const):
(WebKit::GroupActivitiesSession::fallbackURL const):
(WebKit::GroupActivitiesSession::addStateChangeObserver):
(WebKit::GroupActivitiesSession::addFallbackURLObserver):

  • UIProcess/Cocoa/GroupActivities/GroupActivitiesSessionNotifier.h: Added.
  • UIProcess/Cocoa/GroupActivities/GroupActivitiesSessionNotifier.mm: Added.

(WebKitSwiftLibrary):
(WebKit::GroupActivitiesSessionNotifier::sharedNotifier):
(WebKit::GroupActivitiesSessionNotifier::GroupActivitiesSessionNotifier):
(WebKit::GroupActivitiesSessionNotifier::sessionStateChanged):
(WebKit::GroupActivitiesSessionNotifier::addWebPage):
(WebKit::GroupActivitiesSessionNotifier::removeWebPage):
(WebKit::GroupActivitiesSessionNotifier::webPageURLChanged):
(WebKit::GroupActivitiesSessionNotifier::hasSessionForURL):
(WebKit::GroupActivitiesSessionNotifier::takeSessionForURL):

  • UIProcess/Cocoa/GroupActivities/WKGroupSession.h: Added.
  • UIProcess/Cocoa/GroupActivities/WKGroupSession.swift: Added.

(WKURLActivityWrapper.urlActivity):
(WKURLActivityWrapper.fallbackURL):
(WKGroupSessionWrapper.groupSession):
(WKGroupSessionWrapper.cancellables):
(WKGroupSessionWrapper.activity):
(WKGroupSessionWrapper.uuid):
(WKGroupSessionWrapper.wrapperSessionState(_:)):
(WKGroupSessionWrapper.state):
(WKGroupSessionWrapper.newActivityCallback):
(WKGroupSessionWrapper.stateChangedCallback):
(WKGroupSessionWrapper.join):
(WKGroupSessionWrapper.leave):
(WKGroupSessionWrapper.coordinate(_:)):
(WKGroupSessionWrapper.activityChanged(_:)):
(WKGroupSessionWrapper.stateChanged(_:)):
(WKGroupSessionObserver.newSessionCallback):
(WKGroupSessionObserver.cancellables):
(WKGroupSessionObserver.recievedSession(_:)):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::didCommitLoadForFrame):

  • WebKit.xcodeproj/project.pbxproj:
11:48 AM Changeset in webkit [279132] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Don't assume stress/out-of-memory-while-constructing-BytecodeGenerator.js will OOM
https://bugs.webkit.org/show_bug.cgi?id=227263

Reviewed by Yusuke Suzuki.

  • stress/out-of-memory-while-constructing-BytecodeGenerator.js:
11:44 AM Changeset in webkit [279131] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening, add timeouts in new test
https://bugs.webkit.org/show_bug.cgi?id=227258

media/media-source/media-source-has-audio-video.html and
media/media-source/media-source-seek-unbuffered.html
have timed on GTK and WPE since they were added.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-22

  • platform/glib/TestExpectations:
11:33 AM Changeset in webkit [279130] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (Safari 14): Submenus on https://codelearn.cat don't show
https://bugs.webkit.org/show_bug.cgi?id=225467
<rdar://problem/77612276>

Reviewed by Alan Bujtas.
Source/WebCore:

RenderBox::requiresLayerWithScrollableArea() is called via RenderLayer::styleChanged()
which is before layout, yet requiresLayerWithScrollableArea() was consulting layout-dependent

state under hasHorizontalOverflow()
hasVerticalOverflow(). This resulted in composited

scrolling layers sticking around after overflow style changed from scroll to visible.

Fix by just removing the "has overflow" checks; we make RenderLayerScrollableArea
for any non-visible overflow anyway. scrollsOverflow() checks hasOverflowClip(),
so all we need is a hasOverflowClip() check.

Remove some redundant comments and add a FIXME about layers which get RenderLayerScrollableAreas
but don't need them.

Test: compositing/overflow/overflow-scroll-to-visible.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::requiresLayerWithScrollableArea const):

LayoutTests:

  • compositing/overflow/overflow-scroll-to-visible-expected.html: Added.
  • compositing/overflow/overflow-scroll-to-visible.html: Added.
11:18 AM Changeset in webkit [279129] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Run detach-buffer-during-iteration for fewer iterations
https://bugs.webkit.org/show_bug.cgi?id=227262

Reviewed by Yusuke Suzuki.

  • stress/detach-buffer-during-iteration.js:
11:08 AM Changeset in webkit [279128] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Run microbenchmarks/interpreter-wasm under runDefault only
https://bugs.webkit.org/show_bug.cgi?id=227261

Reviewed by Robin Morisset.

  • microbenchmarks/interpreter-wasm.js:
11:04 AM Changeset in webkit [279127] by Alan Coon
  • 1 copy in tags/Safari-611.3.10

Tag Safari-611.3.10.

10:48 AM Changeset in webkit [279126] by sbarati@apple.com
  • 17 edits in trunk

jitCompileAndSetHeuristics shouldn't return true when we fail to compile
https://bugs.webkit.org/show_bug.cgi?id=227155

Reviewed by Tadeu Zagallo.

JSTests:

  • microbenchmarks/interpreter-wasm.js:
  • microbenchmarks/memcpy-wasm-large.js:
  • microbenchmarks/memcpy-wasm-medium.js:
  • microbenchmarks/memcpy-wasm-small.js:
  • microbenchmarks/memcpy-wasm.js:
  • stress/wasm-error-message-cross-threads.js:

Source/JavaScriptCore:

jitCompileAndSetHeuristics should only return true when we've successfully
compiled a baseline JIT CodeBlock. However, with the rewrite to using a
unified JIT worklist, the code was changed to returning true when a
compilation finished, regardless of it being successful or not. This patch
fixes that error.

This bug was found by our existing executable allocation fuzzer, but at a low
hit rate. That fuzzer only ran a single test case. This patch also introduces
a new form of the executable fuzzer where we fail to allocate JIT code
randomly, and the crash manifests more reliably. And this patch also hooks
the new fuzzer into more JSC stress tests.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):

  • jit/ExecutableAllocationFuzz.cpp:

(JSC::doExecutableAllocationFuzzing):

  • jsc.cpp:

(runJSC):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/OptionsList.h:

Source/WTF:

  • wtf/WeakRandom.h:

Tools:

  • Scripts/run-jsc-stress-tests:
10:43 AM Changeset in webkit [279125] by Chris Dumez
  • 5 edits
    2 adds in trunk

CSSStyleDeclaration.getPropertyPriority() should return the empty string for invalid CSS properties
https://bugs.webkit.org/show_bug.cgi?id=227257

Reviewed by Geoffrey Garen.

Source/WebCore:

CSSStyleDeclaration.getPropertyPriority() should return the empty string for invalid CSS properties,
not null. Corresponding specification:

Gecko and Blink match the specification here so changing our behavior improves compatibility.

Also use CSSOMString instead of DOMString in the CSSStyleDeclaration IDL to match the specification,
since I was modifying the IDL.

Test: fast/css/CSSStyleDeclaration-getPropertyPriority-invalid-property.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::CSSComputedStyleDeclaration::getPropertyPriority):

  • css/CSSStyleDeclaration.idl:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):

LayoutTests:

Add layout test coverage.

  • fast/css/CSSStyleDeclaration-getPropertyPriority-invalid-property-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-getPropertyPriority-invalid-property.html: Added.
10:36 AM Changeset in webkit [279124] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/ThirdParty/libwebrtc

Revert r279011. rdar://problem/79474211

This reverts commit r279021.

10:30 AM Changeset in webkit [279123] by Jean-Yves Avenard
  • 5 edits in trunk/Source/WebCore

Remove unused method in AudioFileReader
https://bugs.webkit.org/show_bug.cgi?id=227208

Reviewed by Chris Dumez.

Remove two unused methods in AudioFileReader and their related constructors.

  • platform/audio/AudioFileReader.h:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp:
  • platform/audio/cocoa/AudioFileReaderCocoa.h:
  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::decodeAudioForBusCreation):

10:00 AM Changeset in webkit [279122] by Peng Liu
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: videoFullscreenManager->client() == nullptr in WKFullScreenWindowController.mm
https://bugs.webkit.org/show_bug.cgi?id=227243

Reviewed by Eric Carlson.

-[WKFullScreenWindowController windowDidExitFullScreen:] needs to clear
its client like -[WKFullScreenWindowController didExitPictureInPicture] does.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController windowDidExitFullScreen:]):

9:55 AM Changeset in webkit [279121] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.3.10

9:44 AM Changeset in webkit [279120] by Truitt Savell
  • 8 edits in trunk

Unreviewed, reverting r279083.

Broke Mac Builds

Reverted changeset:

"Migrate App Privacy Report code from WebKitAdditions"
https://bugs.webkit.org/show_bug.cgi?id=227045
https://commits.webkit.org/r279083

9:17 AM Changeset in webkit [279119] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[Cocoa] iOS device steals BT headphones from other devices during silent playback
https://bugs.webkit.org/show_bug.cgi?id=227227
<rdar://78792479>

Reviewed by Eric Carlson.

Source/WebCore:

Explicitly disable smart routing when WebKit itself does not explicitly activate its AVAudioSession.
The audio session will be implicitly activated even for audio-less or silent media playback, and
this will prevent headsets from being "stolen" when that session is implicitly activated.

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

(WebCore::setEligibleForSmartRouting):
(WebCore::AudioSessionIOS::AudioSessionIOS):
(WebCore::AudioSessionIOS::tryToSetActiveInternal):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:
9:16 AM Changeset in webkit [279118] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Make rendererIsEverNeeded check less strict
https://bugs.webkit.org/show_bug.cgi?id=226791

Patch by Rob Buis <rbuis@igalia.com> on 2021-06-22
Reviewed by Antti Koivisto.

Make rendererIsEverNeeded check less strict
in TreeResolver::resolveElement.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

8:31 AM Changeset in webkit [279117] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebCore

Shrink sizeof(RegisteredEventListener)
https://bugs.webkit.org/show_bug.cgi?id=227230

Reviewed by Geoffrey Garen.

This patch changes the ordering of members of RegisteredEventListener to make it small from 24 to 16.

  • dom/RegisteredEventListener.h:

(WebCore::RegisteredEventListener::RegisteredEventListener):
(): Deleted.

7:54 AM Changeset in webkit [279116] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[AppleWin] Update test expectations
https://bugs.webkit.org/show_bug.cgi?id=226970

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:25 AM Changeset in webkit [279115] by commit-queue@webkit.org
  • 6 edits in trunk

Functions dispatched to WorkQueue are sometimes destroyed in the calling thread due to block refcounting
https://bugs.webkit.org/show_bug.cgi?id=227160

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-22
Reviewed by Antti Koivisto.

Source/WebKit:

As an example, remove one workaround mutability of dispatched function
and nullptr assignment that was needed for working around
WorkQueue::dispatch bug where the dispatched function was not always
destroyed in the queue.

  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:

(WebKit::MediaTrackReader::finalize):

Source/WTF:

WorkQueue::dispatch Function bodies always execute in the thread of target
queue. However, sometimes the Function destruction would happen in the
dispatched-from thread. This is not what the WorkQueue::dispatch callers
expect.

Implement some of the WorkQueue::dispatch* in terms of dispatch_..._f()
variants which take a function and context pointer instead of a block.

Blocks are reference counted objects without the ability to pass the
ownership of the reference. For dispatch case, it means that caller will
need to hold the reference while dispatch_...() returns. In thread
contention cases the called block might complete and reference be
dropped in the thread of the queue before the dispatched-from thread
would drop its reference to the block. This would cause the dispatched
Function to be destroyed in the dispatched-from thread.

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::dispatchWorkItem):
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
(WTF::WorkQueue::dispatchSync):

Tools:

Test that the Function passed to WorkQueue::dispatch
is always destroyed in the WorkQueue. Test by using the
knowledge that WorkQueues use threads.
Start up many WorkQueues to create more thread contention
to ensure that the dispatched-from thread is sometimes not
run while the thread of the queue finishes processing
the dispatch.

  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

6:01 AM Changeset in webkit [279114] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Unskip stress/elidable-new-object-roflcopter-then-exit.js on MIPS/ARM
https://bugs.webkit.org/show_bug.cgi?id=227251

Unreviewed gardening.

No failures on either platform after 100 iterations.

  • stress/elidable-new-object-roflcopter-then-exit.js:
6:01 AM Changeset in webkit [279113] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Unskip microbenchmarks/redefine-property-data-dictionary.js on MIPS/ARM
https://bugs.webkit.org/show_bug.cgi?id=227252

Unreviewed gardening.

No failures on either platform after 100 iterations.

  • microbenchmarks/redefine-property-data-dictionary.js:
5:50 AM Changeset in webkit [279112] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk/Tools

Test runner parses the names of value parametrised GTEST tests wrong
https://bugs.webkit.org/show_bug.cgi?id=227207

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-22
Reviewed by Jonathan Bedard.

Fix the parsing of test names.

  • Scripts/webkitpy/api_tests/manager_unittest.py:

Add a test for the parsing.

  • Scripts/webkitpy/api_tests/manager.py:

(Manager._test_list_from_output):
Fix the test name parsing.
The name is printed as:

ValueParametrizedTestsSupported/DogGreen # GetParam() = (Dog, Green)

  • TestWebKitAPI/Test.h:

(TestWebKitAPI::TestParametersToStringFormatter::operator() const):
Add a general-purpose formatter for all value-parametrized tests
to use.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/Misc/TestRunnerTests.cpp: Added.

(TestWebKitAPI::TEST_P):
Add a value-parametrized test testing the test runner.

3:58 AM Changeset in webkit [279111] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Unskip stress/array-species-create-should-handle-masquerader.js on mips
https://bugs.webkit.org/show_bug.cgi?id=227249

Unreviewed gardening.

No failure after 60 iterations.

  • stress/array-species-create-should-handle-masquerader.js:
2:06 AM Changeset in webkit [279110] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in null ptr deref in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
https://bugs.webkit.org/show_bug.cgi?id=226799

Patch by Frédéric Wang <fwang@igalia.com> on 2021-06-22
Reviewed by Ryosuke Niwa.

Source/WebCore:

Various places in ReplaceSelectionCommand::doApply() may execute mutation events and lead
to nodes being removed. This patch adds one more early return after the call to
makeInsertedContentRoundTrippableWithHTMLTreeBuilder() to ensure that the function
removeRedundantStylesAndKeepStyleSpanInline() is properly executed.

Test: fast/editing/paste-and-indent-microtask-crash.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):

LayoutTests:

Add regression test.

  • fast/editing/paste-and-indent-microtask-crash-expected.txt: Added.
  • fast/editing/paste-and-indent-microtask-crash.html: Added.
1:37 AM Changeset in webkit [279109] by commit-queue@webkit.org
  • 11 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update baselines after r278931.
https://bugs.webkit.org/show_bug.cgi?id=227183

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-22

  • platform/glib/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug126742-expected.png:
  • platform/wpe/tables/mozilla/bugs/bug126742-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug57828-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug82946-2-expected.txt:
1:19 AM WebKitGTK/2.32.x edited by Carlos Garcia Campos
(diff)
1:06 AM Changeset in webkit [279108] by cathiechen
  • 19 edits in trunk

Implement width and height attributes on source elements of <picture>
https://bugs.webkit.org/show_bug.cgi?id=222368

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/picture-aspect-ratio-expected.txt:

Source/WebCore:

According to [1], the source element supports dimension attributes. The img element can use the width
and height attributes of the source element to determine its rendered dimensions and aspect-ratio.
In order to implement this, add m_sourceElement to HTMLImageElement to indicate the source element that
is selected. Also add invalidateAttributeMapping() to synchronize with the changes of source's attributes
to the img element. Then add collectExtraStyleForPresentationalHints() to collect style from source attributes.

[1] https://html.spec.whatwg.org/#the-source-element

  • dom/ElementData.h:
  • dom/StyledElement.cpp:

(WebCore::StyledElement::rebuildPresentationalHintStyle): collectExtraStyleForPresentationalHints() when rebuild.

  • dom/StyledElement.h:

(WebCore::StyledElement::collectExtraStyleForPresentationalHints): Add an interface to collect extra style from other elements.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::applyAspectRatioFromWidthAndHeightAttributesToStyle): Add width and height attributes as input variables.

  • html/HTMLElement.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::collectPresentationalHintsForAttribute):
(WebCore::HTMLImageElement::collectExtraStyleForPresentationalHints): If source element has width or height attributes, apply them
to width, height and aspect-ratio of the style.
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Keep the source element.
(WebCore::HTMLImageElement::selectImageSource): Reset the source element to null if no candidate is found.
(WebCore::HTMLImageElement::sourceElement const):
(WebCore::HTMLImageElement::setSourceElement):
(WebCore::HTMLImageElement::invalidateAttributeMapping): Invalidate the presentationalHintStyle.

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

(WebCore::HTMLInputElement::collectPresentationalHintsForAttribute):

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::sourceDimensionAttributesChanged): Call invalidateAttributeMapping if source element's attributes are changed.

  • html/HTMLPictureElement.h:
  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::attributeChanged): Call sourceDimensionAttributesChanged if width or height attributes are changed.

  • html/HTMLSourceElement.h:
  • html/HTMLSourceElement.idl:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::collectPresentationalHintsForAttribute):

LayoutTests:

12:56 AM Changeset in webkit [279107] by Angelos Oikonomopoulos
  • 3 edits in trunk/Source/JavaScriptCore

Properly set numFPRs on ARM with NEON/VFP_V3_D32
https://bugs.webkit.org/show_bug.cgi?id=227212

Reviewed by Filip Pizlo.

Don't hardcode the number of FP regs on ARMv7 to 16; when targetting a
CPU with NEON or VFP_V3_d32, the number of FP regs is 32.

This also reverts the recent change to add an extra word to RegisterSet
which essentially covered up for this mismatch. The reason this bug only
manifested on certain compiler versions was that GCC 8.4/8.5 where built using
our buildroot infrastructure, whereas the other GCC versions we tested with
were debian system toolchains, targetting a lowest common denominator.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::std::initializer_list<int>):

  • jit/RegisterSet.h:
12:42 AM Changeset in webkit [279106] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] Force a copy of font data when receiving it from the untrusted web process
https://bugs.webkit.org/show_bug.cgi?id=227247
<rdar://problem/70825675>

Reviewed by Maciej Stachowiak.

Sending a SharedBuffer across IPC is implemented by having the receiver map a shmem into its address space. On
the sender's side, the shmem still exists, and a compromised web process could scribble data into it after
sending it. So, when the GPU process receives the font data, we need to make a copy of it locally to make sure
the data can't change out from under us.

No new tests because there is no behavior change.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData):

Jun 21, 2021:

11:41 PM Changeset in webkit [279105] by Ross Kirsling
  • 24 edits
    2 adds in trunk

[JSC] Add JIT ICs for #x in obj feature
https://bugs.webkit.org/show_bug.cgi?id=226146

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/has-private-brand.js: Added.
  • microbenchmarks/has-private-name.js: Added.

Source/JavaScriptCore:

This patch implements JIT ICs for the new #x in obj feature and turns the feature on by default.
Implementation closely follows InByVal, though HasPrivateBrand has a few subtleties
(namely, it cannot be viewed in terms of a PropertySlot and should not be converted to InById).

Microbenchmarks:

has-private-name 46.5777+-0.1374 6.0589+-0.0296 definitely 7.6875x faster
has-private-brand 25.8823+-0.0561 19.1509+-0.0447 definitely 1.3515x faster

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleInByAsMatchStructure):
(JSC::DFG::ByteCodeParser::handleInById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileHasPrivate):
(JSC::DFG::SpeculativeJIT::compileHasPrivateName):
(JSC::DFG::SpeculativeJIT::compileHasPrivateBrand):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToB3.cpp:

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

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

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

(JSC::JITInByValGenerator::JITInByValGenerator):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emitHasPrivateSlow):
(JSC::JIT::emit_op_has_private_name):
(JSC::JIT::emitSlow_op_has_private_name):
(JSC::JIT::emit_op_has_private_brand):
(JSC::JIT::emitSlow_op_has_private_brand):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emitHasPrivateSlow):
(JSC::JIT::emit_op_has_private_name):
(JSC::JIT::emitSlow_op_has_private_name):
(JSC::JIT::emit_op_has_private_brand):
(JSC::JIT::emitSlow_op_has_private_brand):

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingInByFunction):
(JSC::appropriateGenericInByFunction):
(JSC::tryCacheInBy):
(JSC::repatchInBy):
(JSC::tryCacheHasPrivateBrand):
(JSC::repatchHasPrivateBrand):
(JSC::resetInBy):
(JSC::resetHasPrivateBrand):

  • jit/Repatch.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/CommonSlowPaths.cpp:
  • runtime/CommonSlowPaths.h:
  • runtime/OptionsList.h:
11:08 PM Changeset in webkit [279104] by Said Abou-Hallawa
  • 3 edits in trunk/Source/WebKit

[GPU Process] RELEASE_ASSERT in RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may fire if GPUP is relaunched
https://bugs.webkit.org/show_bug.cgi?id=227229
<rdar://79147947>

Reviewed by Myles C. Maxfield.

1) Remove maximumUnusedFontCountToSkipRemoval because

'unusedFontCount < maximumUnusedFontCountToSkipRemoval' can't be true
since both unusedFontCount and maximumUnusedFontCountToSkipRemoval are
unsigned and maximumUnusedFontCountToSkipRemoval is equal to zero.
So they can only be equal and we can replace this by '!unusedFontCount'.

2) RemoteResourceCacheProxy::cacheFont() assumes if the font is cached in

m_fontIdentifierToLastRenderingUpdateVersionMap then it is also cached
in GPUP. We have to keep this assumption correct by removing the
corresponding entries from m_fontIdentifierToLastRenderingUpdateVersionMap.

3) RemoteResourceCacheProxy::didFinalizeRenderingUpdate() needs to reset

m_numberOfFontsUsedInCurrentRenderingUpdate and to increment
m_currentRenderingUpdateVersion in all its code branches.

4) If the GPUP is relaunched, we need to set

m_numberOfFontsUsedInCurrentRenderingUpdate to zero after we clear
m_fontIdentifierToLastRenderingUpdateVersionMap. Otherwise the
RELEASE_ASSERT in RemoteResourceCacheProxy::didFinalizeRenderingUpdate()
will fire.

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::prepareForNextRenderingUpdate):
(WebKit::RemoteResourceCacheProxy::clearFontMap):
(WebKit::RemoteResourceCacheProxy::didFinalizeRenderingUpdate):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
(WebKit::RemoteResourceCacheProxy::releaseMemory):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
9:57 PM Changeset in webkit [279103] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

Safari 15 breaks all Web Audio content using WebM Opus
https://bugs.webkit.org/show_bug.cgi?id=226922
rdar://79218243

Reviewed by Eric Carlson.

Temporarily reports that neither Opus and Vorbis audio codec are supported to allow
webaudio sites to fallback to other containers. The content will continue to play
as before. Will be reverted once bug 227110 lands.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canPlayType const):

9:21 PM Changeset in webkit [279102] by Jean-Yves Avenard
  • 6 edits
    4 deletes in trunk/Source/WebCore

Merge AudioFileReaderMac and AudioFileReaderIOS into AudioFileReaderCocoa
https://bugs.webkit.org/show_bug.cgi?id=227205
<rdar://problem/79549527>

Reviewed by Chris Dumez.

Merge AudioFileReaderIOS and AudioFileReaderMac into AudioFileReaderCocoa.
No change in functionality.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp:

(WebCore::tryCreateAudioBufferList): make method static as it's not used elsewhere.
(WebCore::destroyAudioBufferList): make method static as it's not used elsewhere.
(WebCore::validateAudioBufferList): make method static as it's not used elsewhere.
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::readProc):
(WebCore::AudioFileReader::getSizeProc):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):

  • platform/audio/cocoa/AudioFileReaderCocoa.h:

(WebCore::AudioFileReader::data const):
(WebCore::AudioFileReader::dataSize const):

  • platform/audio/ios/AudioFileReaderIOS.cpp: Removed.
  • platform/audio/ios/AudioFileReaderIOS.h: Removed.
  • platform/audio/mac/AudioFileReaderMac.cpp: Removed.
  • platform/audio/mac/AudioFileReaderMac.h: Removed.
7:15 PM Changeset in webkit [279101] by eric.carlson@apple.com
  • 4 edits in trunk/Source/ThirdParty/libwebrtc

[Mac] libwebrtc CMBaseClass objects need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=227137
<rdar://problem/79464124>

Reviewed by Youenn Fablet.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.h: Define CMBASE_OBJECT_NEEDS_ALIGNMENT.
  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:

(webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on Mac and
Mac Catalyst when building for x86_64 so function pointers are naturally aligned.
Add static_asserts to ensure alignment and sizes are correct.

  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

(webrtc::createWebKitVP9Decoder): Ditto.

6:55 PM Changeset in webkit [279100] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening of test failures.

Unreviewed gardening

Remove tests that pass after r279065.

  • platform/glib/TestExpectations:
6:24 PM Changeset in webkit [279099] by Chris Dumez
  • 10 edits
    1 add in trunk

Adjust fetch port blocking for ports 990, 989
https://bugs.webkit.org/show_bug.cgi?id=226971
<rdar://problem/79287147>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Re-sync some WPT tests from upstream d41f24fb67a2d65c to gain test coverage from:

  • web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt:
  • web-platform-tests/fetch/api/request/request-bad-port.any.js:
  • web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt:
  • web-platform-tests/tools/wptserve/wptserve/utils.py:

(isomorphic_decode):
(isomorphic_encode):
(is_bad_port):
(http2_compatible):

  • web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any.js:
  • web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:
  • web-platform-tests/websockets/constants.sub.js: Added.

(url_has_variant):
(else.url_has_flag):
(url_has_flag):
(IsWebSocket):
(CreateWebSocketNonAbsolute):
(CreateWebSocketNonWsScheme):
(CreateWebSocketNonAsciiProtocol):
(CreateWebSocketWithAsciiSep):
(CreateWebSocketWithBlockedPort):
(CreateWebSocketWithSpaceInUrl):
(CreateWebSocketWithSpaceInProtocol):
(CreateWebSocketWithRepeatedProtocols):
(CreateWebSocketWithRepeatedProtocolsCaseInsensitive):
(CreateWebSocket):

Source/WTF:

Prevent connecting to ports 989 & 990 as per:

  • wtf/URL.cpp:

(WTF::portAllowed):

6:22 PM Changeset in webkit [279098] by Wenson Hsieh
  • 12 edits
    2 adds in trunk

[macOS] [WebKitLegacy] Non-actionable "Look Up" action appears when right clicking images
https://bugs.webkit.org/show_bug.cgi?id=227240

Reviewed by Devin Rousso.

Source/WebCore:

The "Look Up" action currently appears in legacy WebKit, despite visual search not being supported in WebKit1.
Add and consult a context menu client hook to avoid inserting this item when its functionality is unsupported.

Test: fast/events/contextmenu-lookup-action-for-image.html

  • loader/EmptyClients.cpp:
  • page/ContextMenuClient.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

Source/WebKit:

Override the new client hook and return true.

  • WebProcess/WebCoreSupport/WebContextMenuClient.h:

Source/WebKitLegacy/mac:

Override the new client hook and return false in legacy WebKit.

  • WebCoreSupport/WebContextMenuClient.h:

LayoutTests:

Add a layout test to check whether or not the "Look Up" action is available when right clicking image elements.
In WebKit2 prior to Monterey as well as legacy WebKit, this context menu action should not be present.

  • fast/events/contextmenu-lookup-action-for-image-expected.txt: Added.
  • fast/events/contextmenu-lookup-action-for-image.html: Added.
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo-wk1/TestExpectations:
6:00 PM Changeset in webkit [279097] by Aditya Keerthi
  • 137 edits in trunk

[iOS] Update textfield border color to match specification
https://bugs.webkit.org/show_bug.cgi?id=227135
<rdar://problem/79456679>

Reviewed by Maciej Stachowiak.

Source/WebCore:

  • css/html.css:

(input, textarea):

Use the system opaque separator color for textfield borders, as it has
better visibility compared to the system fill color.

  • rendering/RenderThemeIOS.mm:

(WebCore::cssValueSystemColorInformationList):

Define CSSValueAppleSystemOpaqueSeparator using separatorColor composited
on top of a solid color, rather than using opaqueSeparatorColor, since
the latter currently lacks an Increase Contrast variant. Note that the
colors are equivalent with regular contrast.

LayoutTests:

Rebaselined tests to account for changes to border color.

  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
  • platform/ios-wk2/fast/dynamic/008-expected.txt:
  • platform/ios-wk2/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-align-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
  • platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
  • platform/ios-wk2/fast/parser/entity-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/fast/block/float/032-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/basic-textareas-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/floating-textfield-relayout-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-disabled-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-field-text-truncated-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/plaintext-mode-2-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/textarea-scrollbar-expected.txt:
  • platform/ios/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/ios/fast/forms/textarea-width-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/overflow/overflow-x-y-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/replaced/width100percent-textarea-expected.txt:
  • platform/ios/fast/replaced/width100percent-textfield-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/45621-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
5:47 PM Changeset in webkit [279096] by don.olmstead@sony.com
  • 12 edits in trunk/Source

Non-unified build fixes late June 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=227241

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • dfg/DFGDriver.h:

Source/WebCore:

  • css/CSSCrossfadeValue.h:
  • css/CSSCursorImageValue.cpp:
  • css/CSSImageValue.cpp:
  • css/parser/CSSParserFastPaths.h:
  • css/parser/CSSPropertyParserWorkerSafe.cpp:

Source/WebKit:

  • GPUProcess/GPUProcess.cpp:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
  • WebProcess/GPU/media/WebMediaStrategy.cpp:

(WebKit::WebMediaStrategy::createNowPlayingManager const):

5:45 PM Changeset in webkit [279095] by Chris Dumez
  • 2 edits in trunk/Tools

[WK2] Don't process-swap on navigations within the same non-HTTP(s) protocol
https://bugs.webkit.org/show_bug.cgi?id=227220
<rdar://79106461>

Unreviewed follow-up to fix GTK test that started failing after the behavior
change in r279079.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebExtensionPageID):

5:40 PM Changeset in webkit [279094] by Jonathan Bedard
  • 9 edits in trunk/Tools

[results.webkit.org] XSS vulnerability in test name
https://bugs.webkit.org/show_bug.cgi?id=227235
<rdar://problem/77851775>

Reviewed by Alexey Proskuryakov.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/archiveRouter.js:

(_ArchiveRouter.prototype.labelFor): Escape any HTML in a potential label.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/common.js:

(escapeHTML): If an object is undefined, don't attempt to escape it.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/configuration.js:

(Configuration.prototype.toString): Escape configuration parameters.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/investigate.html:
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/search.html:
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/suite_results.html:
  • Scripts/libraries/resultsdbpy/setup.py:
5:22 PM Changeset in webkit [279093] by Chris Dumez
  • 21 edits in trunk/Source/WebCore

Use double instead of float where appropriate in HTML Canvas IDL
https://bugs.webkit.org/show_bug.cgi?id=227238

Reviewed by Sam Weinig.

There are a lot of places in our HTML Canvas IDL where we're using float type, even though
the specification is using double. This patch fixes those.

  • html/canvas/CanvasCompositing.idl:
  • html/canvas/CanvasDrawImage.idl:
  • html/canvas/CanvasDrawPath.idl:
  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::addColorStop):

  • html/canvas/CanvasGradient.h:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasPathDrawingStyles.idl:
  • html/canvas/CanvasRect.idl:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::fillText):
(WebCore::CanvasRenderingContext2D::strokeText):
(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::setLineWidth):
(WebCore::CanvasRenderingContext2DBase::setMiterLimit):
(WebCore::lineDashSequenceIsValid):
(WebCore::CanvasRenderingContext2DBase::setLineDash):
(WebCore::CanvasRenderingContext2DBase::setWebkitLineDash):
(WebCore::CanvasRenderingContext2DBase::setLineDashOffset):
(WebCore::CanvasRenderingContext2DBase::setGlobalAlpha):
(WebCore::CanvasRenderingContext2DBase::scale):
(WebCore::CanvasRenderingContext2DBase::rotate):
(WebCore::CanvasRenderingContext2DBase::translate):
(WebCore::CanvasRenderingContext2DBase::transform):
(WebCore::CanvasRenderingContext2DBase::setTransform):
(WebCore::validateRectForCanvas):
(WebCore::CanvasRenderingContext2DBase::isPointInPath):
(WebCore::CanvasRenderingContext2DBase::isPointInStroke):
(WebCore::CanvasRenderingContext2DBase::isPointInPathInternal):
(WebCore::CanvasRenderingContext2DBase::isPointInStrokeInternal):
(WebCore::CanvasRenderingContext2DBase::clearRect):
(WebCore::CanvasRenderingContext2DBase::fillRect):
(WebCore::CanvasRenderingContext2DBase::strokeRect):
(WebCore::CanvasRenderingContext2DBase::canDrawText):
(WebCore::CanvasRenderingContext2DBase::drawText):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):

  • html/canvas/CanvasRenderingContext2DBase.h:

(WebCore::CanvasRenderingContext2DBase::lineWidth const):
(WebCore::CanvasRenderingContext2DBase::miterLimit const):
(WebCore::CanvasRenderingContext2DBase::getLineDash const):
(WebCore::CanvasRenderingContext2DBase::webkitLineDash const):
(WebCore::CanvasRenderingContext2DBase::lineDashOffset const):
(WebCore::CanvasRenderingContext2DBase::globalAlpha const):

  • html/canvas/CanvasShadowStyles.idl:
  • html/canvas/CanvasText.idl:
  • html/canvas/CanvasTransform.idl:
  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::fillText):
(WebCore::OffscreenCanvasRenderingContext2D::strokeText):

  • html/canvas/OffscreenCanvasRenderingContext2D.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::processArgument):

  • inspector/InspectorCanvasCallTracer.h:
5:01 PM Changeset in webkit [279092] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[BigSur Wk1] imported/w3c/web-platform-tests/css/css-will-change/will-change* tests are flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=227237

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:00 PM Changeset in webkit [279091] by don.olmstead@sony.com
  • 3 edits in trunk/Source/WebKit

Update signature of createVideoLayerRemote for PlayStation and GStreamer
https://bugs.webkit.org/show_bug.cgi?id=227242

Reviewed by Eric Carlson.

Followup on r278740 which changed the signature of createVideoLayerRemote. Updating the PlayStation and
GStreamer accordingly.

  • WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp:

(WebKit::createVideoLayerRemote):

  • WebProcess/GPU/media/playstation/VideoLayerRemotePlayStation.cpp:

(WebKit::createVideoLayerRemote):

4:57 PM Changeset in webkit [279090] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.21

4:54 PM Changeset in webkit [279089] by Chris Dumez
  • 66 edits in trunk

Update TBA macros for iOS 15 / macOS 13
https://bugs.webkit.org/show_bug.cgi?id=227228
<rdar://78581134>

Reviewed by Alex Christensen.

  • Configurations/WebKit.xcconfig:
  • Shared/API/Cocoa/_WKFrameHandle.h:
  • Shared/API/Cocoa/_WKRemoteObjectInterface.h:
  • UIProcess/API/Cocoa/WKContentRuleListPrivate.h:
  • UIProcess/API/Cocoa/WKDownload.h:
  • UIProcess/API/Cocoa/WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKAppHighlight.h:
  • UIProcess/API/Cocoa/_WKAppHighlightDelegate.h:
  • UIProcess/API/Cocoa/_WKApplicationManifest.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientOutputs.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorAttachment.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponse.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorResponse.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:
  • UIProcess/API/Cocoa/_WKAutomationDelegate.h:
  • UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
  • UIProcess/API/Cocoa/_WKDownload.h:
  • UIProcess/API/Cocoa/_WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/_WKElementAction.h:
  • UIProcess/API/Cocoa/_WKInspector.h:
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.h:
  • UIProcess/API/Cocoa/_WKInspectorExtension.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialCreationOptions.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialDescriptor.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialEntity.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialParameters.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialRelyingPartyEntity.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialRequestOptions.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialUserEntity.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
  • UIProcess/API/Cocoa/_WKTextManipulationToken.h:
  • UIProcess/API/Cocoa/_WKUserVerificationRequirement.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanelForTesting.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
4:41 PM Changeset in webkit [279088] by Russell Epstein
  • 1 copy in tags/Safari-611.3.9

Tag Safari-611.3.9.

4:02 PM Changeset in webkit [279087] by Russell Epstein
  • 1 copy in branches/safari-612.1.20-branch

New branch.

3:14 PM Changeset in webkit [279086] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Apple internal build

Rubber-stamped by Megan Gardner.

  • UIProcess/WebPageProxy.cpp:
2:42 PM Changeset in webkit [279085] by Fujii Hironori
  • 11 edits in trunk

[WinCairo] Turn ENABLE_SHAREABLE_RESOURCE on
https://bugs.webkit.org/show_bug.cgi?id=227011

Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsWin.cmake: Turned ENABLE_SHAREABLE_RESOURCE on for WinCairo port.

Source/WebCore:

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

Source/WebKit:

  • NetworkProcess/cache/NetworkCacheDataCurl.cpp:

(WebKit::NetworkCache::Data::tryCreateSharedMemory const): Added.

Source/WTF:

Added a new member m_fileMapping to MappedFileData to store a file
mapping object handle to create a SharedMemory from a
MappedFileData on Windows.

Conditioned out MappedFileData::leakHandle() if OS(WINDOWS). And,
removed unmapViewOfFile(). Destruction of MappedFileData should be
done by ~MappedFileData.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::MappedFileData::~MappedFileData):
(WTF::FileSystemImpl::MappedFileData::mapFileHandle):
(WTF::FileSystemImpl::unmapViewOfFile): Deleted.

  • wtf/FileSystem.h:

(WTF::FileSystemImpl::MappedFileData::fileMapping const):
(WTF::FileSystemImpl::MappedFileData::MappedFileData):
(WTF::FileSystemImpl::MappedFileData::operator=):

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::MappedFileData::~MappedFileData):
(WTF::FileSystemImpl::MappedFileData::mapFileHandle):
(WTF::FileSystemImpl::unmapViewOfFile): Deleted.

2:36 PM Changeset in webkit [279084] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Too much CPU time is spent under MemoryPressureHandler::currentMemoryUsagePolicy()
https://bugs.webkit.org/show_bug.cgi?id=227001

Reviewed by Simon Fraser.

Make it so that RenderLayerCompositor::updateCompositingPolicy() queries MemoryPressureHandler::currentMemoryUsagePolicy()
at most once every 2 seconds given that the call is expensive. It can currently get called several times a second and
shows on CPU profiles.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingPolicy):

2:25 PM Changeset in webkit [279083] by Kate Cheney
  • 8 edits in trunk

Migrate App Privacy Report code from WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=227045
<rdar://problem/74333287>

Reviewed by Alex Christensen.

Source/WebKit:

No new tests, covered by existing tests.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(contextString): Deleted.
This patch deletes the contextString function because it is no longer
needed now that CFNetwork sets the attribution context, and it seemed
silly to migrate code from WebKitAdditions just to delete it
immediately. This also moves the processPCMRequest function
declaration from WebKitAdditions so we can remove
NETWORK_DATA_TASK_COCOA_ADDITIONS.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::isActingOnBehalfOfAFullWebBrowser):
(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setLastNavigationWasAppBound):

Source/WTF:

Update compile flag naming to align with the App Privacy Report
feature.

  • wtf/PlatformEnableCocoa.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
2:06 PM Changeset in webkit [279082] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk

[JSC] Fix consistency check during stack splitting in Wasm::LLIntGenerator::addLoop
https://bugs.webkit.org/show_bug.cgi?id=226012

Patch by Xan Lopez <Xan Lopez> on 2021-06-21
Reviewed by Tadeu Zagallo.

JSTests:

  • stress/wasm-loop-consistency.js: Added.

(vm.isWasmSupported):

Source/JavaScriptCore:

It is possible for the wasm llint generator to call
checkConsistency() on a stack that is only halfway through being
properly setup. Specifically, when generating a loop block, we use
splitStack() to pop the arguments for the loop into a new stack,
and materializeConstantsAndLocals() to materialize the constants
and aliases in the loop arguments, but the arguments won't be
added back to the stack until the very end of the loop code
generation. Since materializeConstantsAndLocals() will check the
correctness of the expression stack, which isn't yet fully formed,
we'll fail its ASSERT. To workaround this, we create a variant of
materializeConstantsAndLocals() that does not check for
correctness (similar to what we do in push()), and manually check
the correctness of the new split stack in
Wasm::LLIntGenerator::addLoop(), which is the place that knows the
details of this intermediate state.

For more details, see: https://bugs.webkit.org/show_bug.cgi?id=226012#c8

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::checkConsistencyOfExpressionStack):
(JSC::Wasm::LLIntGenerator::checkConsistency):
(JSC::Wasm::LLIntGenerator::materializeConstantsAndLocals):
(JSC::Wasm::LLIntGenerator::addLoop):

1:55 PM Changeset in webkit [279081] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKitLegacy

Make InProcessIDBServer use WorkQueue instead of Thread
https://bugs.webkit.org/show_bug.cgi?id=227225

Reviewed by Chris Dumez.

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::~InProcessIDBServer):
(InProcessIDBServer::InProcessIDBServer):
(InProcessIDBServer::dispatchTask):

  • Storage/InProcessIDBServer.h:
1:53 PM Changeset in webkit [279080] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening of test failures

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:47 PM Changeset in webkit [279079] by Chris Dumez
  • 11 edits in trunk

[WK2] Don't process-swap on navigations within the same non-HTTP(s) protocol
https://bugs.webkit.org/show_bug.cgi?id=227220

Reviewed by Tim Horton.

Source/WebKit:

Don't process-swap on navigations within the same non-HTTP(s) protocol. Trying to extract registrable domains
from non-HTTP(s) URLs does not make much sense and leads to unexpected process swaps.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration setProcessSwapsOnNavigationWithinSameNonHTTPFamilyProtocol:]):
(-[_WKProcessPoolConfiguration processSwapsOnNavigationWithinSameNonHTTPFamilyProtocol]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
1:44 PM Changeset in webkit [279078] by Megan Gardner
  • 11 edits in trunk/Source

AppHighlights disappear on page reload
https://bugs.webkit.org/show_bug.cgi?id=227141
rdar://78190331

Reviewed by Devin Rousso.

Source/WebCore:

Preserve the state of highlight visibility so that is correct on page-reload.

  • dom/Document.cpp:

(WebCore::Document::appHighlightRegister):

  • page/ChromeClient.h:

(WebCore::ChromeClient::appHighlightsVisiblility const):

Source/WebKit:

When a page is reloaded, a new set of highlights is loaded, but the state of visibility of
the highlights is not preserved.
We need to preserve the state of highlights so they are correctly shown on reload.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::appHighlightsVisiblility const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::setAppHighlightsVisibility):
(WebKit::m_lastNavigationWasAppBound): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::appHighlightsVisiblility const):

12:37 PM Changeset in webkit [279077] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r279010. rdar://problem/79574790

Crash in WebCore::SlotAssignment::assignedNodesForSlot
https://bugs.webkit.org/show_bug.cgi?id=224408
<rdar://problem/76805764>

Reviewed by Michael Catanzaro.

Source/WebCore:

Like webkit.org/b/225684, the release assertion failure was caused by RenderTreeUpdater::tearDownRenderers
traversing the slot element for which we're currently calling Element::insertedIntoAncestor but had not yet
called SlotAssignment::addSlotElementByName.

Fixed the bug by returning early in SlotAssignment::assignedNodesForSlot when this condition holds,
which is when the shadow root is connected to a document and HTMLSlotElement is in the middle of
HTMLSlotElement::insertedIntoAncestor.

It's not the most elegant solution but staying safe for now.

Test: fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash.html

  • dom/SlotAssignment.cpp: (WebCore::SlotAssignment::assignedNodesForSlot):
  • html/HTMLSlotElement.cpp: (WebCore::HTMLSlotElement::insertedIntoAncestor):
  • html/HTMLSlotElement.h: (WebCore::HTMLSlotElement::isInInsertedIntoAncestor): Added.

LayoutTests:

Added a regression test.

  • fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash-expected.txt: Added.
  • fast/shadow-dom/insert-slot-child-of-shadow-host-render-tree-invalidation-crash.html: Added.

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

12:09 PM Changeset in webkit [279076] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

Release assert memory in JSC::Wasm::Memory::growShared(JSC::Wasm::PageCount)::<lambda()>
https://bugs.webkit.org/show_bug.cgi?id=227180

Reviewed by Keith Miller.

JSTests:

  • stress/shared-wasm-memory-with-zero-byte.js: Added.

Source/JavaScriptCore:

When Wasm.Memory is shared, we should allocate bound growable memory even if initial size is 0 bytes,
since this range can be later extended by mprotect. If maximum size is also 0 byte, we already have
a path that does not allocate anything.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::tryCreate):

11:55 AM Changeset in webkit [279075] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Add a new pattern to instruction selector to utilize SMSUBL supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227195

Patch by Yijia Huang <Yijia Huang> on 2021-06-21
Reviewed by Keith Miller.

Signed Multiply-Subtract Long(SMSUBL), supported by ARM64, multiplies two
32-bit register values, subtracts the product from a 64-bit register value,
and writes the result 64-bit destination register. The instruction selector
can utilize this to lowering certain patterns in B3 IR before further Air
optimization. Given the operation:

smsubl d, n, m, a

The equivalent pattern would be:

d = a - SExt32(n) * SExt32(m)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = SExt32(Trunc(ArgumentReg(%x1)))
Int @2 = SExt32(Trunc(ArgumentReg(%x2)))
Int @3 = Mul(@1, @2)
Int @4 = Sub(@0, @3)
Void@5 = Return(@4, Terminal)

Before Adding SMSUBL:
Old optimized AIR
SignExtend32ToPtr %x1, %x1, @1
SignExtend32ToPtr %x2, %x2, @2
MultiplySub64 %x1, %x2, %x0, %x0, @4
Ret64 %x0, @5

After Adding SMSUBL:
New optimized AIR
MultiplySubSignExtend32 %x1, %x2, %x0, %x0, @4
Ret64 %x0, @5

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::multiplySubSignExtend32):

  • assembler/testmasm.cpp:

(JSC::testMulSubSignExtend32):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testMulSubArgsLeft):
(testMulSubArgsRight):
(testMulSubArgsLeft32):
(testMulSubArgsRight32):
(testMulSubSignExtend32Args):

  • b3/testb3_3.cpp:

(addArgTests):

11:50 AM Changeset in webkit [279074] by achristensen@apple.com
  • 6 edits in trunk

Break ref cycle between API::HTTPCookieStore and WebKit::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=226992

Reviewed by Chris Dumez.

Source/WebKit:

Covered by an API test.

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::HTTPCookieStore):
(API::HTTPCookieStore::filterAppBoundCookies):
(API::HTTPCookieStore::cookies):
(API::HTTPCookieStore::cookiesForURL):
(API::HTTPCookieStore::setCookies):
(API::HTTPCookieStore::deleteCookie):
(API::HTTPCookieStore::deleteAllCookies):
(API::HTTPCookieStore::setHTTPCookieAcceptPolicy):
(API::HTTPCookieStore::flushCookies):
(API::HTTPCookieStore::registerObserver):
(API::HTTPCookieStore::unregisterObserver):

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::complete):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

11:48 AM Changeset in webkit [279073] by commit-queue@webkit.org
  • 13 edits in trunk

makeUnique cannot be used to instantiate function-local classes
https://bugs.webkit.org/show_bug.cgi?id=227163

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-21
Reviewed by Antti Koivisto.

Source/bmalloc:

Make WTF_MAKE_FAST_ALLOCATED and similar macros work in function
local classes. Mark the typedef that is used to enforce semicolon
after the macro as unused to avoid unused typedef warning.
Fixes cases where the compiler is able to prove that it sees all the
use sites of the class and the typedef is not used.

  • bmalloc/BCompiler.h:
  • bmalloc/BMalloced.h:
  • bmalloc/IsoHeap.h:
  • bmalloc/IsoHeapInlines.h:

Source/JavaScriptCore:

Make JSC_MAKE_PARSER_ARENA_DELETABLE_ALLOCATED
consistent with WTF_MAKE_FAST_ALLOCATED behavior
with respect to unused typedefs inside the macro.

  • parser/Nodes.h:

Source/WTF:

Make WTF_MAKE_FAST_ALLOCATED and similar macros work in function
local classes. Mark the typedef that is used to enforce semicolon
after the macro as unused to avoid unused typedef warning.
Fixes cases where the compiler is able to prove that it sees all the
use sites of the class and the typedef is not used.

  • wtf/Compiler.h:
  • wtf/FastMalloc.h:

Tools:

Test that WTF_MAKE_FAST_ALLOCATED and similar macros work in function
local classes.

  • TestWebKitAPI/Tests/WTF/StdLibExtras.cpp:

(TestWebKitAPI::TEST):

11:46 AM Changeset in webkit [279072] by James Savage
  • 4 edits in trunk/Source/WebKit

Upstream async support to Swift overlay.
https://bugs.webkit.org/show_bug.cgi?id=227006.

Reviewed by Alex Christensen.

  • SwiftOverlay/Tests/JavaScriptToSwiftTypeConversions.swift:

(JavaScriptToSwiftConversions.testUsingSwiftAsync): Adds a simple test
for the Swift async interface.

  • SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj: Removed

use of WebKitAdditions, which is needed both to prevent redefinition
errors and because they are no longer necessary.

  • UIProcess/API/Cocoa/WebKitSwiftOverlay.swift:

(WKWebView.callAsyncJavaScript(_:arguments:in:contentWorld:)):
(WKWebView.pdf(_:)):
(WKWebView.evaluateJavaScript(_:in:contentWorld:)):
(WKWebView.find(_:configuration:)):

11:44 AM Changeset in webkit [279071] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Add log when creating NSURLSession that will not accept cookies
https://bugs.webkit.org/show_bug.cgi?id=226511
<rdar://77637158>

Reviewed by Chris Dumez.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::initializeStandardSessionsInSet):

11:18 AM Changeset in webkit [279070] by commit-queue@webkit.org
  • 11 edits in trunk

CSSOM test for serializing font-variant fails
https://bugs.webkit.org/show_bug.cgi?id=226770

Patch by Rob Buis <rbuis@igalia.com> on 2021-06-21
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/css/css-fonts/parsing/font-variant-east-asian-invalid-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-variant-valid-expected.txt:
  • web-platform-tests/css/cssom/serialize-values-expected.txt:

Source/WebCore:

Implement font-variant serializing according to:
https://drafts.csswg.org/cssom/#serializing-css-values

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::appendFontLonghandValueIfExplicit const):
(WebCore::StyleProperties::fontVariantValue const):

  • css/StyleProperties.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontVariantEastAsian):
(WebCore::CSSPropertyParser::consumeFontVariantShorthand):

LayoutTests:

  • css3/font-variant-parsing-expected.txt:
  • css3/font-variant-parsing.html:
11:15 AM Changeset in webkit [279069] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

REGRESSION (r275496): WebSocket Message too long when message is larger than 1mb
https://bugs.webkit.org/show_bug.cgi?id=227030
<rdar://problem/79370994>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-21
Reviewed by Youenn Fablet.

Source/WebKit:

NSURLSession's WebSocket implementation currently has maximumMessageSize's default value at 1MB.
Our CFReadStream-based WebSocket implementation had no message size limitation, so set it to 0 to remove the limit.

Writing a test for this was tricky because our WebSocket LayoutTests use the deflate extension. I wrote an API test
that implements a simple WebSocket exchange and verifies each byte is what we expect.
The test used to fail using our NSURLSession-based WebSocket implementation but now passes everywhere.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::createWebSocketTask):
Set maximumMessageSize to 0, which, as documented in ws_options.h but unfortunately not yet in NSURLSession.h:
"means there is no receive limit."
This matches our behavior with the CFReadStream-based WebSocket implementation.

Tools:

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm: Added.

(TestWebKitAPI::TEST):

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

(TestWebKitAPI::Connection::receiveBytes const):

9:04 AM Changeset in webkit [279068] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

[JSC] Reenable ChakraCore/test/Math/max.js on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=227209

Patch by Xan Lopez <Xan Lopez> on 2021-06-21
Reviewed by Adrian Perez de Castro.

  • ChakraCore.yaml: reenable the test, should be working fine now.
8:51 AM Changeset in webkit [279067] by Jonathan Bedard
  • 4 edits in trunk/Tools

[resultsdbpy] Adopt autoinstaller (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=227096
<rdar://problem/79418080>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/resultsdbpy/container: Fix libraries path.
  • Scripts/libraries/resultsdbpy/run: Ditto.
  • Scripts/libraries/resultsdbpy/run-tests: Ditto.
8:08 AM Changeset in webkit [279066] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

Remove redundant HitTestLocation(const LayoutPoint& centerPoint, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding)
https://bugs.webkit.org/show_bug.cgi?id=227186

Reviewed by Sam Weinig.

Let's use the LayoutRect based c'tor at the only callsite (Internals).

  • page/EventHandler.cpp:

(WebCore::EventHandler::hitTestResultAtPoint const):

  • page/EventHandler.h:
  • rendering/HitTestLocation.cpp:

(WebCore::HitTestLocation::HitTestLocation):
(WebCore::rectForPoint): Deleted.
(WebCore::m_isRectBased): Deleted.

  • rendering/HitTestLocation.h:
  • rendering/HitTestResult.cpp:
  • rendering/HitTestResult.h:
  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect const):

3:13 AM Changeset in webkit [279065] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

[GLIB] REGRESSION(r278701): numerous WebRTC tests failing after libwebrtc update to M92
https://bugs.webkit.org/show_bug.cgi?id=227172

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

Non-apple ports do not use the bundled libvpx library, they rely on the host libvpx instead.
LibWebRTC expects to depend on the bundled version, thus using its API. So we need to be
very careful with which libvpx version is used from the host, in order to avoid API/ABI
issues. Hence the version check should specify a version that is API/ABI compatible with
what libwebrtc expects.

This patch also re-enables data channel support, which was disabled during the update to M92
in CMake ports.

  • CMakeLists.txt:
1:36 AM Changeset in webkit [279064] by Philippe Normand
  • 2 edits in trunk/Source/WTF

Unreviewed build fix after r279062

  • wtf/Span.h:

(std::is_convertible_v<std::remove_pointer_t<decltype):

12:53 AM Changeset in webkit [279063] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Tools/buildstream

[Flatpak SDK] Update to FDO 20.08.13 release
https://bugs.webkit.org/show_bug.cgi?id=227176

Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-21
Reviewed by Žan Doberšek.

This release contains libvpx 1.10.0 which we need since the libwebrtc bump to M92. The
current version we have has ABI incompatible with what libwebrtc expects and this issue was
hidden by r277036 which pulls in the bundled libvpx headers...

  • elements/freedesktop-sdk.bst:
  • patches/fdo-0001-meson-Bump-to-0.56.1.patch: Removed.
Note: See TracTimeline for information about the timeline view.