Timeline



May 7, 2021:

9:32 PM Changeset in webkit [277223] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] Tentative gardening of crashes after last sdk update

Unreviewed test gardening.

Likely more crashes will appear from tests not run due to these
gardened.

  • platform/wpe/TestExpectations:
6:48 PM Changeset in webkit [277222] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[css-flexbox] Flex item construction may affect sibling flex item height computation
https://bugs.webkit.org/show_bug.cgi?id=225489

Reviewed by Sergio Villar Senin.

Source/WebCore:

Flex item construction triggers layout both on the flex item and on its descendants (see constructFlexItem).
During this layout a percent height descendant may indirectly set an incorrect value on the flex container's
m_hasDefiniteHeight (this is due to the odd way we choose to resolve percent height values on the ancestor chain,
see setOverridingContainingBlockContentLogicalHeight(WTF::nullopt)).
Now this incorrect m_hasDefiniteHeight value (Indefinite) causes the next sibling's (also) percent height
resolve fail as it tells the flex item that the flex container can't help with resolving the percent height value.
As the result we end up with an incorrect, 0px height value for this sibling.
e.g.
<div style="height: 100px; display: flex; flex-direction: column;">

<div id=flexItemA style="height: 50px;"><div style="height: 100%;"></div></div>
<div id=flexItemB style="height: 50%;"></div>

</div>
By the time we get to the construction of flexItemB, the RenderFlexibleBox's (flex container) m_hasDefiniteHeight
is already (and incorrectly) set to Indefinite as the result of us trying to resolve flexItemA's descendant height percentage.
This Indefinite value makes the flexItemB's height resolution fail as we believe that the flex container has indefinite height
e.g "height: auto", while it is clearly resolvable (50% of 100px).
Now if we flip the order and flexItemB comes first, the test case passes fine.
It is very unfortunate that some descendant height resolving process can trigger a state change on the ancestor RenderFlexibleBox, but
fixing it would certainly require some substantial architectural change (e.g. pushing down the constraints to the geometry functions instead of
walking the containing block chain).
In this patch, we just scope m_hasDefiniteHeight so that the RenderFlexibleBox's state is not effected by the flex item construction.

Test: fast/flexbox/flex-column-with-percent-height-descendants.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutFlexItems):

LayoutTests:

  • fast/flexbox/flex-column-with-percent-height-descendants-expected.html: Added.
  • fast/flexbox/flex-column-with-percent-height-descendants.html: Added.
6:26 PM Changeset in webkit [277221] by Ross Kirsling
  • 6 edits in trunk

[JSC] Error#cause must recognize explicit undefined
https://bugs.webkit.org/show_bug.cgi?id=225535

Reviewed by Alexey Shvayka.

JSTests:

  • test262/config.yaml:

Re-enable tests for this feature; they were all failing due to this quirk.

Source/JavaScriptCore:

Error#cause is specified such that new Error(message, {}) and new Error(message, { cause: undefined })
are not the same -- namely, the latter should create a property descriptor with an undefined value.

This would seem absurd, but the reason is because the cause field is meant to store a thrown object,
and throw undefined; is valid code.

In aligning our implementation with the spec, this patch also consolidates the relevant logic in one place
(ErrorInstance::finishCreation) to minimize confusion.

  • runtime/AggregateError.cpp:

(JSC::createAggregateError):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::create):
(JSC::ErrorInstance::finishCreation):

  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::create):

6:08 PM Changeset in webkit [277220] by zhifei_fang@apple.com
  • 2 edits in trunk/Websites/perf.webkit.org

Add support for syncing repo with commit revision label.
https://bugs.webkit.org/show_bug.cgi?id=221982

Reviewed by Ryosuke Niwa.

Add new syncing option reportRevisionIdentifier, which will let the script try to sync the commit revision identifier from the commit message.
Add new syncing option reportSVNRevision, which will let the script try to report SVN revision from a git-svn repo.

  • tools/sync-commits.py:

(main):
(load_repository):
(GitRepository.init):
(GitRepository.fetch_next_commit):
(GitRepository._git_hash_to_svn_revision):
(GitRepository._svn_revision_to_git_hash):
(GitRepository._revision_from_tokens):
(GitRepository._fetch_all_hashes):

6:05 PM Changeset in webkit [277219] by Chris Dumez
  • 7 edits in trunk

Port FileSystem::pathGetFileName() & Filesystem::directoryName() to std::filesystem
https://bugs.webkit.org/show_bug.cgi?id=225524

Reviewed by Darin Adler.

Source/WTF:

Port FileSystem::pathGetFileName() & Filesystem::directoryName() to std::filesystem so
that we can get rid of platform-specific implementions.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::pathGetFileName):
(WTF::FileSystemImpl::directoryName):

  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::pathGetFileName): Deleted.
(WTF::FileSystemImpl::directoryName): Deleted.

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::pathGetFileName): Deleted.
(WTF::FileSystemImpl::directoryName): Deleted.

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::pathGetFileName): Deleted.
(WTF::FileSystemImpl::directoryName): Deleted.

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

6:04 PM Changeset in webkit [277218] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] [GPU] Silence warning about com.apple.audio.AudioComponentRegistrar in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=225547
<rdar://problem/77334436>

Reviewed by Per Arne Vollan.

We block access to various media things (like 'com.apple.audio.AudioComponentRegistrar') when the GPU Process is being used.
Some AudioToolbox code continues to try to connect even though we are not activating relevant parts of the audio subsystem.
AudioToolbox doesn't care about this blocked connection when running in this mode, but they have not had a chance to modify
the framework to avoid attempting to connect.

To avoid spurious logging and telemetry, silence the sandbox violation when the GPU Process is active.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
5:38 PM Changeset in webkit [277217] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] [GPU] Process is missing access to IOMobileFramebufferUserClient on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=225545
<rdar://problem/77591664>

Reviewed by Jer Noble.

Apple Silicon GPU Process needs access to IOMobileFramebufferUserClient for certain types of media playback. We allow this
on iOS, and in the WebContent process, but missed it in the GPU Process.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
5:31 PM Changeset in webkit [277216] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[BigSur Release Wk2 Arm64] imported/w3c/web-platform-tests/navigation-timing/test_performance_attributes.sub.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=224784

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:30 PM Changeset in webkit [277215] by James Savage
  • 13 edits in trunk/Source/WebKit

Validate Swift async imports.
https://bugs.webkit.org/show_bug.cgi?id=225134
<rdar://73620237>

Reviewed by Sam Weinig.

Audit our imported Objective-C API for correct translations to Swift's
upcoming concurrency feature. This mostly entails removing redundant
words, tagging methods which Swift's heuristics missed, and in some
cases disabling methods that do not follow Swift's async conventions.

  • Shared/API/Cocoa/WKFoundation.h: Because the Foundation macros used

for Swift async won't exist in all SDKs, provide our own wrapper around
them to avoid undefined macro errors.

  • SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig: Passing these

flags to older tools will result in errors, so only so conditionally.

  • SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj: Added a

new source file reference for generated sources. These will be copied
from WebKitAdditions if available, or replaced with empty sources for
compatibility.

  • UIProcess/API/Cocoa/NSAttributedString.h: Adopt new attributes to

define an explicit Swift async name.

  • UIProcess/API/Cocoa/WKContentRuleListStore.h: Ditto.
  • UIProcess/API/Cocoa/WKDownloadDelegate.h: In this case I also apply

NS_SWIFT_NAME as the "decisionHandler" argument would otherwise not
import as async. Despite using a different macro, I'm just using
NS_SWIFT_ASYNC_NAME to check for these changes as all these annotations
should exist or not-exist at once.

  • UIProcess/API/Cocoa/WKHTTPCookieStore.h: Ditto.
  • UIProcess/API/Cocoa/WKNavigationDelegate.h: Ditto.
  • UIProcess/API/Cocoa/WKScriptMessageHandlerWithReply.h: Ditto.
  • UIProcess/API/Cocoa/WKUIDelegate.h: Ditto.
  • UIProcess/API/Cocoa/WKWebView.h: _Nullable_result is a new annotation

which specifies that the result and error are not mutually exclusive,
but rather than we can expect a nil result in cases where there are not
an error. For the same reason as above, we only want to refer to this
keyword conditionally.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.h: Ditto.
5:22 PM Changeset in webkit [277214] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[BigSur Release Wk2 Arm64] inspector/css/node-styles-refreshed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=224788

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:01 PM Changeset in webkit [277213] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Breakpoint action add/remove buttons are not vertically aligned with action dropdown
https://bugs.webkit.org/show_bug.cgi?id=225543

Reviewed by Devin Rousso.

Change the breakpoint action add/remove button's margin-top to margin-block-start, and adjust the value to
properly vertically center the buttons with the action type menu.

  • UserInterface/Views/BreakpointActionView.css:

(:matches(.breakpoint-action-append-button, .breakpoint-action-remove-button)):

4:59 PM Changeset in webkit [277212] by Patrick Angle
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Default source for new test cases is minified
https://bugs.webkit.org/show_bug.cgi?id=225546

Reviewed by Devin Rousso.

Move the placeholder test code to WI.DefaultAudits as part of the non-minified sources so that new audit test
cases do not have their default placeholder script minified. This also allows us to remove
WI.AuditTestCase.stringifyFunction as it is no longer needed.

  • UserInterface/Models/AuditTestCase.js:

(WI.AuditTestCase.stringifyFunction): Deleted.

  • UserInterface/NonMinified/DefaultAudits.js:

(WI.DefaultAudits.newAuditPlaceholder):

  • UserInterface/Views/CreateAuditPopover.js:

(WI.CreateAuditPopover.prototype.dismiss):
(WI.CreateAuditPopover.prototype.dismiss.const.placeholderTestFunction): Deleted.

4:49 PM Changeset in webkit [277211] by Ruben Turcios
  • 1 copy in tags/Safari-611.3.2

Tag Safari-611.3.2.

4:46 PM Changeset in webkit [277210] by timothy_horton@apple.com
  • 13 edits
    2 copies
    3 adds in trunk/Source

Add an experimental alternative display-list-based RemoteLayerBackingStore implementation
https://bugs.webkit.org/show_bug.cgi?id=225508

Reviewed by Sam Weinig.

Source/WebKit:

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp: Added.

(WebKit::CGDisplayListImageBufferBackend::calculateMemoryCost):
(WebKit::CGDisplayListImageBufferBackend::create):
(WebKit::CGDisplayListImageBufferBackend::CGDisplayListImageBufferBackend):
(WebKit::CGDisplayListImageBufferBackend::createImageBufferBackendHandle const):
(WebKit::CGDisplayListImageBufferBackend::context const):
(WebKit::CGDisplayListImageBufferBackend::backendSize const):
(WebKit::CGDisplayListImageBufferBackend::bytesPerRow const):
(WebKit::CGDisplayListImageBufferBackend::copyNativeImage const):
(WebKit::CGDisplayListImageBufferBackend::toBGRAData const):
(WebKit::CGDisplayListImageBufferBackend::getImageData const):
(WebKit::CGDisplayListImageBufferBackend::putImageData):

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h: Added.

Add an ImageBuffer backend backed by a CG display list.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:

Add a new RemoteLayerBackingStore type that uses CGDisplayListImageBufferBackend.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::supportsPartialRepaint):
Disable partial repaint if using display-list-based backing store,
because we don't currently have any way to mutate display lists.

(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
When applying a display-list-based backing store to a layer, we just
pass the encodede data directly to the layer, and tell it to use the
display list to render.

  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:

(WebKit::RemoteLayerTreeNode::createWithPlainLayer):
(-[WKPlainRemoteLayer description]): Deleted.
Move WKPlainRemoteLayer to RemoteLayerTreeLayers, and rename it to WKCompositingLayer.
It will now back all WKCompositingViews.

  • UIProcess/RemoteLayerTree/cocoa/RemoteLayerTreeLayers.h: Added.
  • UIProcess/RemoteLayerTree/cocoa/RemoteLayerTreeLayers.mm: Added.

(-[WKCompositingLayer description]):
(-[WKCompositingLayer _setWKContentsDisplayList:]):
(-[WKCompositingLayer _wkContentsDisplayList]):
(-[WKCompositingLayer drawInContext:]):
Make WKCompositingLayer replay the given display list in drawRect
(just because we're currently missing API to actually directly pass
the encoded display list data to CA).

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(+[WKCompositingView layerClass]):
Use WKCompositingLayer as the layer class for all WKCompositingViews.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferBackendHandle.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::updateBackingStore):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h:

(WebKit::RemoteLayerTreeContext::useCGDisplayListsForDOMRendering const):
(WebKit::RemoteLayerTreeContext::setUseCGDisplayListsForDOMRendering):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updatePreferences):
Plumb the internal feature flag from WebPreferences to RemoteLayerTreeContext
to PlatformCALayerRemote to RemoteLayerBackingStore; if the preference is
on and the feature is available, we'll always prefer display-list backed
surfaces over either of the bitmap types.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
4:03 PM Changeset in webkit [277209] by Brent Fulgham
  • 4 edits in trunk

[iOS] Make AccessibilityReduceMotion test case work on iOS
https://bugs.webkit.org/show_bug.cgi?id=225244
<rdar://problem/77589455>

Reviewed by Per Arne Vollan.

New tests for Accessibility-related features were added in Bug 215664, but only for macOS.
We support these same features on iOS, and should have test coverage.

Source/WebKit:

Tested by AccessibilityReduceMotion.mm.

  • Platform/spi/Cocoa/AccessibilitySupportSPI.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/AccessibilityReduceMotion.mm:

(notificationCallback):
(TEST):

3:55 PM Changeset in webkit [277208] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] [GPU] Silence warning about com.apple.fontservicesd
https://bugs.webkit.org/show_bug.cgi?id=225520
<rdar://problem/77536616>

Reviewed by Per Arne Vollan.

We silenced the warnings about blocked connections to 'com.apple.fontservicesd' in the WebContent process in Bug 220320. We should
have done the same to the GPU Process to avoid spurious reports and telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
3:33 PM Changeset in webkit [277207] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur Release wk2 ARM64 ] http/tests/workers/service/self_registration.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=225527

Unreviewed test gardening.

Updating expectations to Pass Timeout for BigSur Release wk 2 on Apple Silicon.

  • platform/mac-wk2/TestExpectations:
3:23 PM Changeset in webkit [277206] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, reverting r277201.
https://bugs.webkit.org/show_bug.cgi?id=225542

Includes project file change.

Reverted changeset:

"[iOS] Make AccessibilityReduceMotion test case work on iOS"
https://bugs.webkit.org/show_bug.cgi?id=225244
https://trac.webkit.org/changeset/277201

3:05 PM Changeset in webkit [277205] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r277071): imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html is failing
https://bugs.webkit.org/show_bug.cgi?id=225469

Unreviewed test gardening.

  • platform/mac/TestExpectations: Resolve an issue with conflicting test expectations entries.
3:02 PM Changeset in webkit [277204] by Robert Jenner
  • 2 edits in trunk/LayoutTests

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

Unreviewed test gardening.

Updating test expectations to Pass Timeout for Bigsur wk2 Release arm64.

  • platform/mac-wk2/TestExpectations:
3:00 PM Changeset in webkit [277203] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

[iOS] fix inconsistency around the meaning of rate and defaultPlaybackRate between WebKit and AVKit
https://bugs.webkit.org/show_bug.cgi?id=225532
<rdar://problem/77629276>

Reviewed by Eric Carlson.

In AVKit, the defaultPlaybackRate is used when playback starts, such as resuming after
pausing. In WebKit, however, defaultPlaybackRate is only used when first loading and after
ending scanning, with the playbackRate being used in all other cases, including when
resuming after pausing. As such, WebKit should return the playbackRate instead of the
defaultPlaybackRate in these cases when communicating with AVKit.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController setRate:]):
Also setDefaultPlaybackRate: if not paused (i.e. rate != 0) since WebKit's definition of
playbackRate does not change when paused.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::rateChanged):
Make sure to setDefaultPlaybackRate: before setRate: as the latter can affect the former.

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

Do not try to remove and already removed node while deleting selection
https://bugs.webkit.org/show_bug.cgi?id=224893

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-05-07
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: editing/inserting/insert-text-force-repaint-on-load-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::removeNode): Return early if the given node doesn't have a parent anymore.

Tools:

Add new API to allow tests to trigger a force repaint on load finished.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::frameDidChangeLocation):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::displayOnLoadFinish):
(WTR::TestRunner::shouldDisplayOnLoadFinish):

LayoutTests:

  • editing/inserting/insert-text-force-repaint-on-load-crash-expected.txt: Added.
  • editing/inserting/insert-text-force-repaint-on-load-crash.html: Added.
2:42 PM Changeset in webkit [277201] by Brent Fulgham
  • 5 edits in trunk

[iOS] Make AccessibilityReduceMotion test case work on iOS
https://bugs.webkit.org/show_bug.cgi?id=225244
<rdar://problem/77589455>

New tests for Accessibility-related features were added in Bug 215664, but only for macOS.
We support these same features on iOS, and should have test coverage.

Reviewed by Per Arne Vollan.

Source/WebKit:

Tested by AccessibilityReduceMotion.mm.

  • Platform/spi/Cocoa/AccessibilitySupportSPI.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/AccessibilityReduceMotion.mm:

(notificationCallback):
(TEST):

2:40 PM Changeset in webkit [277200] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION: [ BigSurE Release wk 2] webrtc/video-replace-muted-track.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=225525

Unreviewed test gardening.

Updating test expectations to Pass Failure

  • platform/mac/TestExpectations:
2:32 PM Changeset in webkit [277199] by rniwa@webkit.org
  • 6 edits in trunk

IPC testing API should have the ability to create and receive IPC::Semaphore
https://bugs.webkit.org/show_bug.cgi?id=225537

Reviewed by Wenson Hsieh.

Source/WebKit:

This patch adds the capability to create IPC::Semaphore for IPC testing purposes.
It adds IPC.createSemaphore which creates a JavaScript object representing a semaphore
with signal and waitFor methods like IPC::Semaphore but waitFor taking milliseconds
to be consistent with other JavaScript APIs.

This patch also adds the support for encoding RemoteRenderingBackendCreationParameters
to facilitate creating a remote rendering backend during IPC testing.

Tests: TestWebKitAPI.IPCTestingAPI.CanReceiveIPCSemaphore

TestWebKitAPI.IPCTestingAPI.CanCreateIPCSemaphore

  • Platform/IPC/JSIPCBinding.cpp:

(IPC::jsValueForDecodedArgumentValue): Takes r-value reference since IPC::Semaphore
doesn't have a copy constructor.

  • Platform/IPC/JSIPCBinding.h:

(IPC::jsValueForDecodedArgumentValue): Ditto. Added a specialization for IPC::Semaphore.
(IPC::putJSValueForDecodeArgumentInArray):

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSIPCSemaphore): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::create): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::exchange): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::JSIPCSemaphore): Added.
(WebKit::IPCTestingAPI::createTypeError): Moved up.
(WebKit::IPCTestingAPI::JSIPCSemaphore::createJSWrapper): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::wrapperClass): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::unwrap): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::toWrapped): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::initialize): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::finalize): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::staticFunctions): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::signal): Added.
(WebKit::IPCTestingAPI::JSIPCSemaphore::waitFor): Added.
(WebKit::IPCTestingAPI::JSIPC::wrapperClass):
(WebKit::IPCTestingAPI::JSIPC::staticFunctions): Added IPC.createSemaphore.
(WebKit::IPCTestingAPI::getObjectIdentifierFromProperty): Added.
(WebKit::IPCTestingAPI::encodeRemoteRenderingBackendCreationParameters): Added.
(WebKit::IPCTestingAPI::encodeArgument): Added the support for encoding
RemoteRenderingBackendCreationParameters as an IPC argument.
(WebKit::IPCTestingAPI::JSIPC::createSemaphore): Added.
(IPC::jsValueForDecodedArgumentValue): Defined the aforementioned specialization for
IPC::Semaphore with IPCTestingAPI .

Tools:

Added tests to make sure IPC testing API allows creation of a semaphore,
and receiving one as a reply to an IPC message.

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

(IPCTestingAPI.CanReceiveIPCSemaphore): Added.
(IPCTestingAPI.CanCreateIPCSemaphore): Added.

2:28 PM Changeset in webkit [277198] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION: [ BigSurE Release wk 2] webrtc/direction-change.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=225523

Unreviewed test gardening.

Updating test expectation to Pass Failure.

  • platform/mac/TestExpectations:
2:14 PM Changeset in webkit [277197] by Ross Kirsling
  • 43 edits
    29 adds in trunk/JSTests

Update test262 (2021.05.07)
https://bugs.webkit.org/show_bug.cgi?id=225536

Reviewed by Alexey Shvayka.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/:
  • test262/test262-Revision.txt:
1:28 PM Changeset in webkit [277196] by Wenson Hsieh
  • 24 edits
    1 add in trunk/Source

[macOS] Set the -isSourceEditable property when presenting webpage translation popup
https://bugs.webkit.org/show_bug.cgi?id=225515
<rdar://problem/77658040>

Reviewed by Tim Horton.

Source/WebCore:

Set -[LTUITranslationViewController isSourceEditable] to YES when showing the context menu for editable
content. Instead of plumbing another boolean flag through ContextMenuClient and into the client layers through
handleTranslation(), we roll all of the webpage translation context menu parameters into a single object
(TranslationContextMenuInfo), including a new flag indicating whether or not the translation controller should
be shown in "editable" mode.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:
  • page/ContextMenuClient.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/TranslationContextMenuInfo.h: Added.

Pull the translated text string, selection bounds, menu location, and the new mode flag into a separate struct.

(WebCore::TranslationContextMenuInfo::encode const):
(WebCore::TranslationContextMenuInfo::decode):

Source/WebKit:

See WebCore/ChangeLog for more details.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::handleContextMenuTranslation):

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

(WebKit::WebViewImpl::handleContextMenuTranslation):

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::handleContextMenuTranslation):

  • WebProcess/WebCoreSupport/WebContextMenuClient.h:
  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:

(WebKit::WebContextMenuClient::handleTranslation):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::handleContextMenuTranslation):

  • WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/mac:

See WebCore/ChangeLog for more details.

  • WebCoreSupport/WebContextMenuClient.h:
  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::handleTranslation):

  • WebView/WebView.mm:

(-[WebView _handleContextMenuTranslation:]):
(-[WebView _handleContextMenuTranslation:selectionBounds:menuLocation:]): Deleted.

  • WebView/WebViewInternal.h:
1:09 PM Changeset in webkit [277195] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.12.4

Tag Safari-612.1.12.4.

12:51 PM WebKitGTK/StableRelease edited by Adrian Perez de Castro
(diff)
11:56 AM Changeset in webkit [277194] by Robert Jenner
  • 3 edits in trunk/LayoutTests

[ Mac ] accessibility/mac/expanded-notification.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205410

Unreviewed test gardening.

Updating test expectations to include all mac.

  • platform/mac/TestExpectations:
11:48 AM Changeset in webkit [277193] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r276739. rdar://problem/77581103

Don't create custom scrollbars for fullscreen placeholders.
https://bugs.webkit.org/show_bug.cgi?id=225141
Source/WebCore:

<rdar://64800098>

Reviewed by Darin Adler.

We can end up calling RenderScrollbar::createCustomScrollbar with
element = nullptr from RenderLayer::createScrollbar,
when the renderer is a RenderFullscreenPlaceholder.

We don't need to bother with scrollbars for the placeholder, so check to
make sure we have a valid element before creating custom scollbars.

Test: fullscreen/full-screen-crash-custom-scrollbars.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::createScrollbar):

LayoutTests:

Reviewed by Darin Adler.

  • fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
  • fullscreen/full-screen-crash-custom-scrollbars.html: Added.

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

11:48 AM Changeset in webkit [277192] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-611-branch

Cherry-pick r276627. rdar://problem/77580982

Create a containing block when relevant properties are set in the current element will-change
https://bugs.webkit.org/show_bug.cgi?id=167868

Patch by Tim Nguyen <ntim@apple.com> on 2021-04-26
Reviewed by Alan Bujtas.

Per spec, any CSS property that is susceptible to create a containing block should create one when put on the
current element's will-change.

Relevant WPT are enabled.

Test: fast/css/will-change/will-change-creates-containing-block.html

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-box/parsing/padding-computed-expected.txt:

Source/WebCore:

  • rendering/RenderElement.h: (WebCore::RenderElement::canContainFixedPositionObjects const): (WebCore::RenderElement::canContainAbsolutelyPositionedObjects const):
  • rendering/style/WillChangeData.cpp: (WebCore::WillChangeData::createsContainingBlockForOutOfFlowPositioned const):
  • rendering/style/WillChangeData.h:

LayoutTests:

  • TestExpectations:
  • fast/css/will-change/will-change-creates-containing-block-expected.html: Added.
  • fast/css/will-change/will-change-creates-containing-block.html: Added.

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

11:48 AM Changeset in webkit [277191] by Russell Epstein
  • 24 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r276575. rdar://problem/77581037

Make more IndexedDB objects iso-heap'ed
https://bugs.webkit.org/show_bug.cgi?id=225029

Reviewed by Darin Adler.

Deployed IsoHeap on more IndexedDB objects.

  • Modules/indexeddb/IDBFactory.cpp:
  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBGetAllResult.cpp:
  • Modules/indexeddb/IDBGetAllResult.h:
  • Modules/indexeddb/IDBGetResult.cpp:
  • Modules/indexeddb/IDBGetResult.h:
  • Modules/indexeddb/IDBIndex.cpp:
  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBKey.cpp:
  • Modules/indexeddb/IDBKey.h:
  • Modules/indexeddb/IDBObjectStore.cpp:
  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBRecordIdentifier.h: Removed since it's not used anywhere.
  • Modules/indexeddb/IDBRequest.cpp:
  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:
  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:
  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/TransactionOperation.cpp:
  • Modules/indexeddb/client/TransactionOperation.h:
  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
  • Modules/indexeddb/shared/IDBDatabaseInfo.h:
  • WebCore.xcodeproj/project.pbxproj:

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

11:48 AM Changeset in webkit [277190] by Russell Epstein
  • 4 edits in branches/safari-611-branch

Cherry-pick r276983. rdar://problem/77581150

localStorage changes aren't reflected between WKWebViews using WKWebViewConfiguration._groupIdentifier
https://bugs.webkit.org/show_bug.cgi?id=225344
<rdar://77496721>

Reviewed by Brady Eidson.

Source/WebKit:

When we switched from using _pageGroup to _groupIdentifier, we also broke localStorage by making a new pageGroupID for each WKWebView.
This is the low-risk solution to this problem that remembers what pageGroupID we used for this same identifier, creating the effect of
using the same StorageNamespaceIdentifier for each _groupIdentifier like we did when we used _pageGroup.
See the comment in StorageAreaMap::dispatchLocalStorageEvent.

The higher-risk solution that needs to be done but probably shouldn't be merged to a branch at this point is to remove StorageNamespaceIdentifier.
I plan to do that in a follow-up patch.

  • UIProcess/WebPageGroup.cpp: (WebKit::pageGroupData):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm: (TEST):

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

11:48 AM Changeset in webkit [277189] by Russell Epstein
  • 3 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r276696. rdar://problem/77581076

Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082

Patch by Ian Gilbert <iang@apple.com> on 2021-04-28
Reviewed by Ryosuke Niwa.

Refactoring to use weak pointer instead of raw pointer.
No observable change of behavior.

  • dom/Document.cpp: (WebCore::Document::registerMediaElement): (WebCore::Document::unregisterMediaElement): (WebCore::Document::forEachMediaElement):
  • dom/Document.h:

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

11:48 AM Changeset in webkit [277188] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r276630. rdar://problem/77581089

[MathML] Assertion failure in RenderTreeNeedsLayoutChecker
https://bugs.webkit.org/show_bug.cgi?id=224903

Patch by Frédéric Wang <fwang@igalia.com> on 2021-04-27
Reviewed by Alan Bujtas.

Source/WebCore:

After r226180, RenderMathMLRow no longer performs layout of its "embellished operator"
children only its core <mo> descendant, which is causing dirty layout.

Test: mathml/vertical-embellished-op-dirty-layout.html

  • rendering/mathml/RenderMathMLRow.cpp: (WebCore::RenderMathMLRow::stretchVerticalOperatorsAndLayoutChildren): always layout the "embellished operator" child, after its core <mo>.

LayoutTests:

Add regression test with all vertical embellished operators (other than <mo>) supported
by WebKit.

  • mathml/vertical-embellished-op-dirty-layout-expected.txt: Added.
  • mathml/vertical-embellished-op-dirty-layout.html: Added.

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

11:48 AM Changeset in webkit [277187] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r276492. rdar://problem/77581017

Do not set synchronous scrolling for layers without relevant scrolling scopes
https://bugs.webkit.org/show_bug.cgi?id=221383

Reviewed by Simon Fraser.

Fixed backgrounds could force the layer compositor to set synchronous scrolling because they're slow
to repaint. However that cannot be done if the layer's boxScrollingScope hasn't been previously updated
in RenderLayer::updateLayerPosition.

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes): Do not call setSynchronousScrollingReasons() if there is no scrollingScope.

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

11:48 AM Changeset in webkit [277186] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r275938. rdar://problem/77581120

Do not reset computed style for element children with display contents style
https://bugs.webkit.org/show_bug.cgi?id=223794

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-04-14
Reviewed by Antti Koivisto.

We were checking hasDisplayContents() was false before calling resetComputedStyle() on the parent, but we don't
check it when iterating the children.

  • dom/Element.cpp: (WebCore::Element::resetComputedStyle):
  • style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveComposedTree):

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

11:48 AM Changeset in webkit [277185] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-611-branch

Cherry-pick r275607. rdar://problem/77581135

REGRESSION (r270849): Button content fails to render on apple.com "Blood Oxygen"/"ECG"
https://bugs.webkit.org/show_bug.cgi?id=224261

Reviewed by Simon Fraser.

Source/WebCore:

  1. The changeRequiresRecompositeLayer check in RenderStyle::diff should come after changeRequiresRepaintIfTextOrBorderOrOutline since RepaintIfTextOrBorderOrOutline is at a higher priority in StyleDifference.
  2. Ensure that we trigger setNeedsCompositingConfigurationUpdate on diff >= StyleDifference::RecompositeLayer.

Test: fast/text/text-repaint-when-pointer-event-property-changes.html

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::layerStyleChanged):
  • rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::diff const):

LayoutTests:

  • fast/text/text-repaint-when-pointer-event-property-changes-expected.html: Added.
  • fast/text/text-repaint-when-pointer-event-property-changes.html: Added.

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

11:47 AM Changeset in webkit [277184] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271669. rdar://problem/77580999

Fix nullptr dereference introduced in r268228
https://bugs.webkit.org/show_bug.cgi?id=220776

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

Source/WebCore:

Instead of taking data from the FileReaderLoader, which it assumes it still has later,
only give the bytes to JavaScript that have been received since last time we called didReceiveData.
This makes blob.stream correct and not crash.

Test: fast/files/blob-stream-crash-2.html

  • fileapi/Blob.cpp: (WebCore::Blob::stream):
  • fileapi/FileReaderLoader.cpp: (WebCore::FileReaderLoader::takeRawData): Deleted.
  • fileapi/FileReaderLoader.h: (WebCore::FileReaderLoader::totalBytes const):

LayoutTests:

  • fast/files/blob-stream-crash-2-expected.txt: Added.
  • fast/files/blob-stream-crash-2.html: Added.

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

11:47 AM Changeset in webkit [277183] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r277114. rdar://problem/77638135

Fix crash when WebsiteDataStore is destroyed with outstanding getNetworkProcessConnection request
https://bugs.webkit.org/show_bug.cgi?id=225478
<rdar://77576148>

Reviewed by Chris Dumez.

In WebsiteDataStore::getNetworkProcessConnection if we don't get a connection the first time, we terminate the network process
and try again. This greatly increases our success rate. However, if we are cancelling the reply because of the destruction
of the WebsiteDataStore, we will end up doing bad things with partially destroyed objects, which ends up crashing.
In order to prevent this, use RunLoop::main.dispatch to retry on the next runloop iteration so that we will never be inside the
stack of WebsiteDataStore::~WebsiteDataStore when retrying. In that case, we will find that weakThis is null and send an empty
reply.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::getNetworkProcessConnection):

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

11:47 AM Changeset in webkit [277182] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r276671. rdar://problem/77620763

HashTableConstIterator's consistency assertion fails while closing m_webIDBServers in NetworkProcess::didClose since r275846
https://bugs.webkit.org/show_bug.cgi?id=225089

Reviewed by Chris Dumez.

The items of m_webIDBServers were removed while iterating
m_webIDBServers.

Move m_webIDBServers to a temporary HashMap before iterating.

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::didClose):

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

11:08 AM Changeset in webkit [277181] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (r277071): [Intel Mac] imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html is failing
https://bugs.webkit.org/show_bug.cgi?id=225469

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:06 AM Changeset in webkit [277180] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Use test-tube emoji for EWS status bubbles for tester queues
https://bugs.webkit.org/show_bug.cgi?id=225517

Reviewed by Alan Bujtas.

  • CISupport/ews-app/ews/views/statusbubble.py:

(StatusBubble):

10:24 AM Changeset in webkit [277179] by Russell Epstein
  • 11 edits in branches/safari-612.1.12-branch/Source/WebCore

Cherry-pick r277069. rdar://problem/77659420

AppHighlight scrolls should be smooth
https://bugs.webkit.org/show_bug.cgi?id=225395

Reviewed by Simon Fraser.

Leverage smooth scrolling experimental feature to allow AppHighlight scrolls
to be smooth.

  • Modules/highlight/AppHighlightStorage.cpp: (WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll):
  • editing/Editor.cpp: (WebCore::TemporarySelectionChange::setSelection):
  • editing/Editor.h:
  • editing/FrameSelection.cpp: (WebCore::FrameSelection::setSelection): (WebCore::FrameSelection::updateAndRevealSelection): (WebCore::FrameSelection::revealSelection):
  • editing/FrameSelection.h:
  • page/DOMWindow.cpp: (WebCore::DOMWindow::scrollTo const):
  • page/ScrollBehavior.cpp: (WebCore::useSmoothScrolling):
  • platform/ScrollTypes.h:

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

9:49 AM Changeset in webkit [277178] by Chris Dumez
  • 2 edits in trunk/Tools

Add API test for FileSystem::fileExists() and FileSystem::fileMetadata() when dealing with symlinks to symlinks
https://bugs.webkit.org/show_bug.cgi?id=225491

Reviewed by Sam Weinig.

Update FileSystemTest::SetUp() to use a valid path when constructing the test symlink
(tempFileSymlinkPath). Add API test for FileSystem::fileExists() and FileSystem::fileMetadata()
when dealing with symlinks to symlinks.

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

9:42 AM Changeset in webkit [277177] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

AudioWorkletProcessor which does not extend base class crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=225449
<rdar://problem/77624792>

Reviewed by Sam Weinig.

Update AudioWorkletGlobalScope::createProcessor() to validate the type of the processor
after constructing it.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::createProcessor):

9:21 AM Changeset in webkit [277176] by achristensen@apple.com
  • 14 edits in trunk/Source/ThirdParty/libwebrtc

Allow libwebrtc to build for Mac Catalyst
https://bugs.webkit.org/show_bug.cgi?id=225505

Reviewed by Youenn Fablet.

This is progress towards rdar://77568774

Changes necessary to get it to build and link were:

  1. kCVPixelBufferOpenGLESCompatibilityKey is unavailable on Catalyst, so use kCVPixelBufferOpenGLCompatibilityKey like we do on macOS.
  2. SSE4 and AVX seem to be unavailable in the Catalyst SDK like they are in the iOS simulator SDK, so disable them similarly.
  3. Link to UIKit and CoreGraphics in debug builds like we do with iOS family builds.
  4. Don't use @loader_path/../../../ for DYLIB_INSTALL_NAME_BASE like we do with relocatable Safari builds, similar to an ANGLE change I made in r276318
  5. Export the same symbols as iOS for now. This may need some tweaking when I get it to link with WebCore, but that's why this is only progress.
  • Configurations/DebugRelease.xcconfig:
  • Configurations/SDKVariant.xcconfig:
  • Configurations/libvpx.xcconfig:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/opus.xcconfig:
  • Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/x64/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:

(-[RTCVideoDecoderH264 resetDecompressionSession]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:

(-[RTCVideoDecoderH265 resetDecompressionSession]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:

(-[RTCVideoDecoderVTBVP9 resetDecompressionSession]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH265.mm:

(-[RTCVideoEncoderH265 resetCompressionSession]):

8:51 AM Changeset in webkit [277175] by Philippe Normand
  • 4 edits in trunk

[GStreamer][MediaStream] Emit black frames for disabled video tracks
https://bugs.webkit.org/show_bug.cgi?id=225511

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

In case the video track is disabled, emit a black I420 frame. For disabled audio tracks we
might need to silence the corresponding audio frames, this will be investigated in a
follow-up patch.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

LayoutTests:

  • platform/glib/TestExpectations: Unflag mediastream test now passing.
8:23 AM Changeset in webkit [277174] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Crash in ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=225235

Patch by Frédéric Wang <fwang@igalia.com> on 2021-05-07
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: editing/execCommand/font-size-delta-same-node-for-start-and-end-crash.html

In ApplyStyleCommand::applyRelativeFontStyleChange, when the selection start and end have the
same anchor node, the start node of the loop is obtained by calling Position::upstream on the
selection start while end node of the loop is obtained by calling NodeTraversal::next on the
anchor node. This can result in the former being after the latter. This patch fixes this by
moving the end of the loop after the anchor node (similar to what is already done when the
start anchor node is a strict descendant of the end anchor node).

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Also include the case where
end.deprecatedNode() == start.deprecatedNode() in the conditional.

LayoutTests:

Add regression test.

  • editing/execCommand/font-size-delta-same-node-for-start-and-end-crash-expected.txt: Added.
  • editing/execCommand/font-size-delta-same-node-for-start-and-end-crash.html: Added.
  • platform/ios/editing/execCommand/font-size-delta-same-node-for-start-and-end-crash-expected.txt: Added.
8:05 AM Changeset in webkit [277173] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, glib WebAudio gardening

  • platform/glib/TestExpectations: Unflag webaudio test now passing since r276978.
7:55 AM Changeset in webkit [277172] by commit-queue@webkit.org
  • 10 edits
    2 deletes in trunk/Source

[GTK4] Rewrite GTK gesture support to work for both 3.x and 4.x.
https://bugs.webkit.org/show_bug.cgi?id=212324

Patch by Carlos Garnacho <carlosg@gnome.org> on 2021-05-07
Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • platform/gtk/GtkVersioning.h:

(gtk_event_controller_get_current_event_state):
(gtk_event_controller_get_current_event_time): New GTK4 portability
helper methods.

Source/WebKit:

Rewrite the touch gesture handling to avoid GdkEvent as an exchange
token, and not rely on the web view being able to hold and re-route
these at whim. This makes touch and touchpad gestures work on GTK3
and GTK4 in similar ways, and so that both work.

For this, touch event propagation got some substantial changes, it
used to work by first delivering the touch events to the web page,
and manually feeding the returned+unhandled ones to gesture controllers.
Now event delivery is delegated on GTK, and happens right away on
gesture controllers, it is the WebkitWebViewBase which chooses to make
them effective after the web page (maybe) handled the events. Gestures
are reset whenever the web page is considered to be handling touch
events.

Also fix some buglets accumulated along the way, web view zoom conflicted
with in-page zoom handling, and ViewGestureController page switching
conflicted with press-drag-release emulation on the web page. These now
work better and closer to GtkScrolledWindow behavior.

No new tests, the GTK touch tests that should catch this were disabled
in the past and need fixing. This patch will require manual testing.

  • PlatformGTK.cmake: Drop GTK4 conditionals around ViewGestureController
  • SourcesGTK.txt: Drop GestureController.cpp. Build ViewGestureController

code files unconditionally.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithTouchEvent): Delegate handling on
WebKitWebViewBase.
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): Use platform
independent struct to forward scroll to ViewGestureController.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSnapshot): Involve ViewGestureController in rendering.
(webkitWebViewBaseButtonPressEvent):
(webkitWebViewBaseButtonReleaseEvent):
(webkitWebViewBaseButtonPressed):
(webkitWebViewBaseButtonReleased):
(webkitWebViewBaseMotionNotifyEvent): Ignore pointer-emulated events from
touchscreens.
(webkitWebViewBaseHandleWheelEvent):
(webkitWebViewBaseScroll): Use platform independent struct
to forward scroll to ViewGestureController.
(appendTouchEvent):
(touchPointStateForEvents):
(webkitWebViewBaseGetTouchPointsForEvent):
(webkitWebViewBaseTouchEvent):
Generalized to work on both GTK3 and GTK4.
(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseZoomChanged):
(webkitWebViewBaseTouchLongPress):
(webkitWebViewBaseTouchPress):
(webkitWebViewBaseTouchRelease):
(webkitWebViewBaseTouchDragBegin):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchDragEnd):
(webkitWebViewBaseTouchDragCancel):
(webkitWebViewBaseTouchSwipe): Newly added touch gesture implementation
callbacks. Not delegated anymore on GestureController.
(webkitWebViewBaseConstructed): Create touch gestures in the base view
widget, let them handle events automatically instead of relying on
manual event feeding via gtk_event_controller_handle_event(). Also add
a GtkEventControllerLegacy to handle forwarding of raw touch events to
the web page in GTK4.
(webkitWebViewBaseSetEnableBackForwardNavigationGesture):
(webkitWebViewBaseViewGestureController):
(webkitWebViewBaseBeginBackSwipeForTesting):
(webkitWebViewBaseCompleteBackSwipeForTesting):
(webkitWebViewBaseWillSwapWebProcess):
(webkitWebViewBaseDidExitWebProcess):
(webkitWebViewBaseDidRelaunchWebProcess):
(webkitWebViewBaseDidStartProvisionalLoadForMainFrame):
(webkitWebViewBaseDidFirstVisuallyNonEmptyLayoutForMainFrame):
(webkitWebViewBaseDidFinishNavigation):
(webkitWebViewBaseDidFailNavigation):
(webkitWebViewBaseDidSameDocumentNavigationForMainFrame):
(webkitWebViewBaseDidRestoreScrollPosition): Remove conditionals around
ViewGestureController for GTK4.
(webkitWebViewBasePageGrabbedTouch): New method to tag touch events
altogether as handled by the web page, thus resetting any ongoing view-level
gesture handling. This inversion is necessary as gesture controllers are now
always fed input events parallel to web page touch event handling.
(webkitWebViewBaseGestureController): Deleted.
(webkit_web_view_base_class_init):
(webkitWebViewBaseEvent): Removed widget_class->event vfunc. Touchpad gesture
event forwarding to event controllers is delegated on GTK.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/ViewGestureController.h:
  • UIProcess/gtk/GestureController.cpp: Removed. Gestures are implemented in

the base view.

  • UIProcess/gtk/GestureController.h: Removed.
  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::isEventStop):
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanStartSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanEndSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanInfluenceSwipe):
(WebKit::isTouchEvent):
(WebKit::createScrollEvent):
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventGetScrollingDeltas):
(WebKit::ViewGestureController::handleScrollWheelEvent):
(WebKit::ViewGestureController::SwipeProgressTracker::handleEvent):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting):
(WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting): Declare
PlatformGtkScrollData, and use it as "platform scroll event" for both GTK3 and GTK4.
(WebKit::ViewGestureController::snapshot): New GTK4 specific method to render
the page switching gesture action.

5:31 AM Changeset in webkit [277171] by youenn@apple.com
  • 15 edits in trunk/Source

Add WebRTC logging control in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=225346

Reviewed by Eric Carlson.

Source/WebCore:

Migrate setEnableLogging to setLoggingLevel as a virtual method so that it can be implemented by WebKit to send logging level to GPUProcess.
Simplify WebCore::LibWebRTCProvider::setLoggingLevel to not differentiate debug from non debug builds.
Manually tested.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::create):

  • page/Page.cpp:

(WebCore::Page::configureLoggingChannel):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::computeLogLevel):
(WebCore::LibWebRTCProvider::setRTCLogging):
(WebCore::LibWebRTCProvider::setLoggingLevel):
(WebCore::setLogging): Deleted.
(WebCore::LibWebRTCProvider::setEnableLogging): Deleted.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Source/WebKit:

Implement setting of WebRTC log level using LibWebRTCCodecs and LibWebRTCCodecsProxy.
This will help debugging issues with GPU-running webrtc codecs.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::toWebRTCVideoRotation):
(WebKit::LibWebRTCCodecsProxy::setRTCLoggingLevel):

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThread):
(WebKit::LibWebRTCCodecs::setLoggingLevel):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::setLoggingLevel):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
5:17 AM Changeset in webkit [277170] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK][WPE] Bump libsoup3 version to 2.99.5
https://bugs.webkit.org/show_bug.cgi?id=225506

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-05-07
Reviewed by Philippe Normand.

.:

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

LayoutTests:

Remove expectations for tests that should be passing now.

  • platform/gtk/TestExpectations:
5:05 AM Changeset in webkit [277169] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit

[iOS] Safari sometimes hangs underneath WebKit::UIDelegate::UIClient::createNewPage
https://bugs.webkit.org/show_bug.cgi?id=225481
rdar://77565282

Reviewed by Chris Dumez.

Consider the scenario where a webpage programmatically opens a window in a new tab on iOS while the keyboard is
visible. In certain configurations, Safari indirectly tells the WKWebView containing the original webpage to
-resignFirstResponder and then -becomeFirstResponder again, while creating a new web view and shuffling
around the view hierarchy under -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:.

Since the keyboard is up, this causes UIKit to ask for an autocorrection context via `-[WKContentView
requestAutocorrectionContextWithCompletionHandler:]`, which blocks the main thread on a response from the web
process. Of course, since we're handling synchronous IPC, the web process isn't capable of sending a response
back to the UI process, so we deadlock until we exceed the IPC timeout, and then exit the call stack.

Instead, it's possible in this case to recognize that we're already handling a synchronous IPC message, and any
attempts to wait for a response will time out anyways. Instead of waiting for the entire timeout duration, we
can fail eagerly to avoid hanging the process that is waiting.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::Connection):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::dispatchSyncMessage):

  • Platform/IPC/Connection.h:

Add a new counter variable, m_inDispatchSyncMessageCount, that is incremented and decremented while we're
in the process of dispatching an incoming sync IPC message. If m_inDispatchSyncMessageCount is nonzero and
we have a non-infinite IPC timeout duration, then we should fail sooner inside Connection::waitForMessage,
instead of waiting to time out.

Drive-by refactoring: while we're here, let's also move initialization for some of the members on Connection
into the class declaration, instead of the constructor.

(IPC::Connection::WTF_GUARDED_BY_LOCK):

  • Platform/IPC/Timeout.h:

(IPC::Timeout::isInfinity const):

  • WebKit.xcodeproj/project.pbxproj:
4:46 AM Changeset in webkit [277168] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[GTK] Warnings about unused filesystem functions
https://bugs.webkit.org/show_bug.cgi?id=225507

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

Since r277158 these functions are no longer needed.

  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::getFileStat): Deleted.
(WTF::FileSystemImpl::getFileLStat): Deleted.

3:02 AM Changeset in webkit [277167] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, WPE gardening

  • TestWebKitAPI/glib/TestExpectations.json: Unflag test, wpebackend-fdo was downgraded in

the SDK revision r277166.

2:06 AM Changeset in webkit [277166] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update to libsoup3 2.99.5
https://bugs.webkit.org/show_bug.cgi?id=225504

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-05-07
Reviewed by Philippe Normand.

  • elements/sdk/libsoup3.bst:
1:47 AM Changeset in webkit [277165] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/buildstream

[WPE] TestWebExtensions web-process-crashed is flaky failing after latest WPE libs update
https://bugs.webkit.org/show_bug.cgi?id=225503

Patch by Philippe Normand <pnormand@igalia.com> on 2021-05-07
Reviewed by Carlos Garcia Campos.

The update to 1.9.91 triggers critical warnings in tests. Might be fixed by
https://github.com/Igalia/WPEBackend-fdo/pull/158 which is not merged yet.

  • elements/sdk/wpebackend-fdo.bst: Downgrade to latest stable release until the bug is fixed.
1:46 AM Changeset in webkit [277164] by eocanha@igalia.com
  • 2 edits in trunk/LayoutTests

[GStreamer] Layout test media/video-playsinline.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=186664

Reviewed by Philippe Normand.

The change to fullscreen takes a while on WebKitGTK and WPE platforms and can't be checked immediately.

  • media/video-playsinline.html: Added a setTimeout to the test in order to defer the check to the next main loop iteration.
1:08 AM Changeset in webkit [277163] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in InsertTextCommand::positionInsideTextNode
https://bugs.webkit.org/show_bug.cgi?id=223753

Patch by Frédéric Wang <fwang@igalia.com> on 2021-05-07
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: editing/deleting/selection-on-empty-table-row.html

This is a follow-up of bug 213514, where removePreviouslySelectedEmptyTableRows was
modified to ensure the selection is properly updated after deleting the last row. This
patch does the same for other rows.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows): Update comment
about calling raw removeNode and move it to the top of the function. Replace all the calls
to CompositeEditCommand::removeNode with CompositeEditCommand::removeNodeUpdatingStates so
that the selection is adjusted.

LayoutTests:

Add regression test.

  • editing/deleting/selection-on-empty-table-row-expected.txt: Added.
  • editing/deleting/selection-on-empty-table-row.html: Added.
12:44 AM Changeset in webkit [277162] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

[GPU Process] Closing the GPU Process should clear all the back pointers from ItemBuffer to RemoteRenderingBackendProxy
https://bugs.webkit.org/show_bug.cgi?id=224744
<rdar://74592639>

Reviewed by Ryosuke Niwa.

RemoteRenderingBackendProxy::gpuProcessConnectionDidClose() clears the
the backends of all its RemoteImageBufferProxys. It also clears all the
SharedMemory which are referenced by the ItemBufferHandles.

So DisplayList::ImageBuffer::clearBackend() should clear all the
ItemBufferHandles of its DisplayList.

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

May 6, 2021:

11:15 PM Changeset in webkit [277161] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
11:11 PM Changeset in webkit [277160] by ntim@apple.com
  • 4 edits
    2 deletes in trunk/LayoutTests

Re-import css/mediaqueries/test_media_queries.html WPT
https://bugs.webkit.org/show_bug.cgi?id=225469

Unreviewed. Test gardening.

Pulls in https://github.com/web-platform-tests/wpt/pull/28881 to fix device specific test failures.
Also removes platform-specific test expectations which were added to that issue.

LayoutTests/imported/w3c:

  • web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
  • web-platform-tests/css/mediaqueries/test_media_queries.html:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt: Removed.
10:38 PM Changeset in webkit [277159] by Lauro Moura
  • 4 edits
    2 adds
    2 deletes in trunk/LayoutTests

[WPE] Garden a few more failures

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
  • platform/wpe/fast/inline/crash-when-revert-has-trailing-line-break-expected.txt: Added to keep testing whether the crash happens instead of skipping.
  • platform/wpe/fonts/sans-serif-expected.txt: Rebaseline after r275515.
  • platform/wpe/fonts/serif-expected.txt: Ditto.
  • platform/wpe/http/tests/cache/network-error-during-revalidation-expected.txt: Removed. Using DumpJSConsoleLogInStdErr instead to reuse root baseline.
  • platform/wpe/http/tests/xmlhttprequest/state-after-network-error-expected.txt: Ditto.
  • platform/wpe/tables/mozilla/bugs/adforce_imgis_com-expected.txt: Added after r275515.
10:00 PM Changeset in webkit [277158] by Chris Dumez
  • 15 edits in trunk

Port Filesystem::fileMetadata() & Filesystem::getFileModificationTime() to std::filesystem
https://bugs.webkit.org/show_bug.cgi?id=225362

Reviewed by Darin Adler.

Source/JavaScriptCore:

Build fix.

  • Configurations/JavaScriptCore.xcconfig:

Source/WTF:

Port Filesystem::fileMetadata() & Filesystem::getFileModificationTime() to std::filesystem
and get rid of platform-specific implementations.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::toWallTime):
(WTF::FileSystemImpl::getFileModificationTime):
(WTF::FileSystemImpl::fileMetadata):

  • wtf/FileSystem.h:
  • wtf/glib/FileSystemGlib.cpp:
  • wtf/posix/FileSystemPOSIX.cpp:
  • wtf/win/FileSystemWin.cpp:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):
(TestWebKitAPI::runGetFileModificationTimeTest):

LayoutTests:

Add 0 to the list of allowed values for the size of a directory in the data transfer API as the result
is implementation-specific. On macOS, we used to return 256 on apfs and 272 on HFS+. We now return 0,
which is what Firefox does.

  • editing/pasteboard/entries-api/datatransfer-items-drop-getAsEntry-expected.txt:
  • editing/pasteboard/entries-api/datatransfer-items-drop-getAsEntry.html:
  • fast/forms/file/entries-api/drag-folder-webkitEntries-expected.txt:
  • fast/forms/file/entries-api/drag-folder-webkitEntries.html:
9:41 PM Changeset in webkit [277157] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE] Garden web-process-crashed API test flakiness after SDK update

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
8:11 PM Changeset in webkit [277156] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.3.2

7:38 PM Changeset in webkit [277155] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Allow file-read* and file-write-data for /dev/null and /dev/zero
https://bugs.webkit.org/show_bug.cgi?id=225482
<rdar://problem/77503594>

Reviewed by Per Arne Vollan.

Revise sandbox to allow read and write-data access to /dev/null and /dev/zero.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
7:14 PM Changeset in webkit [277154] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] http/wpt/mediarecorder/set-srcObject-MediaStream-Blob.html (layout-test) is a flaky text failure
Nhttps://bugs.webkit.org/show_bug.cgi?id=225500

Unreviewed test gardening.

Marking test as flaky (Pass Failure) while test is reviewed.

  • platform/mac-wk2/TestExpectations:
7:13 PM Changeset in webkit [277153] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Removed the assertion m_numParameters >= 0, it is always true as
m_numParameters is unsigned.
https://bugs.webkit.org/show_bug.cgi?id=225457

Patch by Eleni Maria Stea <hikiko> on 2021-05-06
Reviewed by Yusuke Suzuki.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numberOfArgumentValueProfiles):

6:56 PM Changeset in webkit [277152] by Robert Jenner
  • 1 edit
    6 adds in trunk/LayoutTests

REGRESSION (r272039): [Big Sur release WK2] imported/w3c/web-platform-t ests/media-source/mediasource-changetype-play-implicit.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=221143

Unreviewed test gardening.

Rebasing test for BigSur wk2.

  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit-expected.txt: Added.
6:48 PM Changeset in webkit [277151] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Retry asynchronously in WebProcessPool::getGPUProcessConnection() in case of failure
https://bugs.webkit.org/show_bug.cgi?id=225486

Reviewed by Alex Christensen.

Retry asynchronously in WebProcessPool::getGPUProcessConnection(), similarly to what
we do in WebsiteDataStore::getNetworkProcessConnection(). As a result, we no longer
need to ref the WebProcessPool in the lambda and we avoid retrying unnecessarily
when the WebProcessPool is getting destroyed.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getGPUProcessConnection):

6:38 PM Changeset in webkit [277150] by Robert Jenner
  • 4 edits in trunk/LayoutTests

[ macOS iOS ] crypto/crypto-random-values-oom.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223949

Unreviewed test gardening.

Updating test expectations to slow.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
6:31 PM Changeset in webkit [277149] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS ] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-ivec2.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224396

Unreviewed test gardening.

Updating expectations to slow.

  • platform/mac/TestExpectations:
6:12 PM Changeset in webkit [277148] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

ArtworkImageLoader can call callback with null value.
https://bugs.webkit.org/show_bug.cgi?id=225496
rdar://problem/77631799

Reviewed by Eric Carlson.

The ArtworkImageLoader can call the callback with null to indicate an error.

  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::MediaMetadata::refreshArtworkImage): Add null check

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

[MacOS] animations/keyframe-pseudo-shadow.html is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=221491

Unreviewed test garending.

Updating test expectation. Was previously set as Pass Failure, but is an Image failure. Added ImageOnly to Failure expectation.

  • platform/mac/TestExpectations:
5:56 PM Changeset in webkit [277146] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] fast/scrolling/mac/overflow-scrollbars-toggle-dark-mode.html (layout-test) is a flaky
https://bugs.webkit.org/show_bug.cgi?id=225498

Unreviewed test gardening.

Updated expectations to flaky ( Pass ImageOnlyFailure ) while test is reviewed.

  • platform/mac-wk2/TestExpectations:
5:46 PM Changeset in webkit [277145] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update test expectations after WPT re-imports in r277086 and r277091.

  • platform/glib/TestExpectations:
5:30 PM Changeset in webkit [277144] by dino@apple.com
  • 16 edits in trunk/LayoutTests

Rebaseline the following tests that now pass.
rdar://76714473

  • webgl/2.0.0/deqp/functional/gles3/fbomultisample.2_samples-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbomultisample.4_samples-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fbomultisample.8_samples-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/06-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/07-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegrad-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureformat/sized_depth_stencil-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil-expected.txt:
5:17 PM Changeset in webkit [277143] by Kyle Piddington
  • 3 edits in trunk/Source/ThirdParty/ANGLE

[Metal ANGLE] Only clear dirty state bits after all state has been successfully set
https://bugs.webkit.org/show_bug.cgi?id=225468
<rdar://77066752>

When running in release, if any ANGLE calls fail, we eventually return to this part of the code.
We can be left with an incomplete state, where we have an incomplete program or attachment,
but a 'clean' state. This can lead to errors such as setting nil render pipeline states, leading to
crashes.

To mitigate this, hold off on setting state bits until we've completly set up a program.

Reviewed by Dean Jackson.

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

(rx::ContextMtl::setupDraw):

  • src/libANGLE/renderer/metal/ProgramMtl.mm:
5:17 PM Changeset in webkit [277142] by yoshiaki.jitsukawa@sony.com
  • 18 edits
    2 copies
    4 adds in trunk

[OpenSSL] Implement CryptoAlgorithmRSA*
https://bugs.webkit.org/show_bug.cgi?id=225294

Reviewed by Don Olmstead.

Implement RSA for OpenSSL.

Implement CryptoAlgorithmRSA_OAEP, CryptoAlgorithmRSA_PSS,
CryptoAlgorithmRSAES_PKCS1_v1_5, CryptoAlgorithmRSASA_PKCS1_v1_5,
and CryptoKeyRSA for OpenSSL.

.:

Note that if such OpenSSL version that does not support RSA_OAEP or
RSA_PSS, the WebCrypto API for those algorithm will return a
NotSupportedError.

  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWinCairo.cmake:

Source/WebCore:

Note that if such OpenSSL version that does not support RSA_OAEP or
RSA_PSS, the WebCrypto API for those algorithm will return a
NotSupportedError.

Also note that OpenSSL accepts RSA_PSS salt length longer than the hash
length. This makes the
crypto/subtle/rsa-pss-import-key-sign-large-salt.html test fail.

Test: Existing crypto/subtle tests

  • crypto/keys/CryptoKeyRSA.h: Use the EVP_PKEY struct for the platform

key.

  • crypto/openssl/CryptoAlgorithmHMACOpenSSL.cpp: Move HMACAlgorithm()

to OpenSSLUtilities as DigestAlgorithm().

  • crypto/openssl/CryptoAlgorithmRSAES_PKCS1_v1_5OpenSSL.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
Implemented.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
Implemented.

  • crypto/openssl/CryptoAlgorithmRSASSA_PKCS1_v1_5OpenSSL.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
Implemented.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
Implemented.

  • crypto/openssl/CryptoAlgorithmRSA_OAEPOpenSSL.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): Implemented.
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): Implemented.

  • crypto/openssl/CryptoAlgorithmRSA_PSSOpenSSL.cpp:

(WebCore::CryptoAlgorithmRSA_PSS::platformSign): Implemented.
(WebCore::CryptoAlgorithmRSA_PSS::platformVerify): Implemented.

  • crypto/openssl/CryptoAlgorithmRegistryOpenSSL.cpp:

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Registered RSAES_PKCS1_v_1_5, RSASSA_PKCS1_v1_5, RSA_OAEP, and RSA_PSS.

  • crypto/openssl/CryptoKeyRSAOpenSSL.cpp:

(WebCore::getRSAModulusLength):
(WebCore::convertToBytes):
(WebCore::convertToBigNumber):
(WebCore::CryptoKeyRSA::create):
(WebCore::CryptoKeyRSA::CryptoKeyRSA):
(WebCore::CryptoKeyRSA::isRestrictedToHash const):
(WebCore::CryptoKeyRSA::keySizeInBits const):
(WebCore::exponentVectorToUInt32):
(WebCore::CryptoKeyRSA::generatePair):
(WebCore::CryptoKeyRSA::importSpki):
(WebCore::CryptoKeyRSA::importPkcs8):
(WebCore::CryptoKeyRSA::exportSpki const):
(WebCore::CryptoKeyRSA::exportPkcs8 const):
(WebCore::CryptoKeyRSA::algorithm const):
(WebCore::CryptoKeyRSA::exportData const):

  • crypto/openssl/OpenSSLCryptoUniquePtr.h:

(WebCore::OpenSSLCryptoPtrDeleter<EVP_PKEY_CTX>::operator() const):
Added.
(WebCore::OpenSSLCryptoPtrDeleter<RSA>::operator() const): Added.
(WebCore::OpenSSLCryptoPtrDeleter<PKCS8_PRIV_KEY_INFO>::operator() const): Added.
(WebCore::OpenSSLCryptoPtrDeleter<BIGNUM>::operator() const): Added.
(WebCore::OpenSSLCryptoPtrDeleter<BN_CTX>::operator() const): Added.

  • crypto/openssl/OpenSSLUtilities.cpp:

(WebCore::digestAlgorithm): Added.
(WebCore::calculateDigest): Added.

  • crypto/openssl/OpenSSLUtilities.h:
  • platform/OpenSSL.cmake:

Source/WTF:

Note that if such OpenSSL version that does not support RSA_OAEP or
RSA_PSS, the WebCrypto API for those algorithm will return a
NotSupportedError.

  • wtf/Platform.h: Set HAVE_RSA_PSS for USE(OPENSSL)

LayoutTests:

Add wincairo platform expectations for
rsa-generate/import-key-malformed-parameters, modifying RSA-PSS
related results from NotSupported to appropriate errors.

  • platform/wincairo/TestExpectations: Unskip tests that are now supported.
  • platform/wincairo/crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt: Added.
  • platform/wincairo/crypto/subtle/rsa-import-key-malformed-parameters-expected.txt: Added.
5:14 PM Changeset in webkit [277141] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur Debug ] webgl/1.0.3/conformance/glsl/misc/expression-list-in-declarator-initializer.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=225425

Unreviewed test gardening.

Updating test expectations to flaky ( Pass Timeout ) while test is reviewed.

  • platform/mac/TestExpectations:
5:13 PM Changeset in webkit [277140] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

r277122 caused a crash in GPU Process
https://bugs.webkit.org/show_bug.cgi?id=225492
<rdar://problem/77630141>

Reviewed by Jer Noble.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Have the time observer
call back on the main queue.

4:39 PM Changeset in webkit [277139] by Russell Epstein
  • 1 copy in tags/Safari-611.2.7.1.4

Tag Safari-611.2.7.1.4.

4:38 PM Changeset in webkit [277138] by Robert Jenner
  • 2 edits in trunk/LayoutTests

N[ macOS wk2 ] fast/scrolling/mac/rubberband-overflow-in-wheel-region-root-jiggle.html (layout-test) is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=225488

Unreviewed test gardening.

Updating test expectations to flaky ( Pass Timeout ) while test is reviewed.

  • platform/mac-wk2/TestExpectations:
4:35 PM Changeset in webkit [277137] by Russell Epstein
  • 1 copy in tags/Safari-611.2.7.0.3

Tag Safari-611.2.7.0.3.

4:15 PM Changeset in webkit [277136] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/css/css-animations/translation-animation-subpixel-offset.html (layout-test) is a flakey ImageOnly failure
https://bugs.webkit.org/show_bug.cgi?id=225484

Unreviewed test gardening.

Marking test as flaky ( Pass ImageOnlyFailure ) while test is reviewed.

  • platform/mac/TestExpectations:
4:01 PM Changeset in webkit [277135] by Chris Dumez
  • 62 edits in trunk

Regression(r254389?) navigator.languages returns all lowercase languages for ports using CF
https://bugs.webkit.org/show_bug.cgi?id=225461

Reviewed by Darin Adler.

Source/WTF:

Stop lowercasing the languages returned by navigator.language / navigator.languages
as this does not match the specification [1][2] or other Web browsers. The proper format is
'en-US', not 'en-us'.

[1] https://html.spec.whatwg.org/#dom-navigator-language
[2] https://tools.ietf.org/html/bcp47

  • wtf/cf/LanguageCF.cpp:

(WTF::httpStyleLanguageCode):

Tools:

Update existing API tests to reflect behavior change.

  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:

(TEST):
(TEST_F):

LayoutTests:

Update existing tests to reflect behavior change.

  • fast/text/international/system-language/navigator-language/navigator-language-en-GB-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-en-GB.html:
  • fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-en-US.html:
  • fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-en.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es.html:
  • fast/text/international/system-language/navigator-language/navigator-language-fr-CA-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html:
  • fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-fr.html:
  • fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-hi.html:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-PT-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html:
  • fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-ru.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-HK-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hans-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-TW-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html:
  • js/dom/navigator-language.html:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt:
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-419-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ja-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-zh-HK-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK-expected.txt:
3:31 PM Changeset in webkit [277134] by Russell Epstein
  • 1 copy in tags/Safari-612.1.13

Tag Safari-612.1.13.

3:30 PM Changeset in webkit [277133] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Remove old and unused memory barrier abstractions
https://bugs.webkit.org/show_bug.cgi?id=225487

Reviewed by Mark Lam.

We don't use memoryBarrierBlahBlah anymore.

  • wtf/Atomics.h:

(WTF::memoryBarrierAfterLock): Deleted.
(WTF::memoryBarrierBeforeUnlock): Deleted.

2:59 PM Changeset in webkit [277132] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] Garden accessibility failure and merge other expectations with glib one

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
2:56 PM Changeset in webkit [277131] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.11.10

Tag Safari-612.1.11.10.

2:56 PM Changeset in webkit [277130] by Ruben Turcios
  • 1 delete in tags/Safari-612.1.11.10

Delete tag.

2:49 PM Changeset in webkit [277129] by Russell Epstein
  • 2 edits in branches/safari-611.2.7.1-branch/Source/WebKit

Cherry-pick r276671. rdar://problem/77620890

HashTableConstIterator's consistency assertion fails while closing m_webIDBServers in NetworkProcess::didClose since r275846
https://bugs.webkit.org/show_bug.cgi?id=225089

Reviewed by Chris Dumez.

The items of m_webIDBServers were removed while iterating
m_webIDBServers.

Move m_webIDBServers to a temporary HashMap before iterating.

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::didClose):

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

2:47 PM Changeset in webkit [277128] by Ruben Turcios
  • 8 edits in branches/safari-612.1.11-branch/Source

Versioning.

WebKit-7612.1.11.10

2:46 PM Changeset in webkit [277127] by Russell Epstein
  • 8 edits in branches/safari-611.2.7.1-branch/Source

Versioning.

WebKit-7611.2.7.1.4

2:39 PM Changeset in webkit [277126] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.11.10

Tag Safari-612.1.11.10.

2:32 PM Changeset in webkit [277125] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE][WebXR] Gardening regressions after r277099

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
2:31 PM Changeset in webkit [277124] by Devin Rousso
  • 17 edits in trunk

Sampled Page Top Color: make hit tests consider elements with pointer-events: none
https://bugs.webkit.org/show_bug.cgi?id=225419

Reviewed by Tim Horton.

Source/WebCore:

Test: SampledPageTopColor.HitTestCSSPointerEventsNone

  • rendering/HitTestRequest.h:

(WebCore::HitTestRequest::ignoreCSSPointerEventsProperty const): Added.

  • rendering/InlineBox.h:

(WebCore::InlineBox::visibleToHitTesting const):

  • rendering/RenderElement.h:

(WebCore::RenderElement::visibleToHitTesting const):
Add RequestType::IgnoreCSSPointerEventsProperty that's used inside visibleToHitTesting
to control whether style().pointerEvents() == PointerEvents::None is checked.

  • dom/Document.cpp:

(WebCore::isValidPageSampleLocation):
Include the new RequestType::IgnoreCSSPointerEventsProperty since we're not hit testing
for interaction, rather we're hit testing in an attempt to see what will be painted.

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::nodeAtPoint):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::nodeAtPoint):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::nodeAtPoint):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::nodeAtPoint):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::nodeAtPoint):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::hitTestCulledInline):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::nodeAtPoint):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::nodeAtPoint):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::nodeAtPoint):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::nodeAtPoint):
Pass the HitTestRequest to visibleToHitTesting.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:

(TEST.SampledPageTopColor.HitTestCSSPointerEventsNone): Added.

2:26 PM Changeset in webkit [277123] by Devin Rousso
  • 4 edits in trunk

Sampled Page Top Color: don't snapshot if the hit test location is a canvas
https://bugs.webkit.org/show_bug.cgi?id=225418

Reviewed by Tim Horton.

Source/WebCore:

Tests: SampledPageTopColor.HitTestHTMLCanvasWithoutRenderingContext

SampledPageTopColor.HitTestHTMLCanvasWithRenderingContext

  • dom/Document.cpp:

(WebCore::isValidPageSampleLocation):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:

(TEST.SampledPageTopColor.HitTestHTMLCanvasWithoutRenderingContext): Added.
(TEST.SampledPageTopColor.HitTestHTMLCanvasWithRenderingContext): Added.

2:16 PM Changeset in webkit [277122] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore
REGRESSION (r276870): ASSERTION FAILED: !m_impl
!m_shouldEnableAssertions m_impl->wasConstructedOnMainThread() == isMainThread() under WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer

https://bugs.webkit.org/show_bug.cgi?id=225371
<rdar://problem/77531907>

Reviewed by Eric Carlson.

In WebKitLegacy, the weakPtr created by createAVPlayer() is constructed on the WebThread, and
dereferenced on the main thread. However, the reason we use a WeakPtr for this call is a long-
since fixed bug in AVFoundation. We can just remove the WeakPtr and rely on AVFoundation to
not call our block after the observer has been removed in the destructor.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):

2:14 PM Changeset in webkit [277121] by Russell Epstein
  • 2 edits in branches/safari-611.2.7.0-branch/Source/WebKit

Cherry-pick r277114. rdar://problem/77623232

Fix crash when WebsiteDataStore is destroyed with outstanding getNetworkProcessConnection request
https://bugs.webkit.org/show_bug.cgi?id=225478
<rdar://77576148>

Reviewed by Chris Dumez.

In WebsiteDataStore::getNetworkProcessConnection if we don't get a connection the first time, we terminate the network process
and try again. This greatly increases our success rate. However, if we are cancelling the reply because of the destruction
of the WebsiteDataStore, we will end up doing bad things with partially destroyed objects, which ends up crashing.
In order to prevent this, use RunLoop::main.dispatch to retry on the next runloop iteration so that we will never be inside the
stack of WebsiteDataStore::~WebsiteDataStore when retrying. In that case, we will find that weakThis is null and send an empty
reply.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::getNetworkProcessConnection):

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

2:14 PM Changeset in webkit [277120] by Russell Epstein
  • 2 edits in branches/safari-611.2.7.0-branch/Source/WebKit

Cherry-pick r276671. rdar://problem/77620826

HashTableConstIterator's consistency assertion fails while closing m_webIDBServers in NetworkProcess::didClose since r275846
https://bugs.webkit.org/show_bug.cgi?id=225089

Reviewed by Chris Dumez.

The items of m_webIDBServers were removed while iterating
m_webIDBServers.

Move m_webIDBServers to a temporary HashMap before iterating.

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::didClose):

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

2:01 PM Changeset in webkit [277119] by aboya@igalia.com
  • 2 edits in trunk/LayoutTests

[EME][GStreamer] Unreviewed micro-gardening
https://bugs.webkit.org/show_bug.cgi?id=225422

I'm adjusting the expectations to specify that
imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html
doesn't resolve as a failure.

  • platform/glib/TestExpectations:
1:55 PM Changeset in webkit [277118] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Make some things easier to dataLog in wasm
https://bugs.webkit.org/show_bug.cgi?id=225472

Reviewed by Yusuke Suzuki.

  • wasm/WasmMemoryMode.cpp:

(WTF::printInternal):

  • wasm/WasmMemoryMode.h:
  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::dump const):

  • wasm/WasmWorklist.h:
1:54 PM Changeset in webkit [277117] by fpizlo@apple.com
  • 14 edits in trunk/Source

Reduce use of dmb ish on ARM64
https://bugs.webkit.org/show_bug.cgi?id=225465

Reviewed by Keith Miller.
Source/JavaScriptCore:


We use loadLoadFence a lot, often in situations like:

Foo* ptr = loadStuff;
loadLoadFence();
use ptr

On ARM64, we don't need a dmb ish here. This introduces a dependentLoadLoadFence() for these
cases; it's just a compiler fence on ARM64 and Intel.

We also used loadLoadFence in some places where I couldn't think of any good reason for the
fence other than paranoia. I got rid of those.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromCallLinkInfo):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::jitType const):

  • bytecode/ObjectAllocationProfile.h:

(JSC::ObjectAllocationProfileBase::structure):
(JSC::ObjectAllocationProfileWithPrototype::prototype):

  • bytecode/Watchpoint.h:

(JSC::WatchpointSet::state const):
(JSC::InlineWatchpointSet::state const):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):

  • runtime/GetterSetter.h:
  • runtime/InferredValue.h:

(JSC::InferredValue::state const):

  • runtime/Structure.h:

(JSC::Structure::tryRareData):

  • runtime/StructureInlines.h:

(JSC::Structure::propertyReplacementWatchpointSet):

Source/WTF:

  • wtf/Atomics.h:

(WTF::dependentLoadLoadFence):

1:49 PM Changeset in webkit [277116] by eric.carlson@apple.com
  • 13 edits in trunk/Source

[GPUP] Reduce MediaPlayer polling frequency when possible
https://bugs.webkit.org/show_bug.cgi?id=225396
<rdar://problem/77562643>

Reviewed by Jer Noble.

Source/WebCore:

Add a currentTime changed callback to MediaPlayerPrivateInterface so a client
doens't have to poll for time changes.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setCurrentTimeDidChangeCallback):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setCurrentTimeDidChangeCallback):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTimeDidChangeCallback):
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTimeDidChange const):

Source/WebKit:

When the MediaPlayerPrivate supports the new "current time changed" callback, use it
know when currentTime changes instead of polling at a fixed frequency. Current time
changes much more frequently than the other state that needs to be pushed to the
web process periodically so split current time out of the "cached state" struct
and push it separately when it changes, which also allow us to reduce the polling
frequency significantly.

Some of the state we were updating every time the cached state timer fired only
changes at known times, so reduce the number of things updated every time state
is pushed.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::getConfiguration): Set the timeChanged callback.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkStateChanged): Update cached
readyState and networkState since they aren't updated by updateCachedState.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged): Ditto.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDurationChanged): Update cached duration.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCharacteristicChanged): Update hasAudio
and hasVideo.
(WebKit::RemoteMediaPlayerProxy::startUpdateCachedStateMessageTimer): Decrease the
time frequency to 200ms when the player supports the time change callback. Decrease
it to 250ms even when it doesn't because we interpolate time in the WP anyway.
(WebKit::RemoteMediaPlayerProxy::currentTimeChanged): Send the time change.
(WebKit::RemoteMediaPlayerProxy::updateCachedState): Send CurrentTimeChanged if
the player doesn't support the new callback. Don't update properties that change
at predictable times.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::pause): Use m_cachedMediaTime and m_cachedMediaTimeQueryTime
instead of m_cachedState.currentTime and m_cachedState.timestamp.
(WebKit::MediaPlayerPrivateRemote::currentMediaTime const): Ditto.
(WebKit::MediaPlayerPrivateRemote::playbackStateChanged): Ditto.
(WebKit::MediaPlayerPrivateRemote::currentTimeChanged): Update time instance variables.
(WebKit::MediaPlayerPrivateRemote::updateCachedState):
(WebKit::MediaPlayerPrivateRemote::performTaskAtMediaTime): Use m_cachedMediaTime
and m_cachedMediaTimeQueryTime instead of m_cachedState.currentTime and m_cachedState.timestamp.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/RemoteMediaPlayerState.h:

(WebKit::RemoteMediaPlayerState::encode const): Remove currentTime and timestamp.
(WebKit::RemoteMediaPlayerState::decode): Ditto.

1:42 PM Changeset in webkit [277115] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkit-patch] setup-git-clone uses master instead of main
https://bugs.webkit.org/show_bug.cgi?id=225460
<rdar://problem/77616439>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/tool/commands/setupgitclone.py:

(SetupGitClone.execute): Pair the remote branch ref with the Svn remote.

1:40 PM Changeset in webkit [277114] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix crash when WebsiteDataStore is destroyed with outstanding getNetworkProcessConnection request
https://bugs.webkit.org/show_bug.cgi?id=225478
<rdar://77576148>

Reviewed by Chris Dumez.

In WebsiteDataStore::getNetworkProcessConnection if we don't get a connection the first time, we terminate the network process
and try again. This greatly increases our success rate. However, if we are cancelling the reply because of the destruction
of the WebsiteDataStore, we will end up doing bad things with partially destroyed objects, which ends up crashing.
In order to prevent this, use RunLoop::main.dispatch to retry on the next runloop iteration so that we will never be inside the
stack of WebsiteDataStore::~WebsiteDataStore when retrying. In that case, we will find that weakThis is null and send an empty
reply.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getNetworkProcessConnection):

1:26 PM Changeset in webkit [277113] by Chris Dumez
  • 2 edits in trunk/Tools

Add API test for FileSystem::fileExists() on a broken symbolic link
https://bugs.webkit.org/show_bug.cgi?id=225476

Reviewed by Darin Adler.

Add API test for FileSystem::fileExists() on a broken symbolic link since this is a special
case. FileSystem::fileExists() currently tries to follow symbolic links and will thus return
false. The behavior is a little odd but I have verified that this is what our access()-based
implementation was returning also before I ported FileSystem::fileExists() to std::filesystem.

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

1:11 PM Changeset in webkit [277112] by graouts@webkit.org
  • 14 edits
    2 adds in trunk

CSS custom properties on pseudo elements background gradients causes infinite layout and high CPU load
https://bugs.webkit.org/show_bug.cgi?id=194332
<rdar://problem/47873895>

Reviewed by Simon Fraser.

Source/WebCore:

When a background-image uses a CSS custom property the resulting StyleGeneratedImage may not be the same
object as during prior style updates. This caused transitions to be triggered for all style updates for
such background-image values. To fix this, we modify the == operator for StyleGeneratedImage to use
arePointingToEqualData() with the CSSImageGeneratorValue member and added an == operator for the
CSSImageGeneratorValue class to call into the existing equals() methods. These equals() methods
are now overrides of the virtual CSSImageGeneratorValue method.

This change in behavior required a change in RenderElement::updateFillImages() to not only check whether
the images were identical, but to also check whether the renderer was registered as a client on the new
images. To do this, we add a new virtual hasClient() method on StyleImage.

Test: webanimations/css-transition-element-with-gradient-background-image-and-css-custom-property.html

  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::operator== const):

  • css/CSSImageGeneratorValue.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::updateFillImages):

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::imagesIdentical): Deleted.

  • rendering/style/FillLayer.h:
  • rendering/style/StyleCachedImage.cpp:

(WebCore::StyleCachedImage::hasClient const):

  • rendering/style/StyleCachedImage.h:
  • rendering/style/StyleGeneratedImage.cpp:

(WebCore::StyleGeneratedImage::operator== const):
(WebCore::StyleGeneratedImage::hasClient const):

  • rendering/style/StyleGeneratedImage.h:
  • rendering/style/StyleImage.h:
  • rendering/style/StyleMultiImage.cpp:

(WebCore::StyleMultiImage::hasClient const):

  • rendering/style/StyleMultiImage.h:

LayoutTests:

Add a test where an element with a background-image set to a CSS gradient using a custom property as a color
stop changes another property targeted by a transition to check that there is no background-image transition
generated.

  • webanimations/css-transition-element-with-gradient-background-image-and-css-custom-property-expected.txt: Added.
  • webanimations/css-transition-element-with-gradient-background-image-and-css-custom-property.html: Added.
12:42 PM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
12:41 PM Changeset in webkit [277111] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277100 - [WebAudio][GStreamer] socketpair leaks
https://bugs.webkit.org/show_bug.cgi?id=225463

Reviewed by Žan Doberšek.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer): Properly dispose of
the GStreamer pipeline and the resources it has hold on.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcChangeState): The ref returned by gst_buffer_pool_new() is transfer-full,
so we need to adopt it here.

12:41 PM Changeset in webkit [277110] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

It should be possible to --logJIT=true
https://bugs.webkit.org/show_bug.cgi?id=225464

Reviewed by Mark Lam.

This makes it easy to just log when JITing happens. It's like --dumpDisassembly=true but
without the disassembly.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::finalizeCodeWithDisassemblyImpl):

  • assembler/LinkBuffer.h:
  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
12:40 PM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
12:29 PM Changeset in webkit [277109] by Ruben Turcios
  • 8 edits in branches/safari-612.1.12-branch/Source

Versioning.

WebKit-7612.1.12.4

12:24 PM Changeset in webkit [277108] by Russell Epstein
  • 2 edits in branches/safari-611.2.7.0-branch/Source/WebKit

Apply patch. rdar://problem/77619719

12:21 PM Changeset in webkit [277107] by Russell Epstein
  • 8 edits in branches/safari-611.2.7.0-branch/Source

Versioning.

WebKit-7611.2.7.0.3

12:09 PM Changeset in webkit [277106] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

Drop some unnecessary code in LocalStorageDatabase
https://bugs.webkit.org/show_bug.cgi?id=225435

Reviewed by Chris Dumez.

No behavior change.

  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::create):
(WebKit::LocalStorageDatabase::LocalStorageDatabase): Remove two paremeters that are no longer needed after
dropping code.
(WebKit::LocalStorageDatabase::openDatabase):
(WebKit::LocalStorageDatabase::migrateItemTableIfNeeded): SQLiteTransaction() by default sets readOnly to false,
and it will be rolled back for failure in ~SQLiteTransaction.
(WebKit::LocalStorageDatabase::close):
(WebKit::LocalStorageDatabase::tryToOpenDatabase): Deleted. Merged to openDatabase.

  • NetworkProcess/WebStorage/LocalStorageDatabase.h:
  • NetworkProcess/WebStorage/StorageArea.cpp:

(WebKit::StorageArea::ensureDatabase const):

11:58 AM Changeset in webkit [277105] by fpizlo@apple.com
  • 3 edits in trunk/Tools

Make it easy to pass XPC variables to run-benchmark
https://bugs.webkit.org/show_bug.cgi?id=225473

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/run_benchmark.py:

(config_argument_parser):

11:40 AM Changeset in webkit [277104] by pvollan@apple.com
  • 6 edits in trunk/Source

Add sandbox extension flag to specify that path contains no symlinks
https://bugs.webkit.org/show_bug.cgi?id=219428
<rdar://problem/66551986>

Reviewed by Brent Fulgham.

Source/WebKit:

In general, when SandboxExtension::createHandleWithoutResolvingPath is called, it is assumed that there are no symlinks
in the provided path. Add a 'canonical' flag, which can be used by platform APIs to verify that this is the case. This
patch also stops resolving symlinks with [NSString stringByResolvingSymlinksInPath] in favor of realpath, since realpath
correcly replaces /var with /private/var, which [NSString stringByResolvingSymlinksInPath] does not.

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::stringByResolvingSymlinksInPath):
(WebKit::SandboxExtension::createHandleWithoutResolvingPath):

  • Shared/SandboxExtension.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):

Source/WTF:

Declare canonical sandbox flag.

  • wtf/spi/darwin/SandboxSPI.h:
11:34 AM Changeset in webkit [277103] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS bubbles should show current status after pressing 'Retry failed builds' button
https://bugs.webkit.org/show_bug.cgi?id=225411

Reviewed by Jonathan Bedard.

  • CISupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._build_bubble):

11:32 AM Changeset in webkit [277102] by Jonathan Bedard
  • 16 edits in trunk/Tools

[webkitcorepy] Add API to efficiently create a sequence of commits
https://bugs.webkit.org/show_bug.cgi?id=224890
<rdar://problem/76975733>

Rubber-stamped by Aakash Jain.

While it is possible to simple iterate through a range of commits to define them,
every API we use to define commits has much more efficient techniques.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:

(Contributor): Add revision to SVN_AUTHOR_RE and add regex without lines.
(Contributor.from_scm_log): Strip leading whitespace from author.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git._args_from_content):
(Git.commits): Use git log to efficiently compute a range of commits.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn._args_from_content):
(Svn.commits): Use svn log to efficiently compute a range of commits.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git.init): Add git log mock.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:

(Svn.init): Add svn log mock and more explicit svn info mock.
(Svn._log_range):

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

(GitHub._commits_response): Return all parent commits to provided ref.
(GitHub.request):

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:

(Svn.range): More efficiently compute the range.
(Svn.request):

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

(GitHub.request): Allow caller to disable pagination.
(GitHub.commit): Reduce number of requests required to compute order.
(GitHub.commits): Using the commits endpoint, more efficiently
compute a range of commits.

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

(Svn): Generalize HISTORY_RE to match any single-line SVN XML response.
(Svn._cache_revisions): Replace HISTORY_RE with DATA_RE.
(Svn.commits): Use svn/rvr to efficiently compute a range of commits.

  • Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:

(ScmBase._commit_range): Return a pair of commits representing the range
the caller is requesting, and preform some basic sanity checks.
(ScmBase.commits): Declare function implemented by decedents.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit.test_commits):
(TestGit.test_commits_branch):
(TestGitHub.test_commits):
(TestGitHub.test_commits_branch):

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

(TestLocalSvn.test_commits):
(TestLocalSvn.test_commits_branch):
(TestRemoteSvn.test_commits):
(TestRemoteSvn.test_commits_branch):

10:20 AM Changeset in webkit [277101] by Chris Dumez
  • 2 edits in trunk/Tools

REGRESSION (r272414?): [macOS] TestWebKitAPI.GPUProcess.CrashWhilePlayingVideo is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=221742
<rdar://problem/74220428>

Reviewed by Youenn Fablet.

Check that video.currentTime is changing to determine if the video is playing, instead of
relying on [webView _isPlayingAudio]. Also use a test page with a single video element instead
of multiple. I am hoping this will make the test more reliable or at least shade some light on
why this is flaky.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

10:13 AM Changeset in webkit [277100] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[WebAudio][GStreamer] socketpair leaks
https://bugs.webkit.org/show_bug.cgi?id=225463

Reviewed by Žan Doberšek.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer): Properly dispose of
the GStreamer pipeline and the resources it has hold on.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcChangeState): The ref returned by gst_buffer_pool_new() is transfer-full,
so we need to adopt it here.

10:05 AM Changeset in webkit [277099] by dino@apple.com
  • 7 edits in trunk/Source

[WebXR] Add IOSurface to FrameData::LayerData
https://bugs.webkit.org/show_bug.cgi?id=225428
<rdar://problem/77586270>

Reviewed by Tim Horton.

Source/WebCore:

Original patch by Ada Chan.

Cocoa platforms will use IOSurfaces on FrameData::LayerData.
Add this member, allow it to be encoded and decoded, and fix up
some places where we were copying a FrameData unnecessarily, or
where we have to explicitly copy.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::onFrame): Use WTFMove instead of copying.

  • platform/graphics/cocoa/IOSurface.h: Export createFromSurface.
  • platform/xr/PlatformXR.h:

(PlatformXR::Device::FrameData::LayerData::encode const):
(PlatformXR::Device::FrameData::LayerData::decode):
(PlatformXR::Device::FrameData::decode):
(PlatformXR::Device::FrameData::copy const):

  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::frameTimerFired):

Source/WTF:

Add USE(IOSURFACE_FOR_XR_LAYER_DATA) and make it true
for Cocoa platforms.

  • wtf/PlatformUse.h:
9:57 AM Changeset in webkit [277098] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update expectations after WPT re-import in r277073 and r277077.

  • platform/glib/TestExpectations:
9:54 AM Changeset in webkit [277097] by Wenson Hsieh
  • 13 edits
    2 adds in trunk

[iOS] UI process hangs when showing a modal JavaScript dialog while focusing an input field
https://bugs.webkit.org/show_bug.cgi?id=225409
rdar://76792407

Reviewed by Darin Adler, Chris Dumez and Tim Horton.

Source/WebKit:

Consider the scenario where an input field has a focus event handler that shows a modal JavaScript dialog (e.g.
confirm, alert, prompt). We get the following sequence of events in this scenario:

(WEB) The text field is focused, and sends WebPageProxy::ElementDidFocus. A modal dialog is then triggered by

script inside the focus event handler, sending a message like WebPageProxy::RunJavaScriptAlert.

(UI) The UI process receives WebPageProxy::ElementDidFocus, and calls -reloadInputViews while showing the

keyboard. UIKit may then call back into -requestAutocorrectionContextWithCompletionHandler:, which
triggers sync IPC back to the web process. While waiting to receive a response message, we receive and
dispatch WebPageProxy::RunJavaScriptAlert.

At this point, the UI process is still waiting for a HandleAutocorrectionContext response IPC message, but the
web process is blocked on a response to the modal JavaScript dialog; since both processes are blocked on each
other, we're now in deadlock.

To mitigate this, we can preemptively send autocorrection context data right before we're about to synchronously
block in the web process on a modal dialog. In the UI process, we use this autocorrection context object to
immediately stop syncwaiting for a HandleAutocorrectionContext response. See below for more details.

Test: fast/events/ios/show-modal-alert-during-focus.html

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::dispatchMessages):
(IPC::Connection::waitForMessage):

Make a slight adjustment here so that waitForMessage bails if one of the messages we're dispatching underneath
SyncMessageState::dispatchMessages is the message we happen to be waiting for anyways. In this case, it's
necessary in order for the preemptive WebPageProxy::HandleAutocorrectionContext message sent by the web
process to unblock the UI process, which is waiting for a WebPageProxy::HandleAutocorrectionContext response.

  • UIProcess/PageClient.h:

(WebKit::PageClient::runModalJavaScriptDialog):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runModalJavaScriptDialog):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):

Wrap calls to runJavaScript(Alert|Confirm|Prompt) underneath a new page client method that takes a block,
runModalJavaScriptDialog. See -[WKContentView runModalJavaScriptDialog:] below for more details.

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

(WebKit::PageClientImpl::runModalJavaScriptDialog):

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

(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

Avoid blocking on the web process if it's waiting on a modal JavaScript dialog anyways; just use the last
autocorrection context we received from the web process (which we know must've been sent right before showing
the modal dialog anyways).

(-[WKContentView runModalJavaScriptDialog:]):

In the case where we're in the process of presenting the keyboard (or UCB) on iOS after focusing an input field,
avoid immediately allowing the client to show any modal UI until we're done managing keyboard logic in WebKit.
Without this adjustment, we'll end up trying to present the modal JavaScript dialog in the middle of UIKit's
call to -requestAutocorrectionContextWithCompletionHandler:, which then causes UIKit to throw an exception
underneath keyboard code.

(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::prepareToRunModalJavaScriptDialog):

Add logic to preemptively compute and send WebAutocorrectionContext data to the UI process on iOS, in the case
where we're about to show a modal JavaScript dialog and there is an editable focused element. While the modal
dialog is shown, we'll use this information to immediately respond to UIKit's autocorrection context requests,
instead of trying to block on responses from the web process.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestAutocorrectionContext):
(WebKit::WebPage::prepareToRunModalJavaScriptDialog):

LayoutTests:

Add a layout test that exercises the deadlock. In the case where we fail, this test will time out.

  • fast/events/ios/show-modal-alert-during-focus-expected.txt: Added.
  • fast/events/ios/show-modal-alert-during-focus.html: Added.
9:35 AM Changeset in webkit [277096] by Diego Pino Garcia
  • 1 edit
    3 adds in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening. Emit platform baselines after r277071.

Platform baselines are needed because platforms have different values
for screen resolution sizes, which are referred in the test results.

  • platform/gtk/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt: Added.
9:23 AM Changeset in webkit [277095] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove webKitMediaSrcFinalize
https://bugs.webkit.org/show_bug.cgi?id=225458

Reviewed by Philippe Normand.

webKitMediaSrcFinalize was no longer necessary after moving to
WEBKIT_DEFINE_TYPE as requested by the reviewers. This patch cleans
that up.

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webkit_media_src_class_init):
(webKitMediaSrcFinalize): Deleted.

9:22 AM Changeset in webkit [277094] by mark.lam@apple.com
  • 8 edits
    1 add in trunk

Forbid further execution in jsc shell if execution is terminated.
https://bugs.webkit.org/show_bug.cgi?id=225410
rdar://77548608

Reviewed by Michael Saboff.

JSTests:

  • stress/jsc-shell-forbid-execution-after-termination.js: Added.

Source/JavaScriptCore:

  1. Introduce a VM::m_executionForbidden flag.
  2. In the jsc shell, forbid further execution if termination was encountered.
  • jsc.cpp:

(runWithOptions):

  • runtime/VM.cpp:

(JSC::VM::drainMicrotasks):

  • runtime/VM.h:

(JSC::VM::executionForbidden const):
(JSC::VM::setExecutionForbidden):

Source/WebCore:

Re-implement WorkerOrWorkletScriptController::forbidExecution() and
isExecutionForbidden() using the VM's notion of the flag

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::forbidExecution):
(WebCore::WorkerOrWorkletScriptController::isExecutionForbidden const):

  • workers/WorkerOrWorkletScriptController.h:
9:08 AM Changeset in webkit [277093] by Darin Adler
  • 22 edits in trunk

Streamline codec parsing, replacing uses of HashMap with SortedArrayMap
https://bugs.webkit.org/show_bug.cgi?id=225368

Reviewed by Sam Weinig.

Source/WebCore:

  • platform/ContentType.cpp:

(WebCore::ContentType::parameter const): Use early return instead of nesting.
Strip HTML spaces, not all whitespace, and do it only once rather than twice.
Fixed a small bug where we search for the second quotation mark in a way that
could find the same quotation mark twice if there is a space before the first
one. Added FIXME comments about a few obvious problems in the parsing algorithm.
Improved efficiency by using StringView, saving the allocation of one temporary
StringImpl in the case where we have some HTML spaces to strip.
(WebCore::ContentType::containerType const): Simplified the implemementation
by taking advantage of the fact that our notFound value is designed to be used
as an argument to functions like String::left, telling them to return the
entire string. Strip HTML spaces, not all whitespace.

  • platform/graphics/HEVCUtilities.cpp:

(WebCore::parseHEVCCodecParameters): Take a StringView instead of a String
for greater flexibility and efficiency. Don't store codecName, which is
never used after verifying that it is a legal value here. Don't store the
generalTierFlag, which is never used after verifying that it is a legal
value here. Don't store the constraint flags, which are never used after
verifying that they are legal values here.
(WebCore::makeOptionalFromPointer): Added to make code below cleaner.
(WebCore::parseDoViCodecType): Renamed from codecStringForDoViCodecType
since it now returns an enumeration value instead of a string. Also
take a StringView instead of a String for greater flexibility and efficiency.
Also use a SortedArrayMap instead of a MemoryCompactLookupOnlyRobinHoodHashMap.
(WebCore::profileIDForAlphabeticDoViProfile): Take a StringView instead of
a String for greater flexibility and efficiency. Use a SortedArrayMap instead
of a MemoryCompactLookupOnlyRobinHoodHashMap.
(WebCore::isValidProfileIDForCodec): Take a codec enumeration value parameter
instead of a string.
(WebCore::parseDoViCodecParameters): Take a StringView instead of a String
for greater flexibility and efficiency. Store the codec as an enumeration
instead of a String. Don't create a temporary String just so we can call the
profileIDForAlphabeticDoViProfile function.

  • platform/graphics/HEVCUtilities.h: Renamed HEVCParameterSet and

DoViParameterSet to HEVCParameters and DoViParameters. The word "set" is not
helpful in these names. Removed codecName, generalTierFlag, and constraintFlags
from HEVCParameterSet. Changed the parse functions to take StringView instead
of String. Replaced the string codecName in DoViParameterSet with an enumeration
since there are only a few valid values.

  • platform/graphics/cocoa/HEVCUtilitiesCocoa.h: Use Optional return value

instead of a bool and an out argument.

  • platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:

(WebCore::validateHEVCParameters): Updated to return Optional.
(WebCore::codecType): Updated to take an enumeration value and no longer
need to return an optional. Also renamed from codecTypeForDoViCodecString
since the type now makes this clear without a long function name.
(WebCore::parseStringArrayFromDictionaryToUInt16Vector): Renamed from
CFStringArrayToNumberVector, and moved the dictionary lookup in here.
The old name was a little vague; "NumberVector" doesn't say 16-bit unsigned.
Simplified code by using an Objective-C for loop instead of a block and
enumeration. This cut the size of the function down quite a bit.
(WebCore::validateDoViParameters): Updated to return Optional. Also
refactored to use the imrpoved helper functions above.

  • platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:

(WebCore::videoCodecTypeFromRFC4281Type): Take a StringView instead of a String
for greater flexibility and efficiency.
(WebCore::computeMediaCapabilitiesInfo): Factored out this helper function
so we don't have such complicated callback logic. Refactored to use the new
versions of validateHEVCParameters, validateDoViParameters, and
validateVPParameters.
(WebCore::createMediaPlayerDecodingConfigurationCocoa): Moved most of the
code into computeMediaCapabilitiesInfo; this mostly deals with the callback.

  • platform/graphics/cocoa/VP9UtilitiesCocoa.h: Removed extraneous use of extern.

Added const for input-only reference arguments. Changed validateVPParameters to
return Optional instead of a bool with an out argument.

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::isVP9CodecConfigurationRecordSupported): Added const.
(WebCore::isVP8CodecConfigurationRecordSupported): Ditto.
(WebCore::isVPCodecConfigurationRecordSupported): Ditto.
(WebCore::validateVPParameters): Refactored to return Optional.

  • platform/network/HTTPHeaderMap.h: Removed unneeded includes.
  • platform/text/LocaleToScriptMapping.cpp: Moved PackedASCIILowerCodes from

here into the SortedArrayMap.h header.

  • testing/Internals.cpp:

(WebCore::Internals::parseHEVCCodecParameters): Tweaked since HEVCParameterSet
is now only the correct name here in the Internals class.
(WebCore::Internals::parseDoViCodecParameters): Ditto. Also added code to
expose the codec enumeration as a string. This is now a testing-only thing.
(WebCore::Internals::parseVPCodecParameters): Ditto.

  • testing/Internals.h: Tweaked the ParameterSet types since they now don't

exactly match the structures used in the real code.

  • testing/Internals.idl: Removed codecName, generalTierFlag, and

constraintFlags from HEVCParameterSet. Neither codecName nor constraintFlags
was used in any test. And the generalTierFlag test was something we can
do without; the parsed value isn't actually used in any WebKit code.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

Removed unneeded include.

  • Shared/WebsiteData/WebsiteData.h: Ditto.

Source/WTF:

  • wtf/SortedArrayMap.h: Moved PackedASCIILowerCodes here for reuse.

Slightly tweaked ComparableASCIISubsetLiteral to match better.

LayoutTests:

  • media/hevc-codec-parameters-expected.txt: Remove testing of generalTierFlag, which is ignored

by our actual media code after parsing.

  • media/hevc-codec-parameters.html: Ditto.
8:47 AM Changeset in webkit [277092] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix missing exception check in objectConstructorGetOwnPropertyDescriptors().
https://bugs.webkit.org/show_bug.cgi?id=225413
rdar://77551530

Reviewed by Michael Saboff.

Need to handle TerminationException.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyDescriptors):

8:34 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
8:30 AM Changeset in webkit [277091] by ntim@apple.com
  • 26 edits
    43 adds
    2 deletes in trunk/LayoutTests

Re-import css/css-fonts WPT
https://bugs.webkit.org/show_bug.cgi?id=225455

Reviewed by Simon Fraser.

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

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub-expected.txt: Added.
  • web-platform-tests/css/css-fonts/ascent-descent-override-expected.html: Added.
  • web-platform-tests/css/css-fonts/ascent-descent-override.html: Added.
  • web-platform-tests/css/css-fonts/downloadable-font-in-iframe-print-expected.html: Added.
  • web-platform-tests/css/css-fonts/downloadable-font-in-iframe-print.html: Added.
  • web-platform-tests/css/css-fonts/downloadable-font-print-expected.html: Added.
  • web-platform-tests/css/css-fonts/downloadable-font-print.html: Added.
  • web-platform-tests/css/css-fonts/fallback-url-to-local-expected.txt: Added.
  • web-platform-tests/css/css-fonts/fallback-url-to-local.html: Added.
  • web-platform-tests/css/css-fonts/font-display/font-display-expected.html:
  • web-platform-tests/css/css-fonts/font-display/font-display.html:
  • web-platform-tests/css/css-fonts/font-face-range-order.html:
  • web-platform-tests/css/css-fonts/font-feature-resolution-001-expected.html:
  • web-platform-tests/css/css-fonts/font-feature-resolution-001.html:
  • web-platform-tests/css/css-fonts/font-feature-resolution-002-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-feature-resolution-002.html: Added.
  • web-platform-tests/css/css-fonts/font-size-adjust-zero-1-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-size-adjust-zero-1.html: Added.
  • web-platform-tests/css/css-fonts/font-size-adjust-zero-2-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-size-adjust-zero-2.html: Added.
  • web-platform-tests/css/css-fonts/font-size-zero-1-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-size-zero-1-notref.html: Added.
  • web-platform-tests/css/css-fonts/font-size-zero-1-ref-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-size-zero-1-ref.html: Added.
  • web-platform-tests/css/css-fonts/font-size-zero-1.html: Added.
  • web-platform-tests/css/css-fonts/font-size-zero-2-expected.html: Added.
  • web-platform-tests/css/css-fonts/font-size-zero-2.html: Added.
  • web-platform-tests/css/css-fonts/line-gap-override-expected.html: Added.
  • web-platform-tests/css/css-fonts/line-gap-override.html: Added.
  • web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html:
  • web-platform-tests/css/css-fonts/metrics-override-normal-keyword-expected.html: Added.
  • web-platform-tests/css/css-fonts/metrics-override-normal-keyword.html: Added.
  • web-platform-tests/css/css-fonts/parsing/font-variation-settings-computed-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-variation-settings-computed.html:
  • web-platform-tests/css/css-fonts/parsing/font-variation-settings-invalid-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-variation-settings-invalid.html:
  • web-platform-tests/css/css-fonts/parsing/font-variation-settings-valid-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-variation-settings-valid.html:
  • web-platform-tests/css/css-fonts/rem-in-monospace-expected.html: Added.
  • web-platform-tests/css/css-fonts/rem-in-monospace.html: Added.
  • web-platform-tests/css/css-fonts/resources/markA.ttf: Added.
  • web-platform-tests/css/css-fonts/resources/markB.ttf: Added.
  • web-platform-tests/css/css-fonts/resources/w3c-import.log: Added.
  • web-platform-tests/css/css-fonts/size-adjust-01-expected.html: Added.
  • web-platform-tests/css/css-fonts/size-adjust-01.html: Added.
  • web-platform-tests/css/css-fonts/size-adjust-02-expected.html: Added.
  • web-platform-tests/css/css-fonts/size-adjust-02.html: Added.
  • web-platform-tests/css/css-fonts/size-adjust-text-decoration.tentative-expected.html: Added.
  • web-platform-tests/css/css-fonts/size-adjust-text-decoration.tentative.html: Added.
  • web-platform-tests/css/css-fonts/size-adjust.tentative-expected.html: Added.
  • web-platform-tests/css/css-fonts/size-adjust.tentative.html: Added.
  • web-platform-tests/css/css-fonts/support/fonts/Lato-Medium-Liga.ttf: Added.
  • web-platform-tests/css/css-fonts/support/fonts/w3c-import.log:
  • web-platform-tests/css/css-fonts/variations/at-font-face-font-matching.html:
  • web-platform-tests/css/css-fonts/variations/font-parse-numeric-stretch-style-weight.html:
  • web-platform-tests/css/css-fonts/variations/font-variation-settings-parsing-expected.txt: Removed.
  • web-platform-tests/css/css-fonts/variations/font-variation-settings-parsing.html: Removed.
  • web-platform-tests/css/css-fonts/variations/variable-opsz-size-adjust-expected.html: Added.
  • web-platform-tests/css/css-fonts/variations/variable-opsz-size-adjust.html: Added.
  • web-platform-tests/css/css-fonts/variations/w3c-import.log:
  • web-platform-tests/css/css-fonts/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative-expected.txt:
8:30 AM Changeset in webkit [277090] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277088 - [GStreamer] Fallback to texture mapper video orientation handling when glvideoflip is not available
https://bugs.webkit.org/show_bug.cgi?id=225454

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

r275412 introduced a new runtime dependency on gst-plugins-good's glvideoflip element, which
is not desirable for the 2.32 branch. This patch let's the player handle rotation tags if
the glvideoflip element wasn't found at runtime. Ideally we should probably not rely on
glvideoflip in the first place as it might induce a performance impact, to be handled in a
follow-up patch.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):
(webKitGLVideoSinkGetProperty):
(webkit_gl_video_sink_class_init):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkGL):

8:24 AM Changeset in webkit [277089] by Sam Sneddon
  • 5 edits in trunk/Tools

mark all SCM tests using SVN as slow, a couple as xfail; enable SCM
https://bugs.webkit.org/show_bug.cgi?id=225156

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(SVNTest): Mark all tests with @slow
(GitSVNTest): Mark all tests with @slow

  • Scripts/webkitpy/conftest.py:

(pytest_configure): Define the "slow" marker
(pytest_addoption): Add --run-slow to opt-in
(pytest_collection_modifyitems): Implement --run-slow

  • Scripts/webkitpy/pytest.ini: remove "not scm_unitest"
  • Scripts/webkitpy/test/markers.py:

(slow): add our own wrapper around the pytest mark function

8:06 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
8:04 AM Changeset in webkit [277088] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Fallback to texture mapper video orientation handling when glvideoflip is not available
https://bugs.webkit.org/show_bug.cgi?id=225454

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

r275412 introduced a new runtime dependency on gst-plugins-good's glvideoflip element, which
is not desirable for the 2.32 branch. This patch let's the player handle rotation tags if
the glvideoflip element wasn't found at runtime. Ideally we should probably not rely on
glvideoflip in the first place as it might induce a performance impact, to be handled in a
follow-up patch.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):
(webKitGLVideoSinkGetProperty):
(webkit_gl_video_sink_class_init):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkGL):

7:52 AM Changeset in webkit [277087] by Chris Dumez
  • 6 edits in trunk

imported/w3c/web-platform-tests/eventsource/format-utf-8.htm is failing on some platforms
https://bugs.webkit.org/show_bug.cgi?id=225416
<rdar://77529801>

Reviewed by Youenn Fablet.

Source/WebCore:

The HTML specification [1] states that EventSource streams should always be decoded as UTF-8.
However, we had logic in WebKit that was checking the charset of the response and aborting
when the charset is not UTF-8. It looks like we were lucky until now that we would fail to
determine the charset of the response and proceed anyway. However, due to underlying system
changes, in the context of this test, we are now properly detecting the response charset as
"windows-1252" and (incorrectly) aborting. To address the issue, I no longer abort the
connection if the charset is not "utf-8". We do still log a console warning but we proceed
decoding the stream as UTF-8 no matter the response's charset, as per the specification.

[1] https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation

No new tests, covered by existing test that is failing on some platforms.

  • page/EventSource.cpp:

(WebCore::EventSource::responseIsValid const):

LayoutTests:

Dump JS Console messages to stderr for this test as it will only get logged on some
platforms.

7:51 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
6:59 AM Changeset in webkit [277086] by ntim@apple.com
  • 66 edits
    7 copies
    29 adds in trunk/LayoutTests

Re-import css/css-flexbox WPT
https://bugs.webkit.org/show_bug.cgi?id=225450

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-flexbox/align-items-baseline-overflow-non-visible-expected.html:
  • web-platform-tests/css/css-flexbox/align-items-baseline-overflow-non-visible.html:
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-001.html: Added.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-002.html: Added.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-003.html: Added.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-004.html: Added.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-005-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-005.html: Added.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-006-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-006.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-001.html:
  • web-platform-tests/css/css-flexbox/flex-item-compressible-002.html:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001b-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-006-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-007-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-008-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-block-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-table-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-003-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-004-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-horiz-001-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-vert-001-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001a-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001a.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001b-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001b.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001a-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001a.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001b-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001b.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-001-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-001.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-002-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-002.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-001-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-001.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-002-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-002.html:
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a.html:
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003b-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003b.html:
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a.html:
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004b-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004b.html:
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-002-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-002.html:
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-003-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-003.html:
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-002-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-002-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-004-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-004.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-overflow-padding-001-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-padding-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-padding-002-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-padding-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-table-fixup-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox_align-items-center-3-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html.
  • web-platform-tests/css/css-flexbox/flexbox_align-items-center-3.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-left-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-left-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-left-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-left-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-right-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-right-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-right-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-right-002.html: Added.
  • web-platform-tests/css/css-flexbox/negative-overflow-expected.txt:
  • web-platform-tests/css/css-flexbox/negative-overflow.html:
  • web-platform-tests/css/css-flexbox/overflow-auto-005-expected.html:
  • web-platform-tests/css/css-flexbox/overflow-auto-005.html:
  • web-platform-tests/css/css-flexbox/overflow-top-left-expected.html:
  • web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html:
  • web-platform-tests/css/css-flexbox/padding-overflow-crash.html:
  • web-platform-tests/css/css-flexbox/select-element-zero-height-001-expected.html:
  • web-platform-tests/css/css-flexbox/select-element-zero-height-001.html:
  • web-platform-tests/css/css-flexbox/table-as-item-min-content-height-1.tentative-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-min-content-height-1.tentative.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-min-content-height-2.tentative-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-min-content-height-2.tentative.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-min-height-1-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-min-height-1.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-3.html:
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-4-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-4.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-5-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-5.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

6:27 AM Changeset in webkit [277085] by ntim@apple.com
  • 5 edits
    14 adds in trunk/LayoutTests

Re-import css/css-display WPT
https://bugs.webkit.org/show_bug.cgi?id=225448

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-display/display-contents-dynamic-fieldset-legend-001-expected.html: Added.
  • web-platform-tests/css/css-display/display-contents-dynamic-fieldset-legend-001.html: Added.
  • web-platform-tests/css/css-display/display-contents-fieldset-002-expected.html: Added.
  • web-platform-tests/css/css-display/display-contents-fieldset-002.html: Added.
  • web-platform-tests/css/css-display/display-contents-slot-attach-whitespace-expected.html: Added.
  • web-platform-tests/css/css-display/display-contents-slot-attach-whitespace.html: Added.
  • web-platform-tests/css/css-display/display-first-line-001.html:
  • web-platform-tests/css/css-display/display-math-on-non-mathml-elements-expected.txt: Added.
  • web-platform-tests/css/css-display/display-math-on-non-mathml-elements.html: Added.
  • web-platform-tests/css/css-display/display-math-on-pseudo-elements-001-expected.txt: Added.
  • web-platform-tests/css/css-display/display-math-on-pseudo-elements-001.html: Added.
  • web-platform-tests/css/css-display/display-math-on-pseudo-elements-002-expected.html: Added.
  • web-platform-tests/css/css-display/display-math-on-pseudo-elements-002.html: Added.
  • web-platform-tests/css/css-display/textarea-display-expected.txt: Added.
  • web-platform-tests/css/css-display/textarea-display.html: Added.
  • web-platform-tests/css/css-display/w3c-import.log:

LayoutTests:

5:58 AM Changeset in webkit [277084] by ntim@apple.com
  • 8 edits
    7 adds in trunk/LayoutTests

Re-import css/css-contain WPT
https://bugs.webkit.org/show_bug.cgi?id=225445

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/content-visibility/animation-display-lock-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/animation-display-lock.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-035.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-044-expected.txt:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-044.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-continuations-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/element-reassigned-to-skipped-slot-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/element-reassigned-to-skipped-slot.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/element-reassigned-to-slot-in-skipped-subtree-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/element-reassigned-to-slot-in-skipped-subtree.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/w3c-import.log:

LayoutTests:

5:11 AM Changeset in webkit [277083] by Martin Robinson
  • 15 edits in trunk/Source

[css-scroll-snap] Compute proximity information while snapping
https://bugs.webkit.org/show_bug.cgi?id=224326

Reviewed by Simon Fraser.

Source/WebCore:

Have ScrollSnapOffsetsInfo carry snap area rectangles instead of scroll offset
ranges. This allows proximity information to be handled during snap point selection.
The geometry will be used in a future patch to follow spec behavior for snap
areas that overflow the snapport and when handling masonry layouts.

No new tests. This is just a refactor. It should not change behavior at all.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::setStateScrollingNodeSnapOffsetsAsFloat): Pass in the new template argument.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::isNearEnoughToOffsetForProximity): Added.
(WebCore::closestSnapOffsetWithInfoAndAxis): Modified to take in the ScrollSnapOffsetsInfo data
structure and axis along with the viewport size. This function now explicitly determines if a
snap point is too far away to affect scrolling due to scroll-snap proximity.
(WebCore::updateSnapOffsetsForScrollableArea): Add snap areas and snap area indices to SnapOffset.
(WebCore::convertOffsetInfo): Instead of converting scroll offset ranges, convert the snap
area rectangles.
(WebCore::FloatScrollSnapOffsetsInfo::convertUnits const): Ditto.
(WebCore::LayoutScrollSnapOffsetsInfo::convertUnits const): Ditto.
(WebCore::LayoutScrollSnapOffsetsInfo::closestSnapOffset const): Updated to reflect new
internal function.
(WebCore::FloatScrollSnapOffsetsInfo::closestSnapOffset const): Ditto.

  • page/scrolling/ScrollSnapOffsetsInfo.h:

(WebCore::ScrollSnapOffsetsInfo::isEqual const): Update to reflect new mem ers.
(WebCore::ScrollSnapOffsetsInfo::offsetsForAxis const): Changed template parameter name.

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateFromStateNode): ::convertUnits
takes a new template parameter.

  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:

(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::handleWheelEvent): Pass in viewport size.

  • platform/ScrollController.cpp:

(WebCore::ScrollController::setNearestScrollSnapIndexForAxisAndOffset): Ditto.
(WebCore::ScrollController::adjustScrollDestination): Ditto.

  • platform/ScrollSnapAnimatorState.cpp:

(WebCore::ScrollSnapAnimatorState::setupAnimationForState): Ditto.
(WebCore::ScrollSnapAnimatorState::targetOffsetForStartOffset const): Ditto.
(WebCore::operator<<): No longer print snap offset ranges.

  • platform/ScrollSnapAnimatorState.h: Remove references to snap offset ranges.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<SnapOffset<float>>::encode): Add the snap area index to the encoded arguments.
(ArgumentCoder<SnapOffset<float>>::decode): Add the snap area index to the decoded arguments.
(ArgumentCoder<FloatScrollSnapOffsetsInfo>::encode): No longer encode ranges, but encode snap areas.
(ArgumentCoder<FloatScrollSnapOffsetsInfo>::decode): Ditto for decode.

  • Shared/WebCoreArgumentCoders.cpp: Remove code dealing with scroll offset ranges.
  • Shared/WebCoreArgumentCoders.h: Ditto.
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling const): Pass
in viewport size to closestSnapOffset which is necessary for calculating proximity.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Ditto.

5:07 AM Changeset in webkit [277082] by aboya@igalia.com
  • 2 edits in trunk/LayoutTests

[EME][GStreamer] Unreviewed micro-gardening
https://bugs.webkit.org/show_bug.cgi?id=225422

This test was fixed by the WebKitMediaSrc rework in r277031,
rebaselined it.

  • platform/glib/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt:
4:25 AM Changeset in webkit [277081] by ntim@apple.com
  • 4 edits
    2 moves
    50 adds
    4 deletes in trunk/LayoutTests

Re-import css/css-will-change WPTs
https://bugs.webkit.org/show_bug.cgi?id=225444

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-will-change/w3c-import.log:
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-contain-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-contain-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-filter-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-filter-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-height-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-height-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-offset-path-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-offset-path-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-perspective-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-perspective-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-position-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-position-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-transform-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-transform-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-transform-style-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-transform-style-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-translate-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-fixpos-cb-translate-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-001-expected.html: Removed.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-001.html: Removed.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-002-expected.html: Removed.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-003-expected.html: Removed.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-backdrop-filter-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-backdrop-filter-1.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-will-change/will-change-stacking-context-002.html.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-clip-path-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-clip-path-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-filter-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-filter-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-height-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-height-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-isolation-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-isolation-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-mask-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-mask-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-mix-blend-mode-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-mix-blend-mode-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-offset-path-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-offset-path-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-opacity-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-opacity-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-opacity-2-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-opacity-2.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-will-change/will-change-stacking-context-003.html.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-perspective-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-perspective-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-position-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-position-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-transform-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-transform-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-transform-style-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-transform-style-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-translate-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-translate-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-z-index-1-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-stacking-context-z-index-1.html: Added.
  • web-platform-tests/css/css-will-change/will-change-transform-huge-offset-scrolled-expected.html: Added.
  • web-platform-tests/css/css-will-change/will-change-transform-huge-offset-scrolled.html: Added.

LayoutTests:

4:11 AM Changeset in webkit [277080] by Philippe Normand
  • 9 edits in trunk

REGRESSION(r271341): media/media-fullscreen-inline.html times out on GTK
https://bugs.webkit.org/show_bug.cgi?id=220540

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

When the GStreamer player client is an <audio> tag it won't render any video, but setting no
explicit video sink on playbin will not prevent video rendering per-se. In that situation
playbin will use autovideosink which will end-up creating a standalone window through
glimagesink or whatever has the highest rank. For now with playbin2 we can use fakevideosink
for such situation. For the playbin3 case we might be able to entirely deactivate video
rendering through stream selection.

Internals::isChangingPresentationMode was enabled for ports not implementing
VIDEO_PRESENTATION_MODE yet, because this test makes use of it.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):

  • testing/Internals.cpp:

(WebCore::Internals::isChangingPresentationMode const):

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

LayoutTests:

Call webkitExitFullScreen() asynchronously to give time to the WebCore FullscreenManager to
notify the video element that it entered full-screen, and thus allowing the exitFullScreen()
call to go through.

  • media/media-fullscreen.js:

(fullscreenchange):
(async beginfullscreen):

  • platform/glib/TestExpectations:
  • platform/glib/media/media-fullscreen-inline-expected.txt:
3:55 AM Changeset in webkit [277079] by ntim@apple.com
  • 5 edits in trunk/LayoutTests/imported/w3c

Re-import css/css-counter-styles WPT

Unreviewed. Trivial WPT re-import.

  • web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax.html:
  • web-platform-tests/css/css-counter-styles/counter-style-pad-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-pad-syntax.html:
3:35 AM Changeset in webkit [277078] by rniwa@webkit.org
  • 16 edits in trunk/Source/WebCore

Replace raw pointers in SVGElementRareData and SVGDocumentExtensions with WeakHashMap and WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=225440

Reviewed by Antti Koivisto.

Replaced the remaining use of raw pointers to Element in SVGElementRareData and SVGDocumentExtensions
with WeakHashSet and WeakPtr.

This patch also replaces SVGDocumentExtensions::m_elementDependencies with a new WeakHashMap
in SVGElementRareData for clarify & simplicity with a new terminology. When a SVG element A refers
to another element B via href, A's SVGElementRareData::m_referenceTarget is set to B, and A is added
to B's SVGElementRareData::m_referencingElements.

No new tests since there should be no observable behavior differences.

  • rendering/svg/RenderSVGResource.cpp:

(WebCore::removeFromCacheAndInvalidateDependencies):

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::registerResource):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::applyResultsToTarget):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isElementWithPendingResources const):
(WebCore::SVGDocumentExtensions::isPendingResource const): Directly check the existence of
the id in m_pendingResources instead of calling isIdOfPendingResource.
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removePendingResource): Moved to the header to be inlined.
(WebCore::SVGDocumentExtensions::removePendingResourceForRemoval): Deleted. The code is
inlined in removeElementFromPendingResources instead.
(WebCore::SVGDocumentExtensions::markPendingResourcesForRemoval):
(WebCore::SVGDocumentExtensions::takeElementFromPendingResourcesForRemovalMap): Renamed
from removeElementFromPendingResourcesForRemovalMap.
(WebCore::SVGDocumentExtensions::addElementToRebuild): Added.
(WebCore::SVGDocumentExtensions::removeElementToRebuild): Added.
(WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget): Deleted.
(WebCore::SVGDocumentExtensions::addElementReferencingTarget): Deleted.
(WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement): Deleted.
(WebCore::SVGDocumentExtensions::clearTargetDependencies):
(WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget):
(WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget): Deleted.

  • svg/SVGDocumentExtensions.h:

(WebCore::SVGDocumentExtensions::removePendingResource):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::removedFromAncestor): Moved the most of logic in SVGDocumentExtensions's
clearTargetDependencies and removeAllElementReferencesForTarget here.
(WebCore::SVGElement::instances const):
(WebCore::SVGElement::referencingElements const): Added.
(WebCore::SVGElement::addReferencingElement): Added.
(WebCore::SVGElement::removeReferencingElement): Added.
(WebCore::SVGElement::removeElementReference): Added.
(WebCore::SVGElement::setCorrespondingElement):
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
(WebCore::SVGElement::createAnimator):
(WebCore::SVGElement::buildPendingResourcesIfNeeded):
(WebCore::SVGElement::updateRelativeLengthsInformation):
(WebCore::SVGElement::invalidateInstances):
(WebCore:: const): Deleted.

  • svg/SVGElement.h:

(WebCore::SVGElement::hasRelativeLengths const):
(WebCore::SVGElement::updateRelativeLengthsInformation):

  • svg/SVGElementRareData.h:

(WebCore::SVGElementRareData::addInstance):
(WebCore::SVGElementRareData::removeInstance):
(WebCore::SVGElementRareData::instances const):
(WebCore::SVGElementRareData::addReferencingElement):
(WebCore::SVGElementRareData::removeReferencingElement):
(WebCore::SVGElementRareData::referencingElements const):
(WebCore::SVGElementRareData::takeReferencingElements):
(WebCore::SVGElementRareData::referenceTarget const):
(WebCore::SVGElementRareData::setReferenceTarget):
(WebCore::SVGElementRareData::correspondingElement):
(WebCore::SVGElementRareData::setCorrespondingElement):
(): Deleted.
(WebCore::SVGElementRareData:: const): Deleted.

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::clearResourceReferences):
(WebCore::SVGFEImageElement::buildPendingResource):

  • svg/SVGMPathElement.cpp:

(WebCore::SVGMPathElement::buildPendingResource):
(WebCore::SVGMPathElement::clearResourceReferences):

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::invalidateMPathDependencies):

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::clearResourceReferences):
(WebCore::SVGTextPathElement::buildPendingResource):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::invalidateDependentShadowTrees):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::clearResourceReferences):
(WebCore::SVGSMILElement::buildPendingResource):

  • svg/properties/SVGAttributeAnimator.cpp:

(WebCore::SVGAttributeAnimator::applyAnimatedStylePropertyChange):
(WebCore::SVGAttributeAnimator::removeAnimatedStyleProperty):
(WebCore::SVGAttributeAnimator::applyAnimatedPropertyChange):

2:44 AM Changeset in webkit [277077] by ntim@apple.com
  • 9 edits
    7 adds
    4 deletes in trunk/LayoutTests

Re-import css/css-color & css/css-color-adjust WPT
https://bugs.webkit.org/show_bug.cgi?id=225438

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-color-adjust/META.yml: Added.
  • web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background-mismatch-opaque-cross-origin.sub-expected.html: Added.
  • web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background-mismatch-opaque-cross-origin.sub.html: Added.
  • web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-system-colors-expected.txt: Added.
  • web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-system-colors.html: Added.
  • web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/w3c-import.log:
  • web-platform-tests/css/css-color-adjust/w3c-import.log:
  • web-platform-tests/css/css-color/color-function-parsing.html:
  • web-platform-tests/css/css-color/color-function-parsing-expected.txt:
  • web-platform-tests/css/css-color/color-mix-basic-001.tentative-expected.txt: Added.
  • web-platform-tests/css/css-color/color-mix-basic-001.tentative.html: Added.
  • web-platform-tests/css/css-color/predefined-014-expected.html: Removed.
  • web-platform-tests/css/css-color/predefined-014.html: Removed.
  • web-platform-tests/css/css-color/predefined-015-expected.html: Removed.
  • web-platform-tests/css/css-color/predefined-015.html: Removed.
  • web-platform-tests/css/css-color/w3c-import.log:

LayoutTests:

2:17 AM Changeset in webkit [277076] by ntim@apple.com
  • 6 edits
    14 adds in trunk/LayoutTests/imported/w3c

Re-import css/css-cascade WPT
https://bugs.webkit.org/show_bug.cgi?id=225437

Reviewed by Youenn Fablet.

  • web-platform-tests/css/css-cascade/all-prop-001-expected.html:
  • web-platform-tests/css/css-cascade/all-prop-001.html:
  • web-platform-tests/css/css-cascade/all-prop-revert-visited-expected.html: Added.
  • web-platform-tests/css/css-cascade/all-prop-revert-visited.html: Added.
  • web-platform-tests/css/css-cascade/all-prop-unset-visited-expected.html: Added.
  • web-platform-tests/css/css-cascade/all-prop-unset-visited.html: Added.
  • web-platform-tests/css/css-cascade/import-conditional-001-expected.xht: Added.
  • web-platform-tests/css/css-cascade/import-conditional-001.html: Added.
  • web-platform-tests/css/css-cascade/important-prop.html:
  • web-platform-tests/css/css-cascade/initial-background-color-expected.html: Added.
  • web-platform-tests/css/css-cascade/initial-background-color.html: Added.
  • web-platform-tests/css/css-cascade/support/test-green.css: Added.

(.test):

  • web-platform-tests/css/css-cascade/support/test-red.css: Added.

(.test):

  • web-platform-tests/css/css-cascade/support/w3c-import.log: Added.
  • web-platform-tests/css/css-cascade/unset-val-001.html:
  • web-platform-tests/css/css-cascade/unset-value-storage.html: Added.
  • web-platform-tests/css/css-cascade/unset-value-storage-expected.txt: Added.
  • web-platform-tests/css/css-cascade/w3c-import.log:
1:52 AM Changeset in webkit [277075] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Split context state change item appending out of DisplayList::Recorder::canAppendItemOfType.
https://bugs.webkit.org/show_bug.cgi?id=225424

Reviewed by Simon Fraser.

It's non-obvious from the name that canAppendItemOfType can also end
up appending an item. So let's split out the context state change
item out into a separate function.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::canAppendItemOfType):
(WebCore::DisplayList::Recorder::appendStateChangeItemIfNecessary):
Added.

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::append):
(WebCore::DisplayList::Recorder::itemNeedsState): Added this as a
constexpr helper function, to ensure we make a decision about needing
to call appendStateChangeItemIfNecessary at compile time.

1:40 AM Changeset in webkit [277074] by ntim@apple.com
  • 1 edit
    39 adds in trunk/LayoutTests/imported/w3c

Re-sync css/css-break WPTs
https://bugs.webkit.org/show_bug.cgi?id=225436

Reviewed by Youenn Fablet.

  • web-platform-tests/css/css-break/animation/w3c-import.log: Added.
  • web-platform-tests/css/css-break/parsing/box-decoration-break-computed-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/box-decoration-break-computed.html: Added.
  • web-platform-tests/css/css-break/parsing/box-decoration-break-invalid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/box-decoration-break-invalid.html: Added.
  • web-platform-tests/css/css-break/parsing/box-decoration-break-valid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/box-decoration-break-valid.html: Added.
  • web-platform-tests/css/css-break/parsing/break-after-computed-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-after-computed.html: Added.
  • web-platform-tests/css/css-break/parsing/break-after-invalid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-after-invalid.html: Added.
  • web-platform-tests/css/css-break/parsing/break-after-valid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-after-valid.html: Added.
  • web-platform-tests/css/css-break/parsing/break-before-computed-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-before-computed.html: Added.
  • web-platform-tests/css/css-break/parsing/break-before-invalid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-before-invalid.html: Added.
  • web-platform-tests/css/css-break/parsing/break-before-valid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-before-valid.html: Added.
  • web-platform-tests/css/css-break/parsing/break-inside-computed-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-inside-computed.html: Added.
  • web-platform-tests/css/css-break/parsing/break-inside-invalid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-inside-invalid.html: Added.
  • web-platform-tests/css/css-break/parsing/break-inside-valid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/break-inside-valid.html: Added.
  • web-platform-tests/css/css-break/parsing/orphans-computed-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/orphans-computed.html: Added.
  • web-platform-tests/css/css-break/parsing/orphans-invalid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/orphans-invalid.html: Added.
  • web-platform-tests/css/css-break/parsing/orphans-valid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/orphans-valid.html: Added.
  • web-platform-tests/css/css-break/parsing/w3c-import.log: Added.
  • web-platform-tests/css/css-break/parsing/widows-computed-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/widows-computed.html: Added.
  • web-platform-tests/css/css-break/parsing/widows-invalid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/widows-invalid.html: Added.
  • web-platform-tests/css/css-break/parsing/widows-valid-expected.txt: Added.
  • web-platform-tests/css/css-break/parsing/widows-valid.html: Added.
1:38 AM Changeset in webkit [277073] by ntim@apple.com
  • 33 edits
    223 adds
    3 deletes in trunk/LayoutTests

Re-import css/css-backgrounds WPTs
https://bugs.webkit.org/show_bug.cgi?id=225408

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-element-not-visible-at-current-viewport-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-element-not-visible-at-current-viewport.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fallback-additive-keyframe-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fallback-additive-keyframe.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fallback-missing-0-percent-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fallback-missing-0-percent.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fallback-missing-100-percent-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fallback-missing-100-percent.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fallback-replace-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fallback-replace.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fragmented-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-fragmented.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-in-body-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-in-body.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-non-zero-size-element-change-to-zero-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-non-zero-size-element-change-to-zero.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-single-keyframe-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-single-keyframe.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-three-keyframes1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-three-keyframes1.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-three-keyframes2-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-three-keyframes2.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-three-keyframes3-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-three-keyframes3.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-images-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-images.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-table1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-table1.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-table2-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-table2.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-table3-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-table3.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-table4-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-table4.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-zero-playbackRate-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-zero-playbackRate.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-zero-size-element-change-to-non-zero-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-zero-size-element-change-to-non-zero.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-zero-size-element-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-zero-size-element.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-transition-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-transition.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-transparent-animation-in-body-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-transparent-animation-in-body.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/background-color-animation-with-zero-alpha-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/background-color-animation-with-zero-alpha.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/background-color-transition-obscured-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/background-color-transition-obscured.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/background-color-transition-with-delay-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/background-color-transition-with-delay.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/background-color-transition-with-initially-transparent-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/background-color-transition-with-initially-transparent.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/invalidation/w3c-import.log: Added.
  • web-platform-tests/css/css-backgrounds/animations/two-background-color-animation-diff-length1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/two-background-color-animation-diff-length1.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/two-background-color-animation-diff-length2-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/two-background-color-animation-diff-length2.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/two-background-color-animation-diff-length3-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/two-background-color-animation-diff-length3.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/w3c-import.log:
  • web-platform-tests/css/css-backgrounds/background-attachment-350.html:
  • web-platform-tests/css/css-backgrounds/background-attachment-353-expected.xht: Added.
  • web-platform-tests/css/css-backgrounds/background-attachment-353.html: Added.
  • web-platform-tests/css/css-backgrounds/background-attachment-fixed-inside-transform-1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-attachment-fixed-inside-transform-1.html: Added.
  • web-platform-tests/css/css-backgrounds/background-attachment-local/attachment-local-clipping-color-5.html:
  • web-platform-tests/css/css-backgrounds/background-attachment-local/attachment-local-clipping-image-5.html:
  • web-platform-tests/css/css-backgrounds/background-clip-content-box-002-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-clip-content-box-002.html: Added.
  • web-platform-tests/css/css-backgrounds/background-margin-iframe-root.html:
  • web-platform-tests/css/css-backgrounds/background-margin-root.html:
  • web-platform-tests/css/css-backgrounds/background-margin-transformed-root.html:
  • web-platform-tests/css/css-backgrounds/background-margin-will-change-root.html:
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1a-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1a.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1b-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1b.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1c-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1c.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1d-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1d.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1e-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-1e.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-2-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-2.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-3-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-3.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-4-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-round-4.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-10-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-10.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-1a-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-1a.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-1b-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-1b.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-1c-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-1c.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-2-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-2.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-3-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-3.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-4-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-4.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-5-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-5.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-6-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-6.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-7-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-7.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-8-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-8.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-9-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-repeat-space-9.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-006.html:
  • web-platform-tests/css/css-backgrounds/background-size-009.html:
  • web-platform-tests/css/css-backgrounds/background-size-014.html:
  • web-platform-tests/css/css-backgrounds/background-size-017.html:
  • web-platform-tests/css/css-backgrounds/background-size-041-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-041.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-042-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-042.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-043-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-043.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-044-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-044.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-percentage-root-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-size-percentage-root.html: Added.
  • web-platform-tests/css/css-backgrounds/bg-color-with-gradient-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/bg-color-with-gradient.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-displayed-with-transparent-border-color-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-displayed-with-transparent-border-color.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-image-type-003.htm:
  • web-platform-tests/css/css-backgrounds/border-image-repeat-1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-1.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-round-1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-round-1.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-round-2-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-round-2.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-1.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-2-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-2.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-3-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-3.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-4-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-4-ref-1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-4-ref-1.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-4.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-5-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-5-ref-1-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-5-ref-1.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-5.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-6-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-6.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-7-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-7.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-shorthand-002-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-shorthand-002.htm:
  • web-platform-tests/css/css-backgrounds/border-image-shorthand-003-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-shorthand-003.htm:
  • web-platform-tests/css/css-backgrounds/border-image-slice-005-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-slice-005.htm:
  • web-platform-tests/css/css-backgrounds/border-image-slice-007-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-image-slice-007.htm:
  • web-platform-tests/css/css-backgrounds/border-radius-012-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-radius-012.html: Added.
  • web-platform-tests/css/css-backgrounds/border-radius-clip-001-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-radius-clip-001.htm: Removed.
  • web-platform-tests/css/css-backgrounds/border-radius-clip-001.html: Added.
  • web-platform-tests/css/css-backgrounds/border-radius-clip-002-expected.htm: Added.
  • web-platform-tests/css/css-backgrounds/border-radius-clip-002.htm:
  • web-platform-tests/css/css-backgrounds/border-radius-clipping-002-expected.xht: Added.
  • web-platform-tests/css/css-backgrounds/border-radius-clipping-002.html: Added.
  • web-platform-tests/css/css-backgrounds/border-radius-clipping-expected.html: Removed.
  • web-platform-tests/css/css-backgrounds/border-radius-clipping.html: Removed.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-a-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-a.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-b-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-b.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-c-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-c.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-d-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-d.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-e-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/border-width-small-values-001-e.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-029-expected.xht: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-029.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-039-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-039.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-040-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-040.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-041-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-041.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-042-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-042.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-currentcolor-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-currentcolor.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-overlapping-001-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-overlapping-001.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-overlapping-002-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-overlapping-002.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-overlapping-003-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-overlapping-003.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-overlapping-004-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-overlapping-004.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-radius-000-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-radius-000.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-radius-001-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-radius-001.html: Added.
  • web-platform-tests/css/css-backgrounds/css3-border-image-repeat-repeat-expected.html:
  • web-platform-tests/css/css-backgrounds/css3-border-image-repeat-repeat.html:
  • web-platform-tests/css/css-backgrounds/css3-border-image-repeat-stretch-expected.html:
  • web-platform-tests/css/css-backgrounds/css3-border-image-repeat-stretch.html:
  • web-platform-tests/css/css-backgrounds/hidpi/simple-bg-color-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/hidpi/simple-bg-color.html: Added.
  • web-platform-tests/css/css-backgrounds/hidpi/w3c-import.log: Added.
  • web-platform-tests/css/css-backgrounds/inline-background-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/inline-background-rtl-001.html: Added.
  • web-platform-tests/css/css-backgrounds/linear-gradient-calc-crash.html: Added.
  • web-platform-tests/css/css-backgrounds/linear-gradient-currentcolor-first-line-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/linear-gradient-currentcolor-first-line.html: Added.
  • web-platform-tests/css/css-backgrounds/parsing/background-image-invalid-expected.txt:
  • web-platform-tests/css/css-backgrounds/parsing/background-image-invalid.html:
  • web-platform-tests/css/css-backgrounds/parsing/background-image-valid-expected.txt:
  • web-platform-tests/css/css-backgrounds/parsing/background-image-valid.html:
  • web-platform-tests/css/css-backgrounds/simple-bg-color-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/simple-bg-color.html: Added.
  • web-platform-tests/css/css-backgrounds/support/100x100-gr-rr.png: Added.
  • web-platform-tests/css/css-backgrounds/support/100x100-green-with-red-corners.png: Added.
  • web-platform-tests/css/css-backgrounds/support/9grid40-30-20-10-green.png: Added.
  • web-platform-tests/css/css-backgrounds/support/9grid40-30-20-10-red-old.png: Added.
  • web-platform-tests/css/css-backgrounds/support/9grid40-30-20-10-red.png: Added.
  • web-platform-tests/css/css-backgrounds/support/aqua-yellow-32x32.png: Added.
  • web-platform-tests/css/css-backgrounds/support/aqua-yellow-37x37.png: Added.
  • web-platform-tests/css/css-backgrounds/support/blue-diamond-27x27.png: Added.
  • web-platform-tests/css/css-backgrounds/support/new-red-diamond-27x27.png: Added.
  • web-platform-tests/css/css-backgrounds/support/orange-intrinsic-none.svg: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-bl.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-bo.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-br.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-ct.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-le.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-ri.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-tl.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-to.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule-tr.png: Added.
  • web-platform-tests/css/css-backgrounds/support/reticule.png: Added.
  • web-platform-tests/css/css-backgrounds/support/w3c-import.log:
  • web-platform-tests/css/css-backgrounds/support/y.png: Added.
  • web-platform-tests/css/css-backgrounds/w3c-import.log:

LayoutTests:

12:45 AM Changeset in webkit [277072] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Make DisplayList::dump print out the display list contents
https://bugs.webkit.org/show_bug.cgi?id=225431

Reviewed by Simon Fraser.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::description const):
(WebCore::DisplayList::operator<<): This needs to move so that
argument-dependent lookup for the operator<< call in description()
works.

  • platform/graphics/displaylists/DisplayList.h:
12:36 AM Changeset in webkit [277071] by ntim@apple.com
  • 13 edits
    4 adds in trunk

[mediaqueries] Remove "on-demand" value for any-hover/hover & "forced" value for prefers-contrast
https://bugs.webkit.org/show_bug.cgi?id=225400

Reviewed by Antti Koivisto.

These were both removed from the spec and currently never evaluate to true. They also won't eval to true after this change.
Only change is serialization, since the values will become invalid.

Also:

  • Re-synced css/mediaqueries WPTs
  • Adjusted any-hover/hover parsing tests accordingly.

LayoutTests/imported/w3c:

  • web-platform-tests/css/mediaqueries/mq-dynamic-empty-children-expected.txt: Added.
  • web-platform-tests/css/mediaqueries/mq-dynamic-empty-children.html: Added.
  • web-platform-tests/css/mediaqueries/prefers-contrast-expected.txt: Added.
  • web-platform-tests/css/mediaqueries/prefers-contrast.html: Added.
  • web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
  • web-platform-tests/css/mediaqueries/test_media_queries.html:
  • web-platform-tests/css/mediaqueries/w3c-import.log:

Source/WebCore:

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

(WebCore::prefersContrastEvaluate):

  • css/MediaQueryExpression.cpp:

(WebCore::isValidValueForIdentMediaFeature):

LayoutTests:

  • fast/media/mq-any-hover-cssom.html:
  • fast/media/mq-any-hover-cssom-expected.txt:
  • fast/media/mq-hover-cssom.html:
  • fast/media/mq-hover-cssom-expected.txt:
12:14 AM Changeset in webkit [277070] by ntim@apple.com
  • 3 edits in trunk/LayoutTests/imported/w3c

Re-sync css/css-box/parsing/padding-valid.html WPT

Unreviewed. Trivial WPT sync on one single test.

  • web-platform-tests/css/css-box/parsing/padding-valid-expected.txt:
  • web-platform-tests/css/css-box/parsing/padding-valid.html:

May 5, 2021:

11:43 PM Changeset in webkit [277069] by Megan Gardner
  • 11 edits in trunk/Source/WebCore

AppHighlight scrolls should be smooth
https://bugs.webkit.org/show_bug.cgi?id=225395

Reviewed by Simon Fraser.

Leverage smooth scrolling experimental feature to allow AppHighlight scrolls
to be smooth.

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll):

  • editing/Editor.cpp:

(WebCore::TemporarySelectionChange::setSelection):

  • editing/Editor.h:
  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::revealSelection):

  • editing/FrameSelection.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::scrollTo const):

  • page/ScrollBehavior.cpp:

(WebCore::useSmoothScrolling):

  • platform/ScrollTypes.h:
8:37 PM Changeset in webkit [277068] by mark.lam@apple.com
  • 15 edits in trunk/Source

Introduce VM::hasPendingTerminationException() to make code a little more terse.
https://bugs.webkit.org/show_bug.cgi?id=225412

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This is purely a refactoring patch. There is no behavior change.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):

  • jit/JITOperations.cpp:
  • runtime/ExceptionScope.h:

(JSC::ExceptionScope::assertNoExceptionExceptTermination):
(JSC::ExceptionScope::releaseAssertNoExceptionExceptTermination):

  • runtime/JSObject.h:

(JSC::JSObject::get const):

  • runtime/LazyPropertyInlines.h:

(JSC::ElementType>::callFunc):

  • runtime/VM.cpp:

(JSC::VM::throwException):

  • runtime/VM.h:

(JSC::VM::hasPendingTerminationException const):

  • runtime/VMTraps.cpp:

(JSC::VMTraps::deferTerminationSlow):

Source/WebCore:

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::handleResponseOnStreamingAction):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DOMPromise::whenPromiseIsSettled):

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::reject):

  • bindings/js/ReadableStream.cpp:

(WebCore::invokeReadableStreamFunction):
(WebCore::ReadableStream::lock):
(WebCore::checkReadableStream):

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::invokeReadableStreamDefaultControllerFunction):
(WebCore::ReadableStreamDefaultController::error):
(WebCore::ReadableStreamDefaultController::enqueue):

7:34 PM Changeset in webkit [277067] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[macOS] Use system colors for ActiveButtonText
https://bugs.webkit.org/show_bug.cgi?id=225375
<rdar://problem/75863443>

Reviewed by Tim Horton.

Currently, the ActiveButtonText color keyword returns a hardcoded value
on macOS. This behavior is problematic since AppKit can make changes to
the button style, leaving us with illegible text when a button is
pressed.

To fix, return a system color for ActiveButtonText, so that our pressed
buttons are consistent with the rest of the system.

  • rendering/RenderThemeMac.mm:

(WebCore::activeButtonTextColor):

AppKit determines the pressed (active) text color using the cell's
interiorBackgroundStyle. There is not a single system color exposed for
the pressed text color, so it must be determined dynamically.

Unfortunately, this requires us to create an NSButtonCell to determine
the appropriate color. However, this logic is relatively inexpensive,
since we cache exposed system colors.

(WebCore::RenderThemeMac::systemColor const):

Remove the hardcoded value.

7:01 PM Changeset in webkit [277066] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 arm64 ] http/tests/inspector/network/resource-sizes-network.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=225430

Unrviewed test gardening.

Updating expectations to flaky (Pass Failure) while test is reviewed.

  • platform/mac-wk2/TestExpectations:
6:05 PM Changeset in webkit [277065] by Russell Epstein
  • 1 copy in tags/Safari-611.3.1

Tag Safari-611.3.1.

5:35 PM Changeset in webkit [277064] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.3.1

5:30 PM Changeset in webkit [277063] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[build.webkit.org] Add new post-commit builder WPE-Linux-64-bit-Release-Non-Unified-Build
https://bugs.webkit.org/show_bug.cgi?id=225385

Reviewed by Aakash Jain.

This new post-commit builder will build WPE with Unified builds disabled.

By default, builders build WebKit using Unified sources to speed up
time compilation. Unfortunately, unified source compilation may hide
compilation errors sometimes. A common hidden error are missing headers
in some source files. This hidden compilation errors might be discovered
later when a group of source files are stashed together in a different
manner.

Having a Non-Unified source post-commit builder will help to detect
regressions in unified source compilation for a certain WebKit port,
in this case WPE Release. Usually when these regressions happen they
tend to happen too in other ports such as WebKitGTK, Win or PlayStation.

  • CISupport/build-webkit-org/config.json:
5:27 PM Changeset in webkit [277062] by Russell Epstein
  • 1 copy in tags/Safari-612.1.12.3

Tag Safari-612.1.12.3.

5:22 PM Changeset in webkit [277061] by Jonathan Bedard
  • 6 edits
    1 delete in trunk/Tools

[run-api-tests] Use webkitcorepy's TaskPool
https://bugs.webkit.org/show_bug.cgi?id=225221
<rdar://problem/77352465>

Reviewed by Dewei Zhu.

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

(TaskPool.enter): Ensure that mock has been imported before spawning child processes.

  • Scripts/run-api-tests: Moved from webkitpy/api_tests/run_api_tests.py.
  • Scripts/webkitpy/api_tests/run_api_tests.py: Moved to run-api-tests.
  • Scripts/webkitpy/api_tests/runner.py:

(_Worker): Representation of Worker process.
(_Worker.setup): Pass port object to worker process.
(_Worker.teardown): Un-set port object on worker process.
(_Worker.init): Construct object to hold a Worker process's variables.
(_Worker._run_single_test): Log test results, post results to parent.
(_Worker.run): Run shard with and post results to parent process.
(setup_shard): Run setup in Worker process.
(run_shard): Run test shard in Worker process.
(report_result): Receive result in the parent process.
((teardown_shard): Tear down Worker process.
(Runner.init):
(Runner.command_for_port):
(Runner._shard_tests): Split tests into shards to be efficiently run.
(Runner.run): Use TaskPool to run tests in sub processes.
(Runner.callback): Save results in parent process.
(Runner.result_map_by_status):
(Runner.handle): Deleted.
(_Worker._run_shard_with_binary): Deleted.
(_Worker.post): Deleted.
(_Worker.handle): Deleted.

5:19 PM Changeset in webkit [277060] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Gardened latest test failures.

imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html
is failing after r277031.

fast/canvas/canvas-composite-text-alpha.html is an image failure after r277024.

  • platform/glib/TestExpectations:
5:19 PM Changeset in webkit [277059] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Merge Cherry-pick r276618. rdar://problem/77326484

5:19 PM Changeset in webkit [277058] by Russell Epstein
  • 3 edits in branches/safari-611-branch/Source/WebKit

Merge Cherry-pick r276852. rdar://problem/77468295

5:18 PM Changeset in webkit [277057] by Russell Epstein
  • 4 edits in branches/safari-611-branch/Source

Merge Cherry-pick r276742. rdar://problem/77326513

5:18 PM Changeset in webkit [277056] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-611-branch

Merge Cherry-pick r276688. rdar://problem//77326513

5:09 PM Changeset in webkit [277055] by Kate Cheney
  • 5 edits in trunk/Source/WebKit

Remove network website data when a user clears an individual domain
https://bugs.webkit.org/show_bug.cgi?id=225350
<rdar://problem/76029480>

Reviewed by Brent Fulgham.

Convert parameters to Optional values now that we use the function
for individual domains.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
We should check all possible website data entries and delete
network domain data if any of them contain a domain.

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::removeNetworkWebsiteData):

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

(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):

4:53 PM Changeset in webkit [277054] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/active-processing.https.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=225421

Unreviewed test gardening.

Marking test as flaky (Pass Failure), while under review.

  • platform/mac/TestExpectations:
4:38 PM Changeset in webkit [277053] by ntim@apple.com
  • 14 edits
    8 adds in trunk/LayoutTests

Re-sync css/css-animations WPTs
https://bugs.webkit.org/show_bug.cgi?id=225404

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-animations/nested-scale-animations-expected.html: Added.
  • web-platform-tests/css/css-animations/nested-scale-animations.html: Added.
  • web-platform-tests/css/css-animations/svg-transform-animation-expected.html: Added.
  • web-platform-tests/css/css-animations/svg-transform-animation.html: Added.
  • web-platform-tests/css/css-animations/transform-animation-under-large-scale-expected.html: Added.
  • web-platform-tests/css/css-animations/transform-animation-under-large-scale.html: Added.
  • web-platform-tests/css/css-animations/translation-animation-subpixel-offset-expected.html: Added.
  • web-platform-tests/css/css-animations/translation-animation-subpixel-offset.html: Added.
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
  • web-platform-tests/css/css-animations/event-dispatch.tentative-expected.txt:
  • web-platform-tests/css/css-animations/event-dispatch.tentative.html:
  • web-platform-tests/css/css-animations/parsing/animation-invalid-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-invalid.html:
  • web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-shorthand.html:
  • web-platform-tests/css/css-animations/support/testcommon.js:

(armTimeoutWhenReady):

  • web-platform-tests/css/css-animations/w3c-import.log:

LayoutTests:

4:23 PM Changeset in webkit [277052] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Reduce sandbox telemetry
https://bugs.webkit.org/show_bug.cgi?id=225417
<rdar://77489628>

Reviewed by Darin Adler.

Remove sandbox telemetry which is no longer needed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
4:19 PM Changeset in webkit [277051] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[MacOS wk2] http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=223531

Unreviewed test gardening.

Removed debug from a previous test expectation for this bug.

  • platform/mac-wk2/TestExpectations:
4:06 PM Changeset in webkit [277050] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Remove unused DisplayList::Recorder::ContextState::wasUsedForDrawing
https://bugs.webkit.org/show_bug.cgi?id=225381

Reviewed by Simon Fraser.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::canAppendItemOfType):
(WebCore::DisplayList::Recorder::restore):

  • platform/graphics/displaylists/DisplayListRecorder.h:
4:01 PM Changeset in webkit [277049] by Ruben Turcios
  • 5 edits in branches/safari-612.1.13-branch

Cherry-pick r277044. rdar://problem/77579966

Sampled Page Top Color: don't snapshot if the hit test location is an image or has an animation
https://bugs.webkit.org/show_bug.cgi?id=225338

Reviewed by Tim Horton.

Source/WebCore:

Tests: SampledPageTopColor.HitTestHTMLImage

SampledPageTopColor.HitTestCSSBackgroundImage
SampledPageTopColor.HitTestCSSAnimation

  • dom/Document.h:
  • dom/Document.cpp: (WebCore::isValidPageSampleLocation): Added. (WebCore::samplePageColor): Added. (WebCore::Document::determineSampledPageTopColor): (WebCore::Document::isHitTestLocationThirdPartyFrame): Deleted. Refactor isHitTestLocationThirdPartyFrame (and the pixelColor lambda) into static functions that are right above Document::determineSampledPageTopColor for clarity and to allow for more flexibility. In order to check if the hit test node is an image (including having a CSS background-image) or has a CSS animation (or CSS transition), it's necessary to continue to hit test beyond one node as the image and/or node with the CSS animation may be an ancestor (or unrelated position: absolute node) to the HitTestResult::innerNode. `

<div style="background-image: url(...)">

<button>Lorum ipsum ... </button>

</div>

`

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: (TEST.SampledPageTopColor.HitTestHTMLImage): (TEST.SampledPageTopColor.HitTestCSSBackgroundImage): (TEST.SampledPageTopColor.HitTestCSSAnimation):

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

4:01 PM Changeset in webkit [277048] by Ruben Turcios
  • 2 edits in branches/safari-612.1.13-branch/Source/WebKit

Cherry-pick r277026. rdar://problem/77579962

REGRESSION (r276633): ASSERTION FAILED: !forbidMallocUseScopeCount
disableMallocRestrictionScopeCount

https://bugs.webkit.org/show_bug.cgi?id=225374
<rdar://problem/77533237>

Reviewed by Chris Dumez.

Disable memory allocation checks in speech recognition code path.
No change of behavior.

  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp: (WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::storageChanged):

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

3:46 PM Changeset in webkit [277047] by Cameron McCormack
  • 6 edits in trunk/Source/WebCore

Rename DisplayList::Recorder::appendDrawGraphsItemWithCachedFont.
https://bugs.webkit.org/show_bug.cgi?id=225382

Reviewed by Simon Fraser.

It appends a DrawGlyphsItem, not a DrawGraphsItem.

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawGlyphs):
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderWin.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::appendDrawGlyphsItemWithCachedFont):

  • platform/graphics/displaylists/DisplayListRecorder.h:
3:30 PM Changeset in webkit [277046] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Fix copy paste error in Recorder::canAppendItemOfType.
https://bugs.webkit.org/show_bug.cgi?id=225380

Reviewed by Simon Fraser.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::canAppendItemOfType):

3:22 PM Changeset in webkit [277045] by Devin Rousso
  • 15 edits in trunk/Source

Sampled Page Top Color: tie into existing TCADA/RLTT systems so that the value is kept in sync with painting
https://bugs.webkit.org/show_bug.cgi?id=225405

Reviewed by Tim Horton.

Instead of sending an IPC to the UIProcess whenever the logic to determine the sampled page
top color finishes, wait to dispatch the IPC until we're about to render (just like theme
color and page extended background color). On macOS, this means the IPC is dispatched inside
TiledCoreAnimationDrawingArea::updateRendering. On iOS, the Color is included as part of
the RemoteLayerTreeTransaction.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::determineSampledPageTopColor):

  • page/ChromeClient.h:

(WebCore::ChromeClient::sampledPageTopColorChanged const): Renamed from didSamplePageTopColor.

Source/WebKit:

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

(WebKit::WebChromeClient::sampledPageTopColorChanged const): Renamed from didSamplePageTopColor.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::sampledPageTopColorChanged): Added.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::flushPendingSampledPageTopColorChange): Added.
(WebKit::WebPage::didSamplePageTopColor): Deleted.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updateRendering):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:

(WebKit::RemoteLayerTreeTransaction::sampledPageTopColor const): Added.
(WebKit::RemoteLayerTreeTransaction::setSampledPageTopColor): Added.

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::encode const):
(WebKit::RemoteLayerTreeTransaction::decode):

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

(WebKit::WebPageProxy::sampledPageTopColorChanged): Renamed from didSamplePageTopColor.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didCommitLayerTree):

2:53 PM Changeset in webkit [277044] by Devin Rousso
  • 5 edits in trunk

Sampled Page Top Color: don't snapshot if the hit test location is an image or has an animation
https://bugs.webkit.org/show_bug.cgi?id=225338

Reviewed by Tim Horton.

Source/WebCore:

Tests: SampledPageTopColor.HitTestHTMLImage

SampledPageTopColor.HitTestCSSBackgroundImage
SampledPageTopColor.HitTestCSSAnimation

  • dom/Document.h:
  • dom/Document.cpp:

(WebCore::isValidPageSampleLocation): Added.
(WebCore::samplePageColor): Added.
(WebCore::Document::determineSampledPageTopColor):
(WebCore::Document::isHitTestLocationThirdPartyFrame): Deleted.
Refactor isHitTestLocationThirdPartyFrame (and the pixelColor lambda) into static
functions that are right above Document::determineSampledPageTopColor for clarity and to
allow for more flexibility. In order to check if the hit test node is an image (including
having a CSS background-image) or has a CSS animation (or CSS transition), it's necessary
to continue to hit test beyond one node as the image and/or node with the CSS animation may
be an ancestor (or unrelated position: absolute node) to the HitTestResult::innerNode.
`

<div style="background-image: url(...)">

<button>Lorum ipsum ... </button>

</div>

`

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:

(TEST.SampledPageTopColor.HitTestHTMLImage):
(TEST.SampledPageTopColor.HitTestCSSBackgroundImage):
(TEST.SampledPageTopColor.HitTestCSSAnimation):

2:52 PM Changeset in webkit [277043] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[build.webkit.org] Add a build step to set appropriate permissions on uploaded test results
https://bugs.webkit.org/show_bug.cgi?id=225415

Reviewed by Dewei Zhu.

  • CISupport/build-webkit-org/factories.py:

(TestFactory.init): Added the build-step.

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

(ExtractTestResults.resultDirectoryURL):
(SetPermissions): Build step to set permissions on uploaded test result directory.

2:33 PM Changeset in webkit [277042] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[BigSur WK1] imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v* is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=221300

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:05 PM Changeset in webkit [277041] by weinig@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/canvas/CanvasRenderingContext2DSettings-colorSpace-enabled.html on windows
until the preference has been hooked up.

  • platform/win/TestExpectations:
1:44 PM Changeset in webkit [277040] by Ruben Turcios
  • 10 edits in branches/safari-612.1.13-branch

Cherry-pick r277030. rdar://problem/77573075

Sampled Page Top Color: take additional snapshots further down the page to see if the sampled top color is more than just a tiny strip
https://bugs.webkit.org/show_bug.cgi?id=225323

Reviewed by Beth Dakin.

Source/WebCore:

Add a SampledPageTopColorMinHeight setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using the SampledPageTopColorMaxDifference. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.

Tests: SampledPageTopColor.VerticalGradientBelowMaxDifference

SampledPageTopColor.VerticalGradientAboveMaxDifference

  • dom/Document.cpp: (WebCore::Document::determineSampledPageTopColor):

Source/WebKit:

Add a SampledPageTopColorMinHeight setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using the SampledPageTopColorMaxDifference. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _setSampledPageTopColorMinHeight:]): Added. (-[WKWebViewConfiguration _sampledPageTopColorMinHeight]): Added.
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setupPageConfiguration:]): Provide SPI to configure the SampledPageTopColorMinHeight preference when creating the WKWebView.

Source/WTF:

Add a SampledPageTopColorMinHeight setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using the SampledPageTopColorMaxDifference. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: (createWebViewWithSampledPageTopColorMaxDifference): (createHTMLGradientWithColorStops): (TEST.SampledPageTopColor.ZeroMaxDifference): (TEST.SampledPageTopColor.NegativeMaxDifference): (TEST.SampledPageTopColor.SolidColor): (TEST.SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference): (TEST.SampledPageTopColor.VerticalGradientBelowMaxDifference): Added. (TEST.SampledPageTopColor.VerticalGradientAboveMaxDifference): Added. (TEST.SampledPageTopColor.DISABLED_DisplayP3): (TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor):

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

1:41 PM Changeset in webkit [277039] by ntim@apple.com
  • 5 edits in trunk

Invalid media query keyword values should not be parsable
https://bugs.webkit.org/show_bug.cgi?id=225282

Reviewed by Dean Jackson.

Updated WPT expectations.

LayoutTests/imported/w3c:

  • web-platform-tests/css/mediaqueries/prefers-color-scheme-expected.txt:
  • web-platform-tests/css/mediaqueries/prefers-reduced-motion-expected.txt:

Source/WebCore:

  • css/MediaQueryExpression.cpp:

(WebCore::isValidValueForIdentMediaFeature):
(WebCore::featureWithValidIdent):

1:34 PM Changeset in webkit [277038] by achristensen@apple.com
  • 5 edits in trunk/Source

Add WebKitAdditions stubs for new NetworkLoadMetrics
https://bugs.webkit.org/show_bug.cgi?id=225406
<rdar://77563372>

Reviewed by Jer Noble.

Source/WebCore:

I also removed some dead code and added static asserts that do what the dead code was intended to do.

  • platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetrics::isolatedCopy const):
(WebCore::NetworkLoadMetrics::operator== const):
(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):
(WTF::Persistence::Coder<Optional<WebCore::NetworkLoadPriority>>::encode): Deleted.
(WTF::Persistence::Coder<Optional<WebCore::NetworkLoadPriority>>::decode): Deleted.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

1:34 PM Changeset in webkit [277037] by Robert Jenner
  • 3 edits in trunk/LayoutTests

[ macOS/iOS Debug ] http/wpt/crypto/unwrap-rsa-key-crash.any.html (layout-test) is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=225315

Unreviewed test gardening.

Removing prior expectations.

  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
1:19 PM Changeset in webkit [277036] by yurys@chromium.org
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

[LibWebRTC][WPE][GTK] do not use system installed vpx headers when building webrtc
https://bugs.webkit.org/show_bug.cgi?id=225401

Reviewed by Philippe Normand.

Use vpx headers from Source/ThirdParty/libwebrtc instead of those from the host system.

  • CMakeLists.txt: expose libvpx headers to webrtc
12:37 PM Changeset in webkit [277035] by sbarati@apple.com
  • 3 edits in trunk/JSTests

Update tests to use collectExtraSamplingProfilerData instead of collectSamplingProfilerDataForJSCShell
https://bugs.webkit.org/show_bug.cgi?id=225398

Reviewed by Mark Lam.

I forgot to update the tests to use the new option name.

  • stress/sampling-profiler-code-origin.js:
  • stress/sampling-profiler-richards.js:
12:08 PM Changeset in webkit [277034] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Separated layers need to be configured
https://bugs.webkit.org/show_bug.cgi?id=225378

Reviewed by Tim Horton.

Configure a layer as it becomes separated. The actual code will
come from WebKitAdditions.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(configureSeparatedLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):

11:47 AM Changeset in webkit [277033] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit

Add and adopt RemoteLayerBackingStore::Type (instead of "accelerates drawing" bit)
https://bugs.webkit.org/show_bug.cgi?id=225384

Reviewed by Anders Carlsson.

No new tests, no behavior change, just refactoring.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:

(WebKit::RemoteLayerBackingStore::type const):
(WebKit::RemoteLayerBackingStore::acceleratesDrawing const): Deleted.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):
(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::pixelFormat const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
(WebKit::RemoteLayerBackingStore::setBufferVolatility):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::nameForBackingStoreType):
(WebKit::operator<<):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::updateBackingStore):
In preparation for adding another backing store type, refactor RemoteLayerBackingStore
to have a type enum instead of an "accelerates drawing" bit.

11:43 AM Changeset in webkit [277032] by Brent Fulgham
  • 9 edits in trunk/Source/WebKit

[Cocoa] Remove access to the unused 'nvram' system command
https://bugs.webkit.org/show_bug.cgi?id=225370
<rdar://problem/66583129>

Reviewed by Per Arne Vollan.

Add a 'deny' rule for nvram, since we don't use it and have no reason to access it.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
11:34 AM Changeset in webkit [277031] by aboya@igalia.com
  • 22 edits
    5 adds
    2 deletes in trunk

[MSE][GStreamer] WebKitMediaSrc rework v2
https://bugs.webkit.org/show_bug.cgi?id=225192

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch (re)introduces a new source element for the MSE playback
pipeline. This is an iteration on the previous work on r249205 that
had to be reverted in r251365 because of flaky playbin3 bugs.

This new version avoids these pitfalls by avoiding flushes in
situations where they are avoidable and known to expose bugs.

This re-land shares many of the advantages that motivated the first
patch: seeks massively oversimplified and greater control by no longer
relying on appsrc. It can handle flushes of individual streams
natively.

Work has also gone into decoupling the state of the frame queue from
the state of WebKitMediaSrc so that the backend can survive
transitions from PAUSED to READY and back which
MediaPlayerPrivateGStreamer creates when playback ends. This latter
effort is not complete, and instead this version adds a special case
to inhibit downwards and back upwards transitions, avoiding any
issues.

It is expected that at this point this new backend is at least as
stable as the previous one. No LayoutTest has got worsened
expectations from adding this backend and some have improved.

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

(webKitGLVideoSinkFinalize):
(webKitGLVideoSinkSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstMiniObject>):
(WTF::derefGPtr<GstMiniObject>):

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::doSeek):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::handleStreamCollectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPosition):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:

(WebCore::TrackPrivateBaseGStreamer::setInitialCaps):
(WebCore::TrackPrivateBaseGStreamer::initialCaps):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromStreamingThread):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

(WebCore::AppendPipeline::demuxerSrcPadCaps):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::play):
(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::propagateReadyStateToPlayer):
(WebCore::MediaPlayerPrivateGStreamerMSE::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
(WebCore::MediaPlayerPrivateGStreamerMSE::startSource):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

(WebCore::MediaPlayerPrivateGStreamerMSE::hasAllTracks const):
(WebCore::MediaPlayerPrivateGStreamerMSE::webKitMediaSrc):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
(WebCore::MediaSourcePrivateGStreamer::markEndOfStream):
(WebCore::MediaSourcePrivateGStreamer::unmarkEndOfStream):
(WebCore::MediaSourcePrivateGStreamer::waitForSeekCompleted):
(WebCore::MediaSourcePrivateGStreamer::seekCompleted):
(WebCore::MediaSourcePrivateGStreamer::startPlaybackIfHasAllTracks):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/MediaSourceTrackGStreamer.cpp: Added.

(WebCore::MediaSourceTrackGStreamer::MediaSourceTrackGStreamer):
(WebCore::MediaSourceTrackGStreamer::~MediaSourceTrackGStreamer):
(WebCore::MediaSourceTrackGStreamer::create):
(WebCore::MediaSourceTrackGStreamer::isReadyForMoreSamples):
(WebCore::MediaSourceTrackGStreamer::notifyWhenReadyForMoreSamples):
(WebCore::MediaSourceTrackGStreamer::enqueueObject):
(WebCore::MediaSourceTrackGStreamer::clearQueue):
(WebCore::MediaSourceTrackGStreamer::remove):

  • platform/graphics/gstreamer/mse/MediaSourceTrackGStreamer.h: Added.
  • platform/graphics/gstreamer/mse/PlaybackPipeline.h: Removed.
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::flush):
(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::allSamplesInTrackEnqueued):
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/TrackQueue.cpp: Added.

(WebCore::TrackQueue::TrackQueue):
(WebCore::TrackQueue::enqueueObject):
(WebCore::TrackQueue::clear):
(WebCore::TrackQueue::flush):
(WebCore::TrackQueue::notifyWhenLowLevel):
(WebCore::TrackQueue::pop):
(WebCore::TrackQueue::notifyWhenNotEmpty):
(WebCore::TrackQueue::resetNotEmptyHandler):
(WebCore::TrackQueue::checkLowLevel):
(WebCore::TrackQueue::durationEnqueued const):

  • platform/graphics/gstreamer/mse/TrackQueue.h: Added.

(WebCore::TrackQueue::isFull const):
(WebCore::TrackQueue::isEmpty const):
(WebCore::TrackQueue::hasNotEmptyHandler const):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(WebKitMediaSrcPrivate::streamByName):
(WebKitMediaSrcPrivate::isStarted):
(WTF::adoptGRef):
(WTF::refGPtr<WebKitMediaSrcPad>):
(WTF::derefGPtr<WebKitMediaSrcPad>):
(webkit_media_src_pad_class_init):
(Stream::Stream):
(Stream::StreamingMembers::StreamingMembers):
(findPipeline):
(gstStreamType):
(streamTypeToString):
(webkit_media_src_class_init):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcEmitStreams):
(webKitMediaSrcTearDownStream):
(webKitMediaSrcActivateMode):
(webKitMediaSrcPadLinked):
(webKitMediaSrcLoop):
(webKitMediaSrcStreamFlush):
(webKitMediaSrcFlush):
(webKitMediaSrcSeek):
(countStreamsOfType):
(webKitMediaSrcGetProperty):
(webKitMediaSrcChangeState):
(webKitMediaSrcSendEvent):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h: Removed.

Tools:

WebKitMediaSrc is a GObject class and needs to follow some GObject
conventions that conflict with WebKit's. Make the checker aware of
this.

  • Scripts/webkitpy/style/checker.py:

LayoutTests:

Update expectations.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-append-buffer-expected.txt: Added.
11:17 AM Changeset in webkit [277030] by Devin Rousso
  • 10 edits in trunk

Sampled Page Top Color: take additional snapshots further down the page to see if the sampled top color is more than just a tiny strip
https://bugs.webkit.org/show_bug.cgi?id=225323

Reviewed by Beth Dakin.

Source/WebCore:

Add a SampledPageTopColorMinHeight setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using the SampledPageTopColorMaxDifference. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.

Tests: SampledPageTopColor.VerticalGradientBelowMaxDifference

SampledPageTopColor.VerticalGradientAboveMaxDifference

  • dom/Document.cpp:

(WebCore::Document::determineSampledPageTopColor):

Source/WebKit:

Add a SampledPageTopColorMinHeight setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using the SampledPageTopColorMaxDifference. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setSampledPageTopColorMinHeight:]): Added.
(-[WKWebViewConfiguration _sampledPageTopColorMinHeight]): Added.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):
Provide SPI to configure the SampledPageTopColorMinHeight preference when creating the WKWebView.

Source/WTF:

Add a SampledPageTopColorMinHeight setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using the SampledPageTopColorMaxDifference. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:

(createWebViewWithSampledPageTopColorMaxDifference):
(createHTMLGradientWithColorStops):
(TEST.SampledPageTopColor.ZeroMaxDifference):
(TEST.SampledPageTopColor.NegativeMaxDifference):
(TEST.SampledPageTopColor.SolidColor):
(TEST.SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference):
(TEST.SampledPageTopColor.VerticalGradientBelowMaxDifference): Added.
(TEST.SampledPageTopColor.VerticalGradientAboveMaxDifference): Added.
(TEST.SampledPageTopColor.DISABLED_DisplayP3):
(TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor):

11:12 AM Changeset in webkit [277029] by Chris Gambrell
  • 2 edits
    2 adds in trunk/LayoutTests

[LayoutTests] http/tests/css/object-fit-delayed-img-svg.html yields errors due to missing scripts
https://bugs.webkit.org/show_bug.cgi?id=225246
<rdar://problem/77397227>

Reviewed by Jonathan Bedard.

  • http/tests/css/object-fit-delayed-img-svg.html:
  • http/tests/css/resources/circle.svg: Added.
  • http/tests/css/resources/delayedCircle.py: Added.
10:58 AM Changeset in webkit [277028] by youenn@apple.com
  • 3 edits
    2 adds in trunk

No need to error a fetch body stream if its request or response is stopped
https://bugs.webkit.org/show_bug.cgi?id=225347

Reviewed by Geoffrey Garen.

Source/WebCore:

Test: http/wpt/fetch/fetch-response-body-stop-in-worker.html

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::stop):
Nullify the source before we error it.

LayoutTests:

  • http/wpt/fetch/fetch-response-body-stop-in-worker-expected.txt: Added.
  • http/wpt/fetch/fetch-response-body-stop-in-worker.html: Added.
10:28 AM Changeset in webkit [277027] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Enable incremental sweeping of GCAwareJITStubRoutines.
https://bugs.webkit.org/show_bug.cgi?id=225376

Reviewed by Filip Pizlo.

This patch makes the following changes:

  1. Enhance JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines() to be able to run in an incremental time slice.
  1. Added JITStubRoutineSet::notifyHaveRoutinesToDelete() so that GCAwareJITStubRoutine::observeZeroRefCount() can flag that the GC may have some dead GCAwareJITStubRoutines to delete.
  1. Added JITStubRoutineSet::mayHaveRoutinesToDelete() so that clients can do a cheap check ahead of time to determine if there's work to do, and avoid calling JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines() altogether if not needed.
  1. Added Heap::mayHaveJITStubRoutinesToDelete() and Heap::deleteDeadJITStubRoutines() as wrappers around JITStubRoutineSet::mayHaveRoutinesToDelete() and JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines() because the use of the JITStubRoutineSet is a heap internal implementation detail.
  1. Enhanced the IncrementalSweeper to also call Heap::deleteDeadJITStubRoutines() if needed.
  1. Enhanced Heap::sweepSynchronously() to also call Heap::deleteDeadJITStubRoutines() if needed.
  1. Time slices for Heap::deleteDeadJITStubRoutines() is currently set at the current values:
    1. max of 1 ms (1/10 of the IncreamentalSweeper's time slice) when invoked from the IncreamentalSweeper.
    2. max of 5 ms when invoked from Heap::deleteUnmarkedCompiledCode().
    3. unlimited time (with a sanity check) when called from Heap::sweepSynchronously().

The choices of 1ms and 5ms were picked to not be too long, but would still delete
the bulk of the dead GCAwareJITStubRoutines quickly enough based on data from my
instrumented runs the CLI version of JetStream2.

I think these hardcoded values will do for now. If need be, we can try something
more sophisticated later.

  • CMakeLists.txt:
  • heap/Heap.cpp:

(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepSynchronously):

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::mayHaveJITStubRoutinesToDelete):
(JSC::Heap::deleteDeadJITStubRoutines):

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::doSweep):

  • heap/JITStubRoutineSet.cpp:

(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):

  • heap/JITStubRoutineSet.h:

(JSC::JITStubRoutineSet::mayHaveRoutinesToDelete):
(JSC::JITStubRoutineSet::notifyHaveRoutinesToDelete):
(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::GCAwareJITStubRoutine::observeZeroRefCount):

  • jit/JITStubRoutine.h:

(JSC::JITStubRoutine::createSelfManagedRoutine): Deleted.

10:00 AM Changeset in webkit [277026] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit
REGRESSION (r276633): ASSERTION FAILED: !forbidMallocUseScopeCount
disableMallocRestrictionScopeCount

https://bugs.webkit.org/show_bug.cgi?id=225374
<rdar://problem/77533237>

Reviewed by Chris Dumez.

Disable memory allocation checks in speech recognition code path.
No change of behavior.

  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:

(WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::storageChanged):

9:45 AM Changeset in webkit [277025] by Russell Epstein
  • 1 edit in branches/safari-612.1.12-branch/Source/WebCore/html/HTMLElement.h

Unreviewed build fix. rdar://problem/77530347

Undefined symbols:

"WebCore::HTMLElement::isInsideImageOverlay(WebCore::SimpleRange const&)"

9:36 AM Changeset in webkit [277024] by weinig@apple.com
  • 24 edits
    3 copies
    6 adds in trunk

Add preliminary support for specifying a color space for 2D canvas
https://bugs.webkit.org/show_bug.cgi?id=225286

Reviewed by Dean Jackson.

Source/WebCore:

Tests: fast/canvas/CanvasRenderingContext2DSettings-colorSpace-disabled.html

fast/canvas/CanvasRenderingContext2DSettings-colorSpace-enabled.html
fast/canvas/canvas-color-space-display-p3.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • html/canvas/CanvasRenderingContext2DSettings.idl:
  • html/canvas/CanvasRenderingContext2DSettings.h:

Add a new setting blocked member to the CanvasRenderingContext2DSettings
dictionary for specifying a color space.

  • html/canvas/PredefinedColorSpace.cpp: Added.
  • html/canvas/PredefinedColorSpace.h: Added.
  • html/canvas/PredefinedColorSpace.idl: Added.

Add a new IDL enumeration to represent the possible color spaces supported.
For ports that don't support DisplayP3, trying to use it will result in
type error from JS.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::reset):
Add checks for color space and pixel format to 2d context reset optimation.
This can happen if the image buffer is allocated prior to the context being
requested (such as via canvas.toDataURL() or canvas.toBlob()).

(WebCore::HTMLCanvasElement::createImageBuffer const):
Pass the correct color space and pixel format (though
the later is always BGRA8 at the moment) to the ImageBuffer
create function to make a backing store in the right format.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createBufferForPainting const):

  • html/HTMLVideoElement.h:

Pass color space and pixel format through to ensure the helper
buffer matches the correct color space.

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):
Pass the existing defaults to HTMLVideoElement::createBufferForPainting.
In the future, ImageBitmap will also gain color space and pixel
format specificity and this will be updated.

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::pixelFormat const):
(WebCore::CanvasRenderingContext::colorSpace const):

  • html/canvas/CanvasRenderingContext.h:

Add virtual base implementations of colorSpace and pixelFormat
which CanvasRenderingContext2D can override to return the
values specified in the CanvasRenderingContext2DSettings.

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::fontProxy const):
Fix incorrect formatting.

(WebCore::CanvasRenderingContext2D::pixelFormat const):
(WebCore::CanvasRenderingContext2D::colorSpace const):
Add overrides, return m_settings.colorSpace for colorSpace.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::createCompositingBuffer):
(WebCore::CanvasRenderingContext2DBase::createPattern):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
Pass along the colorSpace and pixelFormat when creating buffers.

  • html/shadow/DateTimeSymbolicFieldElement.cpp:

Add missing includes that are now needed.

Source/WTF:

Add new experimental feature, CanvasColorSpaceEnabled, which blocks
access to the new ability to specify color spaces for 2D canvas.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):
Add CanvasColorSpaceEnabled for windows.

LayoutTests:

Add basic tests for color space in canvas support.

  • fast/canvas/CanvasRenderingContext2DSettings-colorSpace-disabled-expected.txt: Added.
  • fast/canvas/CanvasRenderingContext2DSettings-colorSpace-disabled.html: Added.
  • fast/canvas/CanvasRenderingContext2DSettings-colorSpace-enabled-expected.txt: Added.
  • fast/canvas/CanvasRenderingContext2DSettings-colorSpace-enabled.html: Added.
  • fast/canvas/canvas-color-space-display-p3-expected.html: Added.
  • fast/canvas/canvas-color-space-display-p3.html: Added.
9:33 AM Changeset in webkit [277023] by Chris Lord
  • 7 edits
    5 deletes in trunk/LayoutTests

Update WPT OffscreenCanvas tests to respect [EnforceRange]
https://bugs.webkit.org/show_bug.cgi?id=225391

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Synchronise with upstream WPT OffscreenCanvas tests.

  • web-platform-tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.tiny-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.tiny.html: Removed.
  • web-platform-tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.tiny.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.tiny.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.tiny.worker.js: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl-expected.txt:
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.html:
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.worker.js:

(t.step):

LayoutTests:

WPT html/canvas/offscreen/pixel-manipulation/2d.imageData.get.tiny.html
passes after updating.

  • platform/glib/TestExpectations:
9:19 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
9:18 AM Changeset in webkit [277022] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32

Merge r277014 - [SOUP] Wrong cookie timestamp in case of long expire time
https://bugs.webkit.org/show_bug.cgi?id=225389

Reviewed by Adrian Perez de Castro.

Source/WebCore:

There's an overflow when converting the dates in both libsoup2 and libsoup3, but for two different reasons. In
the case of libsoup2 we are using an int for the conversion of milliseconds to seconds which is not enough. In
the case of libsoup3 we are passing the value in milliseconds to g_date_time_new_from_unix_utc() that expects
seconds.

  • platform/network/soup/CookieSoup.cpp:

(WebCore::msToSoupDate): Use int64_t instead of int for the cast.
(WebCore::Cookie::toSoupCookie const): Convert the value to seconds.

Tools:

Add a test case.

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerLongExpires):
(beforeAll):

9:18 AM Changeset in webkit [277021] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32

Merge r277015 - USE_64KB_PAGE_BLOCK build option is broken
https://bugs.webkit.org/show_bug.cgi?id=225393

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

Call SET_AND_EXPOSE_TO_BUILD().

  • Source/cmake/WebKitFeatures.cmake:
8:07 AM Changeset in webkit [277020] by Jean-Yves Avenard
  • 7 edits in trunk

imported/w3c/web-platform-tests/media-source/mediasource-activesourcebuffers.html is a flakey
https://bugs.webkit.org/show_bug.cgi?id=225386
rdar://74704447

Reviewed by Eric Carlson.

Source/WebKit:

When enabling/disabling a track, the web content process would send a message to the GPU process which in turn
would send a message back to the content process, notifying that the track configuration had changed, that would
then enable/disable again the track.
If the content process in between those IPC messages had modified the track (such as via JS call), it was
possible for the track status to get lost once the GPU message above got actioned.

Having the GPU process notify that a track configuration got changed when it was originally triggered by the
content process is unnecessary. We modify the RemoteAudioTrack and RemoteVideoTrack so that if the change came
from the web process, the GPU process doesn't send a message back with information that could already be obsolete.

No new tests. Fix an assertion failure in tests.

  • GPUProcess/media/RemoteAudioTrackProxy.cpp:

(WebKit::RemoteAudioTrackProxy::enabledChanged):

  • GPUProcess/media/RemoteAudioTrackProxy.h:
  • GPUProcess/media/RemoteVideoTrackProxy.cpp:

(WebKit::RemoteVideoTrackProxy::selectedChanged):

  • GPUProcess/media/RemoteVideoTrackProxy.h:

LayoutTests:

  • platform/mac-wk2/TestExpectations: Remove
8:02 AM Changeset in webkit [277019] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, reverting r276985.

This test is still failing on Apple Silicon

Reverted changeset:

"Unreviewed, try and re-enable
AppleLanguagesTest.UpdateAppleLanguages on Apple Silicon."
https://commits.webkit.org/r276985

7:48 AM Changeset in webkit [277018] by Chris Dumez
  • 2 edits in trunk/Tools

REGRESSION (r272414?): [macOS] TestWebKitAPI.GPUProcess.CrashWhilePlayingVideo is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=221742
<rdar://problem/74220428>

Reviewed by Youenn Fablet.

Make sure the video is looping so that it cannot stop playing before the end of the test.
This is a speculative fix since I haven't been able to reproduce the issue.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

7:11 AM Changeset in webkit [277017] by commit-queue@webkit.org
  • 3 edits in trunk/Tools/buildstream

[Flatpak SDK] Update libwpe and wpebackend-fdo
https://bugs.webkit.org/show_bug.cgi?id=225358

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

  • elements/sdk/libwpe.bst: Update to version 1.10.
  • elements/sdk/wpebackend-fdo.bst: Update to 1.9.91, soon to be 1.10.
6:55 AM Changeset in webkit [277016] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer][WebRTC] Wrap incoming audio buffers, complying with fastMalloc restrictions
https://bugs.webkit.org/show_bug.cgi?id=225351

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

The audio thread should avoid calling fastMalloc for performance reasons, so audio buffers
are now wrapped in GStreamer buffers and passed as read-only memories to the observers.

  • platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):

6:40 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
6:39 AM Changeset in webkit [277015] by commit-queue@webkit.org
  • 2 edits in trunk

USE_64KB_PAGE_BLOCK build option is broken
https://bugs.webkit.org/show_bug.cgi?id=225393

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

Call SET_AND_EXPOSE_TO_BUILD().

  • Source/cmake/WebKitFeatures.cmake:
6:24 AM Changeset in webkit [277014] by Carlos Garcia Campos
  • 4 edits in trunk

[SOUP] Wrong cookie timestamp in case of long expire time
https://bugs.webkit.org/show_bug.cgi?id=225389

Reviewed by Adrian Perez de Castro.

Source/WebCore:

There's an overflow when converting the dates in both libsoup2 and libsoup3, but for two different reasons. In
the case of libsoup2 we are using an int for the conversion of milliseconds to seconds which is not enough. In
the case of libsoup3 we are passing the value in milliseconds to g_date_time_new_from_unix_utc() that expects
seconds.

  • platform/network/soup/CookieSoup.cpp:

(WebCore::msToSoupDate): Use int64_t instead of int for the cast.
(WebCore::Cookie::toSoupCookie const): Convert the value to seconds.

Tools:

Add a test case.

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerLongExpires):
(beforeAll):

6:21 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
6:19 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
6:14 AM Changeset in webkit [277013] by rniwa@webkit.org
  • 8 edits in trunk/Source/WebCore

Use WeakHashSet instead of HashSet of raw pointes in Document and SVGDocumentExtensions
https://bugs.webkit.org/show_bug.cgi?id=225390

Reviewed by Antti Koivisto.

Replaced Document's m_documentSuspensionCallbackElements and m_articleElements as well as
SVGDocumentExtensions's m_timeContainers and m_svgFontFaceElements with WeakHashSet.

Also moved m_svgUseElements from Document to SVGDocumentExtensions as a WeakHashSet.

This patch also deletes Document::m_mediaStreamStateChangeElements which was never used,
m_mainArticleElement a WeakPtr instead of a raw pointer, replaces SVGDocumentExtensions's
m_rebuildElements, which is a temporary Vector used during tree mutations, with a Vector
of Refs instead of raw pointers.

No new tests since there should be no observable behavior differences.

  • dom/Document.cpp:

(WebCore::Document::~Document): The release assert is moved to ~SVGDocumentExtensions.
(WebCore::Document::resolveStyle):
(WebCore::Document::suspend):
(WebCore::Document::resume):
(WebCore::Document::registerForDocumentSuspensionCallbacks):
(WebCore::Document::unregisterForDocumentSuspensionCallbacks):
(WebCore::Document::addSVGUseElement): Moved to SVGDocumentExtensions.
(WebCore::Document::removeSVGUseElement): Ditto.
(WebCore::Document::registerArticleElement):
(WebCore::Document::unregisterArticleElement):
(WebCore::Document::updateMainArticleElementAfterLayout):
(WebCore::Document::prepareCanvasesForDisplayIfNeeded):
(WebCore::Document::clearCanvasPreparation):
(WebCore::Document::canvasChanged):
(WebCore::Document::canvasDestroyed):

  • dom/Document.h:

(WebCore::Document:: const const): Deleted.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::~HTMLCanvasElement):
(WebCore::HTMLCanvasElement::didMoveToNewDocument):
(WebCore::HTMLCanvasElement::removedFromAncestor):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::addCurrentSVGFontFaceRules):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Moved the release assertion
from ~Document.
(WebCore::SVGDocumentExtensions::addTimeContainer):
(WebCore::SVGDocumentExtensions::removeTimeContainer):
(WebCore::SVGDocumentExtensions::addUseElementWithPendingShadowTreeUpdate): Moved here
Document::addSVGUseElement.
(WebCore::SVGDocumentExtensions::removeUseElementWithPendingShadowTreeUpdate): Ditto.
(WebCore::SVGDocumentExtensions::startAnimations):
(WebCore::SVGDocumentExtensions::pauseAnimations):
(WebCore::SVGDocumentExtensions::unpauseAnimations):
(WebCore::SVGDocumentExtensions::dispatchLoadEventToOutermostSVGElements):
(WebCore::SVGDocumentExtensions::rebuildElements):
(WebCore::SVGDocumentExtensions::clearTargetDependencies):
(WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
(WebCore::SVGDocumentExtensions::registerSVGFontFaceElement):
(WebCore::SVGDocumentExtensions::unregisterSVGFontFaceElement):

  • svg/SVGDocumentExtensions.h:

(WebCore::SVGDocumentExtensions::useElementsWithPendingShadowTreeUpdate const): Added.
(WebCore::SVGDocumentExtensions::svgFontFaceElements const):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::insertedIntoAncestor):
(WebCore::SVGUseElement::removedFromAncestor):
(WebCore::SVGUseElement::updateShadowTree):
(WebCore::SVGUseElement::invalidateShadowTree):

5:47 AM Changeset in webkit [277012] by commit-queue@webkit.org
  • 2 edits in trunk

Fix typo in comment in WebKitFeatures.cmake
https://bugs.webkit.org/show_bug.cgi?id=225392

Unreviewed.

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-05-05

  • Source/cmake/WebKitFeatures.cmake:
5:43 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
2:49 AM Changeset in webkit [277011] by Chris Lord
  • 6 edits in trunk

OffscreenCanvas should preserve context transform after transferToImageBitmap
https://bugs.webkit.org/show_bug.cgi?id=225304

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline transferToImageBitmap tests.

  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt:
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt:

Source/WebCore:

transferToImageBitmap should not affect the state of the canvas
context. Instead of returning the actual canvas buffer, to which the
drawing context is tightly bound, return a copy and clear the
original.

No new tests, rebaselined existing tests.

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::transferToImageBitmap):
(WebCore::OffscreenCanvas::takeImageBuffer const):

  • html/canvas/CanvasRenderingContext2DBase.h:
1:53 AM Changeset in webkit [277010] by youenn@apple.com
  • 8 edits in trunk/Source/WebKit

Dynamically pass capture sandbox extensions to GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=225319

Reviewed by Eric Carlson.

Make sure to send the sandbox extensions for all WKWebView applications.
We do so once we are ready to start capture since TCC access should have been granted at that point.
Manually tested.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):
(WebKit::GPUProcess::updateSandboxAccess):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):

  • GPUProcess/GPUProcessCreationParameters.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::updateSandboxAccess):
(WebKit::GPUProcessProxy::updateCaptureAccess):
(WebKit::isSafari): Deleted.
(WebKit::shouldCreateCameraSandboxExtension): Deleted.
(WebKit::shouldCreateMicrophoneSandboxExtension): Deleted.

  • UIProcess/GPU/GPUProcessProxy.h:
12:17 AM Changeset in webkit [277009] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore/platform/gtk/po

Merge r277005 - Updated Swedish translation
https://bugs.webkit.org/show_bug.cgi?id=225309

Patch by Anders Jonsson <anders.jonsson@norsjovallen.se> on 2021-05-04
Rubber-stamped by Carlos Garcia Campos.

  • sv.po:

May 4, 2021:

11:56 PM Changeset in webkit [277008] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r276430 - [GTK] Build error: Couldn't find include 'Soup-2.4.gir'
https://bugs.webkit.org/show_bug.cgi?id=224926

Reviewed by Philippe Normand.

Use the right soup API version when generating the introspection.

  • PlatformGTK.cmake:
11:56 PM Changeset in webkit [277007] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.32

Merge r276429 - [GTK][WPE] Bump libsoup3 version to 2.99.4
https://bugs.webkit.org/show_bug.cgi?id=224925

Reviewed by Philippe Normand.

.:

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

Source/WebCore:

Update to use the new API.

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/network/soup/SoupVersioning.h:

(soup_message_get_tls_peer_certificate):
(soup_message_get_tls_peer_certificate_errors):
(soup_message_get_tls_certificate): Deleted.
(soup_message_get_tls_certificate_errors): Deleted.

Tools/buildstream:

  • elements/sdk/libsoup3.bst:

LayoutTests:

Remove expectations for tests that should be passing now.

  • platform/glib/TestExpectations:
11:56 PM Changeset in webkit [277006] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.32

Merge r275759 - [GTK][WPE] Bump libsoup3 version to 2.99.3
https://bugs.webkit.org/show_bug.cgi?id=224362

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-04-09
Reviewed by Žan Doberšek.

.:

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

Source/WebCore:

  • platform/network/soup/GUniquePtrSoup.h:
  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::platformSuggestedFilename const):

10:52 PM Changeset in webkit [277005] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Swedish translation
https://bugs.webkit.org/show_bug.cgi?id=225309

Patch by Anders Jonsson <anders.jonsson@norsjovallen.se> on 2021-05-04
Rubber-stamped by Carlos Garcia Campos.

  • sv.po:
10:46 PM Changeset in webkit [277004] by commit-queue@webkit.org
  • 5 edits
    137 adds in trunk/LayoutTests

Import webstorage WPTs
https://bugs.webkit.org/show_bug.cgi?id=225369

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-05-04
Reviewed by Darin Adler.
LayoutTests/imported/w3c:

Import tip-of-tree webstorage WPTs with:
Tools/Scripts/import-w3c-tests -t web-platform-tests/webstorage

This patch also sets the baseline results for the newly imported tests.

  • resources/import-expectations.json:
  • web-platform-tests/webstorage/META.yml: Added.
  • web-platform-tests/webstorage/README.md: Added.
  • web-platform-tests/webstorage/defineProperty.window-expected.txt: Added.
  • web-platform-tests/webstorage/defineProperty.window.html: Added.
  • web-platform-tests/webstorage/defineProperty.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/document-domain-expected.txt: Added.
  • web-platform-tests/webstorage/document-domain.html: Added.
  • web-platform-tests/webstorage/eventTestHarness.js: Added.

(iframe.contentWindow.onstorage):
(runAfterNStorageEvents):
(onTimeout):
(countStorageEvents):
(clearStorage):

  • web-platform-tests/webstorage/event_basic-expected.txt: Added.
  • web-platform-tests/webstorage/event_basic.html: Added.
  • web-platform-tests/webstorage/event_basic.js: Added.

(testStorages.):
(testStorages):

  • web-platform-tests/webstorage/event_body_attribute-expected.txt: Added.
  • web-platform-tests/webstorage/event_body_attribute.html: Added.
  • web-platform-tests/webstorage/event_body_attribute.js: Added.

(testStorages.):
(testStorages):

  • web-platform-tests/webstorage/event_case_sensitive-expected.txt: Added.
  • web-platform-tests/webstorage/event_case_sensitive.html: Added.
  • web-platform-tests/webstorage/event_case_sensitive.js: Added.

(testStorages.):
(testStorages):

  • web-platform-tests/webstorage/event_constructor.window-expected.txt: Added.
  • web-platform-tests/webstorage/event_constructor.window.html: Added.
  • web-platform-tests/webstorage/event_constructor.window.js: Added.

(test):

  • web-platform-tests/webstorage/event_initstorageevent.window-expected.txt: Added.
  • web-platform-tests/webstorage/event_initstorageevent.window.html: Added.
  • web-platform-tests/webstorage/event_initstorageevent.window.js: Added.

(test):

  • web-platform-tests/webstorage/event_local_key-expected.txt: Added.
  • web-platform-tests/webstorage/event_local_key.html: Added.
  • web-platform-tests/webstorage/event_local_newvalue-expected.txt: Added.
  • web-platform-tests/webstorage/event_local_newvalue.html: Added.
  • web-platform-tests/webstorage/event_local_oldvalue-expected.txt: Added.
  • web-platform-tests/webstorage/event_local_oldvalue.html: Added.
  • web-platform-tests/webstorage/event_local_removeitem-expected.txt: Added.
  • web-platform-tests/webstorage/event_local_removeitem.html: Added.
  • web-platform-tests/webstorage/event_local_storagearea-expected.txt: Added.
  • web-platform-tests/webstorage/event_local_storagearea.html: Added.
  • web-platform-tests/webstorage/event_local_url-expected.txt: Added.
  • web-platform-tests/webstorage/event_local_url.html: Added.
  • web-platform-tests/webstorage/event_no_duplicates-expected.txt: Added.
  • web-platform-tests/webstorage/event_no_duplicates.html: Added.
  • web-platform-tests/webstorage/event_session_key-expected.txt: Added.
  • web-platform-tests/webstorage/event_session_key.html: Added.
  • web-platform-tests/webstorage/event_session_newvalue-expected.txt: Added.
  • web-platform-tests/webstorage/event_session_newvalue.html: Added.
  • web-platform-tests/webstorage/event_session_oldvalue-expected.txt: Added.
  • web-platform-tests/webstorage/event_session_oldvalue.html: Added.
  • web-platform-tests/webstorage/event_session_removeitem-expected.txt: Added.
  • web-platform-tests/webstorage/event_session_removeitem.html: Added.
  • web-platform-tests/webstorage/event_session_storagearea-expected.txt: Added.
  • web-platform-tests/webstorage/event_session_storagearea.html: Added.
  • web-platform-tests/webstorage/event_session_url-expected.txt: Added.
  • web-platform-tests/webstorage/event_session_url.html: Added.
  • web-platform-tests/webstorage/event_setattribute-expected.txt: Added.
  • web-platform-tests/webstorage/event_setattribute.html: Added.
  • web-platform-tests/webstorage/event_setattribute.js: Added.

(testStorages.):
(testStorages):

  • web-platform-tests/webstorage/missing_arguments.window-expected.txt: Added.
  • web-platform-tests/webstorage/missing_arguments.window.html: Added.
  • web-platform-tests/webstorage/missing_arguments.window.js: Added.

(tests):
(tests.forEach):

  • web-platform-tests/webstorage/resources/event_body_handler.html: Added.
  • web-platform-tests/webstorage/resources/event_setattribute_handler.html: Added.
  • web-platform-tests/webstorage/resources/local_change_item_iframe.html: Added.
  • web-platform-tests/webstorage/resources/local_set_item_clear_iframe.html: Added.
  • web-platform-tests/webstorage/resources/local_set_item_iframe.html: Added.
  • web-platform-tests/webstorage/resources/local_set_item_remove_iframe.html: Added.
  • web-platform-tests/webstorage/resources/session_change_item_iframe.html: Added.
  • web-platform-tests/webstorage/resources/session_set_item_clear_iframe.html: Added.
  • web-platform-tests/webstorage/resources/session_set_item_iframe.html: Added.
  • web-platform-tests/webstorage/resources/session_set_item_remove_iframe.html: Added.
  • web-platform-tests/webstorage/resources/storage_local_window_open_second.html: Added.
  • web-platform-tests/webstorage/resources/storage_session_window_noopener_second.html: Added.
  • web-platform-tests/webstorage/resources/storage_session_window_open_second.html: Added.
  • web-platform-tests/webstorage/resources/w3c-import.log: Added.
  • web-platform-tests/webstorage/set.window-expected.txt: Added.
  • web-platform-tests/webstorage/set.window.html: Added.
  • web-platform-tests/webstorage/set.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_builtins.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_builtins.window.html: Added.
  • web-platform-tests/webstorage/storage_builtins.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_clear.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_clear.window.html: Added.
  • web-platform-tests/webstorage/storage_clear.window.js: Added.

(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_enumerate.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_enumerate.window.html: Added.
  • web-platform-tests/webstorage/storage_enumerate.window.js: Added.

(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_functions_not_overwritten.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_functions_not_overwritten.window.html: Added.
  • web-platform-tests/webstorage/storage_functions_not_overwritten.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_getitem.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_getitem.window.html: Added.
  • web-platform-tests/webstorage/storage_getitem.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_in.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_in.window.html: Added.
  • web-platform-tests/webstorage/storage_in.window.js: Added.

(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_indexing.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_indexing.window.html: Added.
  • web-platform-tests/webstorage/storage_indexing.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_key.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_key.window.html: Added.
  • web-platform-tests/webstorage/storage_key.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_key_empty_string.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_key_empty_string.window.html: Added.
  • web-platform-tests/webstorage/storage_key_empty_string.window.js: Added.

(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_length.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_length.window.html: Added.
  • web-platform-tests/webstorage/storage_length.window.js: Added.

(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_local_setitem_quotaexceedederr.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_local_setitem_quotaexceedederr.window.html: Added.
  • web-platform-tests/webstorage/storage_local_setitem_quotaexceedederr.window.js: Added.

(test):

  • web-platform-tests/webstorage/storage_local_window_open.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_local_window_open.window.html: Added.
  • web-platform-tests/webstorage/storage_local_window_open.window.js: Added.

(async_test):

  • web-platform-tests/webstorage/storage_removeitem.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_removeitem.window.html: Added.
  • web-platform-tests/webstorage/storage_removeitem.window.js: Added.

(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_session_setitem_quotaexceedederr.window.html: Added.
  • web-platform-tests/webstorage/storage_session_setitem_quotaexceedederr.window.js: Added.

(test):

  • web-platform-tests/webstorage/storage_session_window_noopener.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_session_window_noopener.window.html: Added.
  • web-platform-tests/webstorage/storage_session_window_noopener.window.js: Added.

(async_test):

  • web-platform-tests/webstorage/storage_session_window_open.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_session_window_open.window.html: Added.
  • web-platform-tests/webstorage/storage_session_window_open.window.js: Added.

(async_test):

  • web-platform-tests/webstorage/storage_set_value_enumerate.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_set_value_enumerate.window.html: Added.
  • web-platform-tests/webstorage/storage_set_value_enumerate.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_setitem.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_setitem.window.html: Added.
  • web-platform-tests/webstorage/storage_setitem.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_string_conversion.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_string_conversion.window.html: Added.
  • web-platform-tests/webstorage/storage_string_conversion.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/storage_supported_property_names.window-expected.txt: Added.
  • web-platform-tests/webstorage/storage_supported_property_names.window.html: Added.
  • web-platform-tests/webstorage/storage_supported_property_names.window.js: Added.

(string_appeared_here.forEach):

  • web-platform-tests/webstorage/symbol-props.window-expected.txt: Added.
  • web-platform-tests/webstorage/symbol-props.window.html: Added.
  • web-platform-tests/webstorage/symbol-props.window.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/webstorage/w3c-import.log: Added.

LayoutTests:

Import tip-of-tree webstorage WPTs with:
Tools/Scripts/import-w3c-tests -t web-platform-tests/webstorage

Skip 2 newly imported tests that consistently crash / timeout.

  • tests-options.json:

Mark 4 newly imported tests as slow.

10:41 PM Changeset in webkit [277003] by Peng Liu
  • 7 edits in trunk/Source

[GPUP] Implement SourceBufferPrivateRemote::bufferFull()
https://bugs.webkit.org/show_bug.cgi?id=224139

Reviewed by Jer Noble.

Source/WebCore:

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::setBufferFull): This function will be used
by SourceBufferPrivateRemote::evictCodedFrames() and SourceBufferPrivateRemote::reenqueueMediaIfNeeded().

Source/WebKit:

Modify two IPC messages to implement SourceBufferPrivateRemote::bufferFull().

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::evictCodedFrames):
(WebKit::RemoteSourceBufferProxy::reenqueueMediaIfNeeded):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::evictCodedFrames):
(WebKit::SourceBufferPrivateRemote::reenqueueMediaIfNeeded):

10:38 PM Changeset in webkit [277002] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Mark imported/w3c/web-platform-tests/worklets/paint-worklet-csp.https.html as flaky crash.

Also clean latest tests passing and mark 'open-features-tokenization-screenx-screeny.html' as flaky timeout.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
9:38 PM Changeset in webkit [277001] by Antti Koivisto
  • 10 edits
    2 adds in trunk

REGRESSION(iOS 14): Author shadow DOM invalidated unnecessarily on pseudo element change
https://bugs.webkit.org/show_bug.cgi?id=222187
<rdar://problem/74801314>

Reviewed by Ryosuke Niwa.
Source/WebCore:

Hovering the element causes us to invalidate the entire author shadow tree style.

The invalidation is triggered by the user agent stylesheet having some :hover rules targeting pseudo
elements. This should not require invalidation except for those specific elements and only for
UA shadow trees.

This patch optimizes the case and avoids unnecessary invalidations.

Test: fast/shadow-dom/shadow-style-invalidation-pseudo-element.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::handleFocusEvent):
(WebCore::HTMLInputElement::handleBlurEvent):
(WebCore::HTMLInputElement::invalidateStyleOnFocusChangeIfNeeded):

Input elements with 'text-overflow:ellipsis' (which is affected by focus) were relying
on spurious invalidations that we now optimize away. Invalidate properly.

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

(WebCore::Style::ElementRuleCollector::collectMatchingShadowPseudoElementRules):

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::evaluateDynamicMediaQueryRules):
(WebCore::Style::RuleSet::hasShadowPseudoElementRules const): Deleted.

Handle ::cue separately.

  • style/RuleSet.h:

(WebCore::Style::RuleSet::cuePseudoRules const):
(WebCore::Style::RuleSet::hasShadowPseudoElementRules const):

  • style/StyleInvalidationFunctions.h:

(WebCore::Style::traverseRuleFeatures):

  • style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::collectRuleInformation):
(WebCore::Style::Invalidator::invalidateShadowPseudoElements):

Narrowly invalidate user agent shadow tree pseudo elements.

(WebCore::Style::Invalidator::invalidateInShadowTreeIfNeeded):

  • style/StyleInvalidator.h:

LayoutTests:

  • fast/shadow-dom/shadow-style-invalidation-pseudo-element-expected.txt: Added.
  • fast/shadow-dom/shadow-style-invalidation-pseudo-element.html: Added.
7:45 PM Changeset in webkit [277000] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Gardened several WebXR tests that are crashing in Debug.

  • platform/wpe/TestExpectations:
6:23 PM Changeset in webkit [276999] by commit-queue@webkit.org
  • 5 edits in trunk

WebKit must treat 'webgl' and 'webgl2' as distinct context types
https://bugs.webkit.org/show_bug.cgi?id=222758

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

Source/WebCore:

Update both the regular getContext and CSS context code paths with
checks distinguishing WebGL 1.0 and 2.0 contexts.

Covered by existing WebGL 2.0 conformance tests.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::getContextWebGL):

LayoutTests:

Revised the two copies of the WebGL 2.0 context-type-test with
strengthened checks taken from upstream KhronosGroup/WebGL.

  • webgl/2.0.0/resources/webgl_test_files/conformance2/context/context-type-test-2.html:
  • webgl/resources/webgl_test_files/conformance2/context/context-type-test-2.html:
5:42 PM Changeset in webkit [276998] by jiewen_tan@apple.com
  • 4 edits in trunk

PCM: Find a way to validate source_secret_token and source_secret_token_signature
https://bugs.webkit.org/show_bug.cgi?id=224321
<rdar://problem/76695542>

Reviewed by John Wilander.

Source/WebKit:

Covered by exisiting tests.

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
Reverts r236878.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):
Uses RSA-PSS with SHA-384 to verify the signature.

5:00 PM Changeset in webkit [276997] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitscmpy] Scope classes used in TaskPool to object
https://bugs.webkit.org/show_bug.cgi?id=225361
<rdar://problem/77514131>

Reviewed by Dewei Zhu.

The classes used by TaskPool must be stand-alone because they are passed between processes.
However, it makes sense that those classes are scoped to the TaskPool object since their
usage should always be associated with the TaskPool object

  • Scripts/libraries/webkitcorepy/setup.py:
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
  • Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:

(_Message): Renamed from Message.
(_Task): Renamed from Task.
(_Result): Renamed from Result.
(_Log): Renamed from Log.
(_Print): Renamed from Print.
(_State): Renamed from State.
(_ChildException): Renamed from ChildException.
(_BiDirectionalQueue): Renamed from BiDirectionalQueue.
(_Process): Renamed from Process.
(TaskPool):
(TaskPool.do):
(Message): Renamed to _Message..
(Task): Renamed to _Task.
(Result): Renamed to _Result.
(Log): Renamed to _Log.
(Print): Renamed to _Print.
(State): Renamed to _State.
(ChildException): Renamed to _ChildException.
(BiDirectionalQueue): Renamed to _BiDirectionalQueue.
(Process): Renamed to _Process.

4:58 PM Changeset in webkit [276996] by Russell Epstein
  • 1 copy in tags/Safari-612.1.11.9

Tag Safari-612.1.11.9.

4:58 PM Changeset in webkit [276995] by Russell Epstein
  • 1 delete in tags/Safari-612.1.11.9

Delete tag.

4:51 PM Changeset in webkit [276994] by Russell Epstein
  • 8 edits in branches/safari-612.1.11-branch/Source

Versioning.

WebKit-7612.1.11.9

4:50 PM Changeset in webkit [276993] by jer.noble@apple.com
  • 14 edits
    1 copy
    3 adds in trunk/Source

[Media in GPU Process] Move AudioSessionRoutingArbitratorProxy to the GPU process
https://bugs.webkit.org/show_bug.cgi?id=217535
<rdar://problem/70152548>

Reviewed by Eric Carlson.

Source/WebCore:

Add a new shared object, SharedRoutingArbitrator, to be used both in the UIProcess (when media
in the GPU process is not enabled) and the GPUProcess (when it is).

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/AudioSession.h:
  • platform/audio/mac/SharedRoutingArbitrator.h: Added.
  • platform/audio/mac/SharedRoutingArbitrator.mm: Added.

(WebCore::SharedRoutingArbitrator::Token::create):
(WebCore::SharedRoutingArbitrator::sharedInstance):
(WebCore::SharedRoutingArbitrator::isInRoutingArbitrationForToken):
(WebCore::SharedRoutingArbitrator::beginRoutingArbitrationForToken):
(WebCore::SharedRoutingArbitrator::endRoutingArbitrationForToken):

Source/WebKit:

Add a new, local-only object which can aggregate changes to the audio routing.
The UIProcess version of this object spans a process boundary, but this new
object can operate locally without an XPC communication channel. As part of this
change, the "SharedArbitrator" in AudioSessionRoutingArbitratorProxyCocoa has been
moved into WebCore to be used both there and in this new object.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

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

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/mac/LocalAudioSessionRoutingArbitrator.cpp: Added.

(WebKit::LocalAudioSessionRoutingArbitrator::create):
(WebKit::LocalAudioSessionRoutingArbitrator::LocalAudioSessionRoutingArbitrator):
(WebKit::LocalAudioSessionRoutingArbitrator::~LocalAudioSessionRoutingArbitrator):
(WebKit::LocalAudioSessionRoutingArbitrator::processDidTerminate):
(WebKit::LocalAudioSessionRoutingArbitrator::beginRoutingArbitrationWithCategory):
(WebKit::LocalAudioSessionRoutingArbitrator::leaveRoutingAbritration):

  • GPUProcess/mac/LocalAudioSessionRoutingArbitrator.h:
  • SourcesCocoa.txt:
  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::AudioSessionRoutingArbitratorProxy::AudioSessionRoutingArbitratorProxy):
(WebKit::AudioSessionRoutingArbitratorProxy::processDidTerminate):
(WebKit::AudioSessionRoutingArbitratorProxy::beginRoutingArbitrationWithCategory):
(WebKit::AudioSessionRoutingArbitratorProxy::endRoutingArbitration):
(): Deleted.
(WebKit::SharedArbitrator::sharedInstance): Deleted.
(WebKit::SharedArbitrator::isInRoutingArbitrationForArbitrator): Deleted.
(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator): Deleted.
(WebKit::SharedArbitrator::endRoutingArbitrationForArbitrator): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::setCategory):

4:35 PM Changeset in webkit [276992] by Russell Epstein
  • 16 edits
    1 copy in branches/safari-612.1.12-branch/Source

Cherry-pick r276947. rdar://problem/77510833

Allow AppHighlight visibility to be toggled
https://bugs.webkit.org/show_bug.cgi?id=225276

Reviewed by Wenson Hsieh.

Source/WebCore:

Add supporting infrastructure to allow highlights to be turned on and off.
This is done with a simple state and a forced repaint on the areas that have highlights.

  • Modules/highlight/Highlight.cpp: (WebCore::Highlight::forceRepaint):
  • Modules/highlight/Highlight.h:
  • Modules/highlight/HighlightRegister.cpp: (WebCore::HighlightRegister::setActive):
  • Modules/highlight/HighlightRegister.h: (WebCore::HighlightRegister::isActive):
  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::collectMarkedTextsForHighlights const):
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::calculateHighlightColor const):

Source/WebKit:

Add supporting infrastructure to allow highlights to be turned on and off.

  • Scripts/webkit/messages.py: (headers_for_type):
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::restoreAppHighlightsAndScrollToIndex): (WebKit::WebPageProxy::setAppHighlightsActive):
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView canPerformAction:withSender:]): (-[WKContentView targetForAction:withSender:]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setAppHighlightsActive):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

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

4:35 PM Changeset in webkit [276991] by Russell Epstein
  • 16 edits
    2 adds in branches/safari-612.1.12-branch

Cherry-pick r276871. rdar://problem/77530347

App highlight UI should be disabled when selecting text in image overlays
https://bugs.webkit.org/show_bug.cgi?id=225260
rdar://77359313

Reviewed by Tim Horton.

Source/WebCore:

When both app highlights and image extraction are enabled, parts of the app highlights feature don't play well
with highlights created for text selections inside an image overlay. For the time being, address this by
disabling app highlights in image overlays.

These changes are exercised by a new API test on iOS, and a new layout test for macOS.

Tests: WebKit.AppHighlightsInImageOverlays

fast/images/image-extraction/mac/image-overlay-text-disables-app-highlight-menu-items.html

  • page/ContextMenuController.cpp: (WebCore::ContextMenuController::populate):

Don't add app highlight menu items in the case where we've selected text in an image overlay.

  • testing/Internals.cpp: (WebCore::Internals::appHighlightContextMenuItemTitles const):

Add an internal testing hook to expose the localized names of the app highlight menu items to layout tests.

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

Source/WebKit:

Add a bit to EditorState to indicate when a ranged selection is inside an image overlay.

  • Shared/EditorState.cpp: (WebKit::EditorState::encode const): (WebKit::EditorState::decode):
  • Shared/EditorState.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView shouldAllowAppHighlightCreation]): (-[WKContentView canPerformAction:withSender:]): (-[WKContentView targetForAction:withSender:]):

Make -targetForAction:withSender: return self only if we have a ranged selection that is not inside an image
overlay. Interestingly, UIKit doesn't seem to consult -canPerformAction:withSender: for actions that are added
through -[UIMenuController setMenuItems:], so we add the check here instead of inside -canPerformAction:
above.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::editorState const):

Set the new bit here. Note that this (importantly) doesn't trigger layout, because VisibleSelection::range
just returns a (potentially uncanonicalized) SimpleRange. For the purposes of checking whether the selection
is inside an image overlay, this is sufficient.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:

Add a new API test to verify the behavior of -targetForAction:withSender: in WKContentView.

  • WebKitTestRunner/TestOptions.cpp: (WTR::TestOptions::defaults): (WTR::TestOptions::keyTypeMapping):
  • WebKitTestRunner/TestOptions.h: (WTR::TestOptions::appHighlightsEnabled const):
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateWebView):

Add support for a new TestOption that enables app highlights. See the new layout test for more information.

LayoutTests:

Add a new layout test to verify that the app higlight context menu items don't show up on macOS when right
clicking.

  • fast/images/image-extraction/mac/image-overlay-text-disables-app-highlight-menu-items-expected.txt: Added.
  • fast/images/image-extraction/mac/image-overlay-text-disables-app-highlight-menu-items.html: Added.

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

4:35 PM Changeset in webkit [276990] by Russell Epstein
  • 16 edits
    1 delete in branches/safari-612.1.12-branch/Source

Revert "Cherry-pick r276947. rdar://problem/77510833"

This reverts commit r276976.

4:35 PM Changeset in webkit [276989] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[Big Sur] platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222495

Unreviewed test fix.

  • media/media-source/media-source-webm-vorbis-partial.html: Fix relative file path.
4:21 PM Changeset in webkit [276988] by Jean-Yves Avenard
  • 3 edits in trunk/LayoutTests

webrtc/video-vp8-videorange.html is faling on macmini8,1
https://bugs.webkit.org/show_bug.cgi?id=225345
rdar://77403100

Reviewed by Eric Carlson.

On some hardware, compositing may render slightly differently.
We add a small fuzz factor when comparing the YUV component values.
Such difference in results would be visually indistinguishible.

  • platform/mac/TestExpectations: Remove test entry.
  • webrtc/video-vp8-videorange.html:
4:20 PM Changeset in webkit [276987] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Remove internal NetworkSessionCocoa additions
https://bugs.webkit.org/show_bug.cgi?id=225365
<rdar://problem/75693914>

Reviewed by Per Arne Vollan.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

3:37 PM Changeset in webkit [276986] by Chris Dumez
  • 6 edits
    2 adds in trunk

Blob contentType with charset renders html as plain text
https://bugs.webkit.org/show_bug.cgi?id=225226

Reviewed by Alex Christensen.

Source/WebCore:

Our code would use the Blob's Content-Type (media type) as a MIME type internally. As a result, if the Blob's
media type would contain anything besides the MIME type (e.g. a charget), then it would lead to failures.

Test: fast/files/blob-with-charget-as-main-resource.html

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::notifyResponseOnSuccess):

  • platform/network/HTTPParsers.h:

Source/WebKit:

Our code would use the Blob's Content-Type (media type) as a MIME type internally. As a result, if the Blob's
media type would contain anything besides the MIME type (e.g. a charget), then it would lead to failures.

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

LayoutTests:

Add layout test coverage.

  • fast/files/blob-with-charget-as-main-resource-expected.html: Added.
  • fast/files/blob-with-charget-as-main-resource.html: Added.
3:29 PM Changeset in webkit [276985] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, try and re-enable AppleLanguagesTest.UpdateAppleLanguages on Apple Silicon.

The test has been updated and it may be passing now or at least fail with a more useful output.

  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:
2:40 PM Changeset in webkit [276984] by Cameron McCormack
  • 3 edits
    3 adds in trunk

Handle clamping of heights for images affected by background-size and EXIF orientation correctly
https://bugs.webkit.org/show_bug.cgi?id=221005
<rdar://problem/73692426>

Reviewed by Simon Fraser.

Source/WebCore:

GraphicsContext::drawPlatformImage handles requests with source rects
whose heights are greater than the image (which can happen due to
rounding issues) by clamping the source rect. This clamping incorrectly
looks at the CGImage's height, which for an image rotated 90deg due to
EXIF orientation metadata, is the wrong dimension.

Test: fast/images/image-orientation-background-size-bug.html

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawPlatformImage):

LayoutTests:

  • fast/images/image-orientation-background-size-bug-expected.html: Added.
  • fast/images/image-orientation-background-size-bug.html: Added.
  • fast/images/resources/green-504x378-90deg.jpg: Added. This is a

solid green 504x378 JPEG with an EXIF orientation tag requiring a
90deg rotation.

2:32 PM Changeset in webkit [276983] by achristensen@apple.com
  • 4 edits in trunk

localStorage changes aren't reflected between WKWebViews using WKWebViewConfiguration._groupIdentifier
https://bugs.webkit.org/show_bug.cgi?id=225344
<rdar://77496721>

Reviewed by Brady Eidson.

Source/WebKit:

When we switched from using _pageGroup to _groupIdentifier, we also broke localStorage by making a new pageGroupID for each WKWebView.
This is the low-risk solution to this problem that remembers what pageGroupID we used for this same identifier, creating the effect of
using the same StorageNamespaceIdentifier for each _groupIdentifier like we did when we used _pageGroup.
See the comment in StorageAreaMap::dispatchLocalStorageEvent.

The higher-risk solution that needs to be done but probably shouldn't be merged to a branch at this point is to remove StorageNamespaceIdentifier.
I plan to do that in a follow-up patch.

  • UIProcess/WebPageGroup.cpp:

(WebKit::pageGroupData):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:

(TEST):

2:13 PM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
1:48 PM Changeset in webkit [276982] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebKitLegacy

Remove unused references to PageGroup from WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=225359

Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-04
Reviewed by Sihui Liu.

Source/WebKitLegacy:

  • Storage/StorageTracker.cpp:

Source/WebKitLegacy/mac:

  • History/WebHistory.mm:
  • History/WebHistoryInternal.h:
  • Storage/WebStorageManager.mm:
  • WebView/WebView.mm:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebPlatformStrategies.cpp:
  • WebHistory.cpp:
  • WebHistory.h:
  • WebKitDLL.cpp:
  • WebView.cpp:
1:44 PM Changeset in webkit [276981] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[Cocoa] Cache the value of MediaPlayerPrivateAVFoundationObjC::assetStatus()
https://bugs.webkit.org/show_bug.cgi?id=225262

Reviewed by Eric Carlson.

Calling into assetStatus() requires querying the load state and value of nine different
AVAsset properties, which adds up if assetStatus() is called often. Once the assetStatus()
value reaches the Loaded state, cache that property, and that of the AVAsset.playable
property, so subsequent queries are just an ivar lookup.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus const):

1:32 PM Changeset in webkit [276980] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r276954 - [GTK] segmentation fault in WebKit::IconDatabase::loadIconForPageURL
https://bugs.webkit.org/show_bug.cgi?id=225279

Patch by Jim Mason <jmason@ibinx.com> on 2021-05-04
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::setIconForPageURL):

1:27 PM Changeset in webkit [276979] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] Allow HTMLMediaElement preload > "metadata" on iPad by default
https://bugs.webkit.org/show_bug.cgi?id=223802

Reviewed by Eric Carlson.

Align default iPad WebKit behavior for media element preload with Mac WebKit behavior.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

12:29 PM Changeset in webkit [276978] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r276883): [Debug] ASSERTION FAILED: index != notFound in WebCore::PlatformMediaSessionManager::setCurrentSession()
https://bugs.webkit.org/show_bug.cgi?id=225332
<rdar://problem/77476145>

Reviewed by Eric Carlson.

PlatformMediaSessionManager will throw an assert if the session being set as "current" via
sessionWillBeginPlayback() isn't active; we activate the session immediately after this line
inside lazyInitialize(), but this looks to be too late. A similar problem may occur in
HTMLMediaElement::playInternal(), so activate the session there too.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::lazyInitialize):
(WebCore::AudioContext::willBeginPlayback):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::playInternal):

12:25 PM Changeset in webkit [276977] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r276915 - [GTK] Build with VIDEO=OFF fails
https://bugs.webkit.org/show_bug.cgi?id=225316

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

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::isPlayingAudio): Guard against invalid media types, when video is disabled we can
safely return false here as well.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h: Include what we use (UniqueRef).
12:25 PM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
12:11 PM Changeset in webkit [276976] by Russell Epstein
  • 16 edits
    1 copy in branches/safari-612.1.12-branch/Source

Cherry-pick r276947. rdar://problem/77510833

Allow AppHighlight visibility to be toggled
https://bugs.webkit.org/show_bug.cgi?id=225276

Reviewed by Wenson Hsieh.

Source/WebCore:

Add supporting infrastructure to allow highlights to be turned on and off.
This is done with a simple state and a forced repaint on the areas that have highlights.

  • Modules/highlight/Highlight.cpp: (WebCore::Highlight::forceRepaint):
  • Modules/highlight/Highlight.h:
  • Modules/highlight/HighlightRegister.cpp: (WebCore::HighlightRegister::setActive):
  • Modules/highlight/HighlightRegister.h: (WebCore::HighlightRegister::isActive):
  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::collectMarkedTextsForHighlights const):
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::calculateHighlightColor const):

Source/WebKit:

Add supporting infrastructure to allow highlights to be turned on and off.

  • Scripts/webkit/messages.py: (headers_for_type):
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::restoreAppHighlightsAndScrollToIndex): (WebKit::WebPageProxy::setAppHighlightsActive):
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView canPerformAction:withSender:]): (-[WKContentView targetForAction:withSender:]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setAppHighlightsActive):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

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

12:03 PM Changeset in webkit [276975] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: add assertion for WI.View re-entrancy
https://bugs.webkit.org/show_bug.cgi?id=224678

Reviewed by Joseph Pecoraro.

Add console.assert (which are removed from production builds) around each critical
WI.View subclass member function to prevent reentrancy.

  • initialLayout
  • sizeDidChange
  • layout
  • didLayoutSubtree

This is important because WI.View.prototype._layoutSubtree sets any related state after
calling any of the above (e.g. _didInitialLayout after initialLayout), meaning that any
checks for the related state (which sometimes control whether the function is called, such
as in the case of initialLayout) would think that the function hadn't been called yet. See
r276170 for an example of how this can happen and the potential problems it can cause.

  • UserInterface/Views/View.js:

(WI.View.prototype._layoutSubtree):

  • UserInterface/Base/Utilities.js:

(WI.setReentrantCheck): Added.
(WI.clearReentrantCheck): Added.

11:51 AM Changeset in webkit [276974] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Don't iterate NetworkProcessProxy::m_websiteDataStores
https://bugs.webkit.org/show_bug.cgi?id=225337
<rdar://77233103>

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

Source/WebKit:

There is evidence that this collection is mutated while iterating, and there are a lot of ways that might happen.
Instead, keep a Vector<Ref<WebsiteDataStore>>.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::networkProcessDidTerminate):

  • UIProcess/Network/NetworkProcessProxyCocoa.mm:

(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):

Source/WTF:

  • wtf/Vector.h:

(WTF::copyToVectorOf):
Use a universal reference instead of const&.

  • wtf/WeakHashSet.h:

WeakHashSet iteration returns T&, and we need this instead of WeakPtr<T> to be able to return a Ref from a map function.

11:43 AM Changeset in webkit [276973] by eric.carlson@apple.com
  • 8 edits in trunk/Source/WebKit

[GPUP] Use MonotonicTime for elapsed time
https://bugs.webkit.org/show_bug.cgi?id=225329
<rdar://problem/77472811>

Reviewed by Simon Fraser.

No new tests, no change of behavior.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlaybackStateChanged):
(WebKit::RemoteMediaPlayerProxy::updateCachedState):
(WebKit::RemoteMediaPlayerProxy::performTaskAtMediaTime):
(WebKit::RemoteMediaPlayerProxy::setVideoPlaybackMetricsUpdateInterval):
(WebKit::RemoteMediaPlayerProxy::maybeUpdateCachedVideoMetrics):
(WebKit::RemoteMediaPlayerProxy::updateCachedVideoMetrics):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::currentMediaTime const):
(WebKit::MediaPlayerPrivateRemote::playbackStateChanged):
(WebKit::MediaPlayerPrivateRemote::updateCachedState):
(WebKit::MediaPlayerPrivateRemote::videoPlaybackQualityMetrics):
(WebKit::MediaPlayerPrivateRemote::performTaskAtMediaTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/RemoteMediaPlayerState.h:

(WebKit::RemoteMediaPlayerState::encode const):
(WebKit::RemoteMediaPlayerState::decode):

11:34 AM Changeset in webkit [276972] by jiewen_tan@apple.com
  • 4 edits in trunk/Source/WebKit

REGRESSION: [ iOS ] 11 http/wpt/webauthn/ tests are crashing
https://bugs.webkit.org/show_bug.cgi?id=225225
rdar://77074618

Reviewed by Brent Fulgham.

Covered by exisiting tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::runPresenter):
(WebKit::AuthenticatorManager::runPresenterInternal):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h:

Disables the modern UI in the mock testing environment.

11:19 AM Changeset in webkit [276971] by svillar@igalia.com
  • 5 edits in trunk

ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
https://bugs.webkit.org/show_bug.cgi?id=222711
<rdar://problem/75022692>

Reviewed by Alan Bujtas.

Source/WebCore:

Flexbox code was computing negative content sizes for FrameSet children because RenderFrameSet lacked
a implementation of computePreferredLogicalWidths(). Added basic preferred width computation
to RenderBox so that FrameSet and any other potential new RenderBox child could benefit from it.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computePreferredLogicalWidths): Added a basic implementation that calls
computePreferredLogicalWidths(minWidth,maxWidth,borderAndPadding) and clears the flag.

  • rendering/RenderBox.h:

(WebCore::RenderBox::computePreferredLogicalWidths): Deleted default implementation.

LayoutTests:

11:14 AM Changeset in webkit [276970] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Ensure file handles are not leaked in unit tests
https://bugs.webkit.org/show_bug.cgi?id=225360

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/email_unittest.py:

(EmailsDotJSONTest.test_valid_emails_json):
(EmailsDotJSONTest.test_emails_json_required_categories_present):

  • CISupport/ews-build/loadConfig_unittest.py:

(ConfigDotJSONTest.get_config):

11:04 AM Changeset in webkit [276969] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

[iOS] Use async API to take RunningBoard assertions
https://bugs.webkit.org/show_bug.cgi?id=225324
<rdar://76972252>

Reviewed by Geoffrey Garen.

Use async [RBSAssertion acquireWithInvalidationHandler:] API to take process assertions
instead of the synchronous [RBSAssertion acquireWithError:] API. This avoids risking
hanging the main thread for too long.

Note that [RBSAssertion isValid] returns false until the assertion is taken so I am
using our own "isValid" boolean to indicate if the RBSAssertion was invalidated or
or not. We use this flag to decide if we need to take the assertion again. We wouldn't
want to re-take the assertion simply because it is still in the process of being
acquired.

  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::isValid const): Deleted.

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::isValid const):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager assertion:didInvalidateWithError:]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::~ProcessAssertion):
(WebKit::ProcessAssertion::processAssertionWasInvalidated):
(-[WKProcessAssertionBackgroundTaskManager _hasBackgroundTask]): Deleted.
(-[WKRBSAssertionDelegate dealloc]): Deleted.
(-[WKRBSAssertionDelegate assertionWillInvalidate:]): Deleted.
(-[WKRBSAssertionDelegate assertion:didInvalidateWithError:]): Deleted.
(WebKit::ProcessAssertion::isValid const): Deleted.

10:41 AM Changeset in webkit [276968] by Russell Epstein
  • 8 edits in branches/safari-612.1.12-branch/Source

Versioning.

WebKit-7612.1.12.3

10:33 AM Changeset in webkit [276967] by Kate Cheney
  • 2 edits in trunk/Tools

Unreviewed, adding myself as a reviewer.

  • Scripts/webkitpy/common/config/contributors.json:
10:14 AM Changeset in webkit [276966] by graouts@webkit.org
  • 6 edits
    2 adds in trunk

REGRESSION (r260360): animation-wide timing function does not apply to 2-keyframe transform Web Animation
https://bugs.webkit.org/show_bug.cgi?id=225301
<rdar://problem/77452933>

Reviewed by Dean Jackson.

Source/WebCore:

Core Animation has a limitation where an animation-wide cubic timing function with y values outside of the [0-1]
range are not applied correctly since those values are clipped. This is not the case with similar timing functions
applied to a keyframe interval. This is known issue covered by bug 215918.

We worked around this limitation for CSS Transitions in bug 215826. Indeed, in this case we know that the animation
has a single interval and no keyframe-specific timing function, so GraphicsLayerCA would check whether the Animation
object originated from a CSS Transition and set the animation-wide timing function on the generated AnimationValue.

With this patch we generalize this approach to any animation, no matter its origin, that has a single keyframe
interval with no timing function or a timing function that has a linear effect. To do this, we first check in
GraphicsLayerCA::addAnimation*() whether we are dealing with an animation that has an animation-wide cubic timing
function outside of the [0-1] range. If that is not the case, we return early and indicate that this animation
cannot be run accelerated.

If instead that is the case, we pass a new boolean flag down through the call stack to setupAnimation() and
timingFunctionForAnimationValue() where we choose to use the animation-wide timing function on the first keyframe
rather than the animation itself.

Test: webanimations/accelerated-web-animation-with-single-interval-and-easing-y-axis-above-1.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::backingAnimationForCompositedRenderer const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::timingFunctionIsCubicTimingFunctionWithYValueOutOfRange):
(WebCore::keyframeValueListHasSingleIntervalWithLinearOrEquivalentTimingFunction):
(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::createBasicAnimation):
(WebCore::GraphicsLayerCA::createKeyframeAnimation):
(WebCore::GraphicsLayerCA::createSpringAnimation):
(WebCore::GraphicsLayerCA::setupAnimation):
(WebCore::GraphicsLayerCA::timingFunctionForAnimationValue):
(WebCore::GraphicsLayerCA::setAnimationKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
(WebCore::GraphicsLayerCA::setFilterAnimationKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:

LayoutTests:

Add a test that runs a JS-orignated animation with a single interval and an animation-wide cubic timing
function with y values outside of the [0-1] range.

  • platform/win/TestExpectations:
  • webanimations/accelerated-web-animation-with-single-interval-and-easing-y-axis-above-1-expected.html: Added.
  • webanimations/accelerated-web-animation-with-single-interval-and-easing-y-axis-above-1.html: Added.
10:14 AM Changeset in webkit [276965] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Drop std::filesystem logic in PlatformJSCOnly.cmake
https://bugs.webkit.org/show_bug.cgi?id=225355

Reviewed by Alex Christensen.

Drop std::filesystem logic in PlatformJSCOnly.cmake as it is no longer needed after r276946.

  • wtf/PlatformJSCOnly.cmake:
10:09 AM Changeset in webkit [276964] by Kyle Piddington
  • 5 edits in trunk/LayoutTests

[Metal ANGLE] Update readpixel, sub, whole, and occlusionQuery tests to passing
https://bugs.webkit.org/show_bug.cgi?id=225217

Tests are passing on bots, but checked in expected test results include failures.
Reviewed by Dean Jackson.

  • webgl/2.0.0/deqp/functional/gles3/fboinvalidate/sub-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/fboinvalidate/whole-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/occlusionquery_strict-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/readpixel-expected.txt:
10:03 AM Changeset in webkit [276963] by Ruben Turcios
  • 16 edits
    1 copy in branches/safari-612.1.13-branch/Source

Cherry-pick r276947. rdar://problem/77511661

Allow AppHighlight visibility to be toggled
https://bugs.webkit.org/show_bug.cgi?id=225276

Reviewed by Wenson Hsieh.

Source/WebCore:

Add supporting infrastructure to allow highlights to be turned on and off.
This is done with a simple state and a forced repaint on the areas that have highlights.

  • Modules/highlight/Highlight.cpp: (WebCore::Highlight::forceRepaint):
  • Modules/highlight/Highlight.h:
  • Modules/highlight/HighlightRegister.cpp: (WebCore::HighlightRegister::setActive):
  • Modules/highlight/HighlightRegister.h: (WebCore::HighlightRegister::isActive):
  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::collectMarkedTextsForHighlights const):
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::calculateHighlightColor const):

Source/WebKit:

Add supporting infrastructure to allow highlights to be turned on and off.

  • Scripts/webkit/messages.py: (headers_for_type):
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::restoreAppHighlightsAndScrollToIndex): (WebKit::WebPageProxy::setAppHighlightsActive):
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView canPerformAction:withSender:]): (-[WKContentView targetForAction:withSender:]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setAppHighlightsActive):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

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

10:02 AM Changeset in webkit [276962] by dino@apple.com
  • 5 edits
    2 copies in trunk/Source/WebCore

[WebXR] Move WebXROpaqueFramebuffer to its own file
https://bugs.webkit.org/show_bug.cgi?id=225334

Reviewed by Sam Weinig.

Move WebXROpaqueFramebuffer out of WebXRWebGLLayer.

  • Modules/webxr/WebXROpaqueFramebuffer.cpp: Copied from Source/WebCore/Modules/webxr/WebXRWebGLLayer.cpp.

(WebCore::WebXROpaqueFramebuffer::create):
(WebCore::WebXROpaqueFramebuffer::WebXROpaqueFramebuffer):
(WebCore::WebXROpaqueFramebuffer::~WebXROpaqueFramebuffer):
(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::endFrame):
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer):

  • Modules/webxr/WebXROpaqueFramebuffer.h: Copied from Source/WebCore/Modules/webxr/WebXRWebGLLayer.h.

(WebCore::WebXROpaqueFramebuffer::handle const):
(WebCore::WebXROpaqueFramebuffer::framebuffer const):
(WebCore::WebXROpaqueFramebuffer::width const):
(WebCore::WebXROpaqueFramebuffer::height const):

  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXROpaqueFramebuffer::create): Deleted.
(WebCore::WebXROpaqueFramebuffer::WebXROpaqueFramebuffer): Deleted.
(WebCore::WebXROpaqueFramebuffer::~WebXROpaqueFramebuffer): Deleted.
(WebCore::WebXROpaqueFramebuffer::startFrame): Deleted.
(WebCore::WebXROpaqueFramebuffer::endFrame): Deleted.
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer): Deleted.

  • Modules/webxr/WebXRWebGLLayer.h:

(WebCore::WebXROpaqueFramebuffer::handle const): Deleted.
(WebCore::WebXROpaqueFramebuffer::framebuffer const): Deleted.
(WebCore::WebXROpaqueFramebuffer::width const): Deleted.
(WebCore::WebXROpaqueFramebuffer::height const): Deleted.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
9:43 AM Changeset in webkit [276961] by Ruben Turcios
  • 3 edits in branches/safari-612.1.13-branch/Source/WebCore

Cherry-pick r276893. rdar://problem/77510428

REGRESSION (r276633): fast/mediastream/media-stream-track-interrupted.html is consistently timing out
https://bugs.webkit.org/show_bug.cgi?id=225204
<rdar://problem/77338070>

Reviewed by Eric Carlson.

Reverting to RecursiveLock since resuming a unit will make it notify to unmute sources.
Sources will want to restart audio, thus restarting the unit synchronously.
This triggers the unit to tell its clients that it is restarting, which creates a dead lock.
We should probably update the code to change this, but as a short term fix, we revert to a RecursiveLock.

Covered by fast/mediastream/media-stream-track-interrupted.html no longer timing out.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp: (WebCore::BaseAudioSharedUnit::audioSamplesAvailable):
  • platform/mediastream/mac/BaseAudioSharedUnit.h:

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

9:37 AM Changeset in webkit [276960] by Ruben Turcios
  • 1 copy in branches/safari-612.1.13-branch

New branch.

9:14 AM Changeset in webkit [276959] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[WebXR] Remove renamed IDL files in Xcode project
https://bugs.webkit.org/show_bug.cgi?id=225331

Reviewed by Sam Weinig.

The Xcode project had a bunch of references to files that were
renamed a while ago.

  • WebCore.xcodeproj/project.pbxproj:
8:26 AM Changeset in webkit [276958] by Razvan Caliman
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: Inconsistent selection in source tree when grouped by path
https://bugs.webkit.org/show_bug.cgi?id=225317

Reviewed by Devin Rousso.

Ensure origin tree elements for different domains in the Sources Tab behave as folder tree elements
in that they can be individually selected without triggering rendering of any resource.

In essence, restore behavior prior to https://trac.webkit.org/changeset/248912/webkit

The only exception is for document resources. Clicking on the origin tree element associated with a document resource,
triggers rendering of the corresponding document.

  • UserInterface/Views/OriginTreeElement.js:

(WI.OriginTreeElement):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._addResource):

8:02 AM Changeset in webkit [276957] by svillar@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed, unskipped a test which works fine.

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

Unreviewed, fix-up bug URL after r276955

  • platform/glib/TestExpectations:
7:01 AM Changeset in webkit [276955] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GLIB WebRTC gardening

  • platform/glib/TestExpectations: Flag test as crashing in debug bots.
6:48 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
5:38 AM Changeset in webkit [276954] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] segmentation fault in WebKit::IconDatabase::loadIconForPageURL
https://bugs.webkit.org/show_bug.cgi?id=225279

Patch by Jim Mason <jmason@ibinx.com> on 2021-05-04
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::setIconForPageURL):

4:13 AM Changeset in webkit [276953] by commit-queue@webkit.org
  • 9 edits in trunk

[WebRTC][GStreamer] fast/mediastream/resize-trim.html is failing
https://bugs.webkit.org/show_bug.cgi?id=192888

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

Source/WebCore:

The test was failing because the GStreamer mock video source was producing garbled frames
and the pixel test in the canvas was failing to detect gray. The frame was garbled because
the test asked "exact" video width that was inferior to the capture video width and we were
not taking this into account when creating a MediaSample from the video frame.

MediaSampleGStreamer::createImageSample() can now optionally resize the video frame
according to the destinationSize, if it was specified.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toMediaSample):

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::createImageSample):

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:

(WebCore::MediaSampleGStreamer::createImageSample):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):

  • platform/mock/MockRealtimeVideoSource.h:

LayoutTests:

  • platform/glib/TestExpectations: Unflag test.
  • resources/platform-helper.js: Remove EFL cruft.

(videoCanvasPixelComparisonTolerance):
(isEfl): Deleted.

3:04 AM Changeset in webkit [276952] by youenn@apple.com
  • 25 edits in trunk/Source

Use OptionSet for MediaProducer::MediaStateFlags
https://bugs.webkit.org/show_bug.cgi?id=225227

Reviewed by Eric Carlson.

Source/WebCore:

Update code to use a safer MediaProducer::MediaStateFlags type.

No change of behavior, this is a refactoring.

  • Modules/airplay/WebMediaSessionManager.cpp:

(WebCore::flagsAreSet):
(WebCore::mediaProducerStateString):
(WebCore::WebMediaSessionManager::showPlaybackTargetPicker):
(WebCore::WebMediaSessionManager::clientStateDidChange):
(WebCore::WebMediaSessionManager::configurePlaybackTargetClients):
(WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring):
(WebCore::WebMediaSessionManager::configureWatchdogTimer):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::mediaState const):

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

(WebCore::sourceCaptureState):
(WebCore::MediaStreamTrack::captureState):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::mediaState const):
(WebCore::AudioContext::visibilityStateChanged):

  • dom/Document.cpp:

(WebCore::Document::willBeRemovedFromFrame):
(WebCore::Document::updateIsPlayingMedia):

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):
(WebCore::HTMLMediaElement::mediaState const):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackStateChangePermitted const):

  • page/MediaProducer.h:

(WebCore::MediaProducer::isCapturing):

  • page/Page.cpp:

(WebCore::Page::updateIsPlayingMedia):

  • page/Page.h:
  • testing/Internals.cpp:

(WebCore::Internals::pageMediaState):

Source/WebKit:

Update code according safer MediaProducer::MediaStateFlags type.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetMediaState):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView cameraCaptureState]):
(-[WKWebView microphoneCaptureState]):

  • UIProcess/Cocoa/MediaUtilities.mm:

(WebKit::toWKMediaCaptureStateDeprecated):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::captureStateChanged):

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

(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::updatePlayingMediaDidChange):
(WebKit::WebPageProxy::updateReportedMediaCaptureState):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PluginView.h:

(WebKit::PluginView::mediaState const):

1:00 AM Changeset in webkit [276951] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix GTK and WPE builds after r276947

  • Headers.cmake: Add missing header 'Modules/highlight/HighlightVisibility.h'.
12:42 AM Changeset in webkit [276950] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer][Debug] Allow fastMallocs in audio threads
https://bugs.webkit.org/show_bug.cgi?id=225306

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

For the time being the GStreamer ports need to allocate audio buffers for WebRTC. This
deserves deeper investigation to avoid the allocations but for now the bots need to be fixed
ASAP.

  • platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):

  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:

(WebCore::LibWebRTCAudioModule::pollAudioData):

May 3, 2021:

11:34 PM Changeset in webkit [276949] by commit-queue@webkit.org
  • 17 edits in trunk/Source/WebCore

ASSERTION FAILED: !m_needExceptionCheck while converting IDLSequence<T>
https://bugs.webkit.org/show_bug.cgi?id=223789

Patch by Frédéric Wang <fwang@igalia.com> on 2021-05-03
Reviewed by Mark Lam.

Add RETURN_IF_EXCEPTION after various toJS<T> calls since they can throw exception
for some types T.

  • bindings/js/JSDOMConvertSequences.h:

(WebCore::JSConverter<IDLSequence<T>>::convert): Add RETURN_IF_EXCEPTION before appending
the result of toJS<T>.
(WebCore::JSConverter<IDLFrozenArray<T>>::convert): Ditto.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent): Add a throw scope and add RETURN_IF_EXCEPTION
before setting a dictionary value. Change the potentially unused variable.
(GenerateDefaultToJSONOperationDefinition): Add a RETURN_IF_EXCEPTION before setting a
value of the JSON object.
(NativeToJSValueMayThrow): Add "IDLDictionaryMember" as a possible context for which
exception may be thrown.

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

(WebCore::convertDictionaryToJS): Update expectation.

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

(WebCore::jsTestDefaultToJSONPrototypeFunction_toJSONBody): Ditto.

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

(WebCore::jsTestDefaultToJSONFilteredByExposedPrototypeFunction_toJSONBody): Ditto.

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

(WebCore::jsTestDefaultToJSONInheritPrototypeFunction_toJSONBody): Ditto.

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

(WebCore::jsTestDefaultToJSONInheritFinalPrototypeFunction_toJSONBody): Ditto.

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

(WebCore::convertDictionaryToJS): Ditto.

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

(WebCore::convertDictionaryToJS): Ditto.

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

(WebCore::convertDictionaryToJS): Ditto.

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

(WebCore::convertDictionaryToJS): Ditto.

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

(WebCore::convertDictionaryToJS): Ditto.

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

(WebCore::convertDictionaryToJS): Ditto.

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

(WebCore::jsTestNodePrototypeFunction_toJSONBody): Ditto.

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

(WebCore::convertDictionaryToJS): Ditto.

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

(WebCore::convertDictionaryToJS): Ditto.

11:33 PM Changeset in webkit [276948] by commit-queue@webkit.org
  • 7 edits in trunk

[GPUP] Move GPUProcess WebGL to Experimental Feature
https://bugs.webkit.org/show_bug.cgi?id=222836
rdar://75048190

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-03
Reviewed by Brent Fulgham.

Move the setting for WebGL in GPU process
to experimental features but disable it by default,
even on layout tests.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

10:54 PM Changeset in webkit [276947] by Megan Gardner
  • 16 edits
    1 copy in trunk/Source

Allow AppHighlight visibility to be toggled
https://bugs.webkit.org/show_bug.cgi?id=225276

Reviewed by Wenson Hsieh.

Source/WebCore:

Add supporting infrastructure to allow highlights to be turned on and off.
This is done with a simple state and a forced repaint on the areas that have highlights.

  • Modules/highlight/Highlight.cpp:

(WebCore::Highlight::forceRepaint):

  • Modules/highlight/Highlight.h:
  • Modules/highlight/HighlightRegister.cpp:

(WebCore::HighlightRegister::setActive):

  • Modules/highlight/HighlightRegister.h:

(WebCore::HighlightRegister::isActive):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::calculateHighlightColor const):

Source/WebKit:

Add supporting infrastructure to allow highlights to be turned on and off.

  • Scripts/webkit/messages.py:

(headers_for_type):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::restoreAppHighlightsAndScrollToIndex):
(WebKit::WebPageProxy::setAppHighlightsActive):

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

(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView targetForAction:withSender:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setAppHighlightsActive):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
10:25 PM Changeset in webkit [276946] by Lauro Moura
  • 2 edits in trunk/Source/WTF

REGRESSION(r276879) Add libstdc++fs to wtf libraries when using experimental fs headers
https://bugs.webkit.org/show_bug.cgi?id=225341

Reviewed by Chris Dumez.

After r276879, Filesystem.cpp uses std::filesystem directly. So,
expose the need for stdc++fs like was done in r268708 when std::fs was
used in WTR.

  • wtf/CMakeLists.txt:
9:08 PM Changeset in webkit [276945] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Use ImageBuffer scaling in RemoteLayerBackingStore, rather than handling scale in the class
https://bugs.webkit.org/show_bug.cgi?id=225081

Reviewed by Said Abou-Hallawa.

No new tests, no behavior change.

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

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::backingStoreSize const): Deleted.
Make use of ImageBuffer's scaling support instead of scaling ourselves.
This will be helpful for future patches where the backing store's ImageBuffer
needs to know the presentation size, not just the backing store size.
We also do the back->front copy in scaled space now, which simplifies the code a bit.

We have to explicitly specify the source and destination rect for the copy, because
GraphicsContext::drawImageBuffer's implicit source rect is computed using
ImageBuffer::logicalSize(), which is a *truncated* IntSize.

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend):
Apply the device scale factor to the GraphicsContext that ImageBufferShareableBitmapBackend
adopts from ShareableBitmap. We don't need to flip because ShareableBitmap does that,
but it doesn't know anything about scales at all.

9:04 PM Changeset in webkit [276944] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Remove the quirk to disable "return to element fullscreen from picture-in-picture" for wowhead.com
https://bugs.webkit.org/show_bug.cgi?id=225322

Reviewed by Sam Weinig.

The quirk can be removed since wowhead.com has fixed the issue on the page.

Manually tested.

  • page/Quirks.cpp:

(WebCore::Quirks::blocksReturnToFullscreenFromPictureInPictureQuirk const):

9:03 PM Changeset in webkit [276943] by Peng Liu
  • 5 edits in trunk/Source/WebCore

Small cleanups in MediaPlayerPrivateMediaSourceAVFObjC and MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=225330

Reviewed by Eric Carlson.

Since we have removed MediaPlayerPrivate::copyVideoTextureToPlatformTexture() in r273213,
some headers in MediaPlayerPrivateAVFoundationObjC and MediaPlayerPrivateMediaSourceAVFObjC
can be removed as well. This patch also has some small cleanups.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/graphics/cocoa/WebCoreDecompressionSession.h:
7:37 PM Changeset in webkit [276942] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix syntax error message for AUTOPLUSPLUS token.
https://bugs.webkit.org/show_bug.cgi?id=225308
rdar://76830934

Reviewed by Saam Barati.

JSTests:

  • stress/prefix-plusplus-syntax-error-should-say-plusplus.js: Added.

Source/JavaScriptCore:

For the record, it's not easy to tell from the code why AUTOPLUSPLUS is needed.
It's needed to distinguish this:

`
statement ++ stuff ++ is a postfix operator applied to statement.
`

from this:

`
statement
++stuff The \n before the ++ makes it a prefix operator applied to stuff`.
`

If we merely tokenize the ++ as a PLUSPLUS token, then it's unclear whether it acts
as a postfix or prefix token in the 2nd case above.

This is why the correct fix is not to get rid of the AUTOPLUSPLUS token, but to
teach the syntax error message to be aware of the AUTOPLUSPLUS token.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseUnaryExpression):

7:03 PM Changeset in webkit [276941] by Patrick Angle
  • 2 edits in trunk/Source/WebKit

Web Inspector: [Cocoa] Grid overlay area names aren't centered within areas.
https://bugs.webkit.org/show_bug.cgi?id=225176

Reviewed by Devin Rousso.

Grid area names were changed to be centered in their area in r275519. On iOS, the label was changed to treat the
provided point as the center, but the label was still being anchored in the top-left corner. This patch corrects
that by using the center of the area as the anchor point for the label.

  • UIProcess/Inspector/ios/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView _createGridOverlayLayer:scale:]):

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

Crash in WebCore::nextBoundary()
https://bugs.webkit.org/show_bug.cgi?id=225326

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-05-03
Reviewed by Ryosuke Niwa.

nextBoundary() creates a CharacterIterator and calls range() on it
without first checking if atEnd() has been reached, which can lead
to a null pointer dereference.

  • editing/VisibleUnits.cpp:

(WebCore::nextBoundary):

6:02 PM Changeset in webkit [276939] by Russell Epstein
  • 1 copy in tags/Safari-611.2.7.1.3

Tag Safari-611.2.7.1.3.

5:38 PM Changeset in webkit [276938] by Russell Epstein
  • 1 copy in tags/Safari-611.2.7.0.2

Tag Safari-611.2.7.0.2.

5:29 PM Changeset in webkit [276937] by Russell Epstein
  • 1 copy in tags/Safari-612.1.12.2

Tag Safari-612.1.12.2.

4:53 PM Changeset in webkit [276936] by Chris Dumez
  • 4 edits in trunk

Restore pre-r276879 behavior for FileSystem::moveFile()
https://bugs.webkit.org/show_bug.cgi?id=225307

Reviewed by Sam Weinig.

Source/WTF:

Update FileSystem::moveFile() so that it now supports again moving a file across different
volumes by copying the file over and then deleting the source file.

I have verified locally that the function is now able to move a file to a different volumes.
Sadly, I don't think having an API test is feasible here as it requires pre-determined
volumes to be available.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::moveFile):

Tools:

Add API test to make sure that FileSystem::moveFile() is able to move directories since this
was the case prior to r276879.

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

4:41 PM Changeset in webkit [276935] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitpy] Support pickling platforminfo
https://bugs.webkit.org/show_bug.cgi?id=225230
<rdar://problem/77384913>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo.init): Define default arguments.
(PlatformInfo.display_name): Use default platform module if platform_module undefined.
(PlatformInfo._win_version_str): Ditto.

  • Scripts/webkitpy/common/system/platforminfo_unittest.py:

(TestPlatformInfo.test_real_code):

  • Scripts/webkitpy/common/system/systemhost.py:

(SystemHost.init): Use default platforminfo sys and platform modules.

4:25 PM Changeset in webkit [276934] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.11.8

Tag Safari-612.1.11.8.

4:20 PM Changeset in webkit [276933] by Ruben Turcios
  • 8 edits in branches/safari-612.1.11-branch/Source

Revert "Versioning."

This reverts commit r276930

3:53 PM Changeset in webkit [276932] by achristensen@apple.com
  • 4 edits in trunk

WKWebView: WKURLSchemeHandler request don't have Range headers for custom scheme videos
https://bugs.webkit.org/show_bug.cgi?id=203302
<rdar://63750321>

Reviewed by Jer Noble and Geoff Garen.

Source/WebCore:

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

(WebCore::WebCoreAVFResourceLoader::startLoading):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
3:29 PM Changeset in webkit [276931] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.11.9

Tag Safari-612.1.11.9.

3:21 PM Changeset in webkit [276930] by Ruben Turcios
  • 8 edits in branches/safari-612.1.11-branch/Source

Versioning.

WebKit-7612.1.11.9

3:02 PM Changeset in webkit [276929] by Russell Epstein
  • 2 edits in branches/safari-611.2.7.1-branch/Source/WebKit

Cherry-pick r276514. rdar://problem/77473523

Web Inspector: [Cocoa] WKInspectorResourceURLSchemeHandler needs to serialize cleanup actions
https://bugs.webkit.org/show_bug.cgi?id=224986
<rdar://76768454>

Reviewed by Devin Rousso.

  • UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm: (-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]): Do cleanup on the main queue so that it can be serialized with reads.

(-[WKInspectorResourceURLSchemeHandler webView:stopURLSchemeTask:]):
Ensure that all removals from the map are processed before doing a lookup.

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

2:59 PM Changeset in webkit [276928] by Russell Epstein
  • 8 edits in branches/safari-611.2.7.1-branch/Source

Versioning.

WebKit-7611.2.7.1.3

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

Add macOS Safari sandbox exception for com.apple.CFNetwork preferences
https://bugs.webkit.org/show_bug.cgi?id=225184
<rdar://69305108>

Patch by Zhenchao Li <zhenchao_li@apple.com> on 2021-05-03
Reviewed by Per Arne Vollan

rdar://69305108 Add macOS Safari sandbox exception for com.apple.CFNetwork preferences

  • Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2:37 PM Changeset in webkit [276926] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[iOS][FCR] Missing fill color on slider ticks
https://bugs.webkit.org/show_bug.cgi?id=225318
<rdar://problem/77100313>

Reviewed by Wenson Hsieh.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSliderTicks):

Slider ticks should fill in blue as the knob passes them.

2:24 PM Changeset in webkit [276925] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed attempt to fix JSCOnly build with recent clang after r276879
https://bugs.webkit.org/show_bug.cgi?id=225327

  • wtf/PlatformJSCOnly.cmake:
2:21 PM Changeset in webkit [276924] by Simon Fraser
  • 3 edits in trunk/LayoutTests

REGRESSION (r274461): [macOS wk1] fast/repaint/canvas-object-fit.html is flakey text failing
https://bugs.webkit.org/show_bug.cgi?id=223283

Reviewed by Ryosuke Niwa.

WK1 repaint tests are sensitive to the timing of paints, which are controlled by
WebViewLayerFlushScheduler layerFlushCallback() timing, which in turn is affected by the
state of -[NSWindow autodisplay], which DumpRenderTree sets to NO, but we flip to YES
when we see composited layers (which canvas triggers).

To avoid this fragile mess, have the test trigger compositing early on by making the 2D
canvas context, then wait for a frame before the repaint part of the test.

  • fast/repaint/canvas-object-fit.html:
  • platform/mac-wk1/TestExpectations:
2:11 PM Changeset in webkit [276923] by Fujii Hironori
  • 2 edits in trunk/Tools

REGRESSION(r275810): [WebKitTestRunner] fast/text/basic/004.html fails after running fast/layoutformattingcontext tests
https://bugs.webkit.org/show_bug.cgi?id=225087

Reviewed by Don Olmstead.

fast/layoutformattingcontext tests enable some internal debug
settings by using the test file header. These settings weren't
reset after running the tests.

r275810 changed resetPreferencesToConsistentValues not to call
WKPreferencesResetAllInternalDebugFeatures.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
Call WKPreferencesResetAllInternalDebugFeatures.

1:34 PM Changeset in webkit [276922] by Ryan Haddad
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION(r266511): [ macOS iOS wk2 ] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-restartIce.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=216159

Unreviewed test gardening.

Rebaseline this test as the output has changed since it was marked
failing. We will need to monitor results to see if it is still flaky.

  • web-platform-tests/webrtc/RTCPeerConnection-restartIce.https-expected.txt:
1:22 PM Changeset in webkit [276921] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r276913.

Commit can cause double release

Reverted changeset:

"Transfer ownership to ARC in
speechSynthesisGetDefaultVoiceIdentifierForLocale"
https://bugs.webkit.org/show_bug.cgi?id=225312
https://commits.webkit.org/r276913

1:17 PM Changeset in webkit [276920] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Big Sur ] webrtc/video-vp8-videorange.html is faling on macmini8,1
https://bugs.webkit.org/show_bug.cgi?id=225257

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:13 PM Changeset in webkit [276919] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[iOS][FCR] Grouped <select> options should appear inline in the menu
https://bugs.webkit.org/show_bug.cgi?id=225314
<rdar://problem/76785797>

Reviewed by Wenson Hsieh.

Currently, <select> options within an <optgroup> element are presented
within an expandable/collapsible submenu. However, to better match the
visual style across the rest of the system, the grouped options should
appear inline in the root menu, and groups should be separated by a
visual separator.

Covered by existing tests. A testing-only method was updated to reflect
the changes.

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPicker createMenu]):

Used UIMenuOptionsDisplayInline to present submenus inline in the root
menu. This option separates submenus using a visual separator.

Since inline submenus do not support a title, and <optgroup> elements
can be labeled, the group title is displayed as a disabled action at
the top of the submenu.

Removed logic to promote the grouped submenu to the root menu in the
case where only one submenu contains all options, since the submenu
now appears inline, and an additional tap is no longer necessary to
view the options.

(-[WKSelectPicker actionForOptionIndex:]):

Updated this testing-only method to account for the potential existence
of an additional action representing a group title.

12:58 PM Changeset in webkit [276918] by Devin Rousso
  • 13 edits in trunk/Source

[macCatalyst] "Enter Full Screen" button in media controls disappears
https://bugs.webkit.org/show_bug.cgi?id=225210
<rdar://problem/77010150>

Reviewed by Eric Carlson.

In order for the "Enter Full Screen" media controls button to stay visible the <video>
must return true for HTMLMediaElement::webkitSupportsFullscreen, which calls into

MediaPlayerPrivate::supportsFullscreen. On macOS and iOS, this will always return true

because of ENABLE(FULLSCREEN_API), but on macCatalyst that's not enabled, so we instead
use DeprecatedGlobalSettings::avKitEnabled, but this is only set in the WebProcess (and
WK1). With the GPUProcess enabled, this value is not set, so the RemoteMediaPlayerProxy
will instead get false.

This patch removes DeprecatedGlobalSettings::avKitEnabled since it's enabled on WK1 and
non-GPUProcess WK2, and the related iOS-only SPI appears to not be used anywhere internally,
instead having callsites just check HAVE(AVKIT).

Source/WebCore:

  • page/DeprecatedGlobalSettings.h:

(WebCore::DeprecatedGlobalSettings::setAVKitEnabled): Deleted.
(WebCore::DeprecatedGlobalSettings::avKitEnabled): Deleted.

  • page/DeprecatedGlobalSettings.cpp:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen const):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::supportsVideoFullscreen const):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::supportsVideoFullscreen):

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

(+[WebPreferences initialize]):
(-[WebPreferences avKitEnabled]): Deleted.
(-[WebPreferences setAVKitEnabled:]): Deleted.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

12:56 PM Changeset in webkit [276917] by Russell Epstein
  • 3 edits in branches/safari-611.2.7.0-branch/Source/WebKit

Cherry-pick r276852. rdar://problem/77468295

prefers-reduced-motion is not reactive on iOS
https://bugs.webkit.org/show_bug.cgi?id=222381
<rdar://75933915>

Reviewed by Brent Fulgham.

With CFPrefs direct mode, there is a race between the notification that an accessibility preference has been changed
by the user, and the the in-memory Accessibility preference cache in the WebContent process. We resolve this by using
new SPI to clear the cached Accessibility settings when we are notified of an accessibility change so they always
reflect the user's most recent setting.

  • Platform/spi/Cocoa/AccessibilitySupportSPI.h:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::setPreferenceValue):

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

12:53 PM Changeset in webkit [276916] by Russell Epstein
  • 8 edits in branches/safari-611.2.7.0-branch/Source

Versioning.

WebKit-7611.2.7.0.2

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

[GTK] Build with VIDEO=OFF fails
https://bugs.webkit.org/show_bug.cgi?id=225316

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

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::isPlayingAudio): Guard against invalid media types, when video is disabled we can
safely return false here as well.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h: Include what we use (UniqueRef).
12:00 PM Changeset in webkit [276914] by ntim@apple.com
  • 2 edits in trunk/Tools

Add committer status for "Tim Nguyen" in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=225320

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
11:51 AM Changeset in webkit [276913] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Transfer ownership to ARC in speechSynthesisGetDefaultVoiceIdentifierForLocale
https://bugs.webkit.org/show_bug.cgi?id=225312
<rdar://problem/77458746>

Reviewed by Chris Fleizach.

To fix memory leak of defaultVoiceURI.

  • platform/mac/PlatformSpeechSynthesizerMac.mm:

(WebCore::speechSynthesisGetDefaultVoiceIdentifierForLocale):

11:35 AM Changeset in webkit [276912] by Wenson Hsieh
  • 3 edits in trunk/Tools

editing/selection/ios/become-key-window-when-focusing-editable-area.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=225274
rdar://77042575

Reviewed by Tim Horton.

This test is timing out on recent versions of iOS because the -becomeKeyWindow subclassing hook is no longer
invoked when calling -makeKeyWindow, in the case where the UIWindow was already the key window. The iOS
version of WebKitTestRunner on iOS was dependent on this behavior because setWindowIsKey(false) on
PlatformWebView did not actually cause the test runner window to resign from being the key window. Instead, it
only set the boolean flag PlatformWebView::m_windowIsKey, which WebKitTestRunnerWindow then uses to override
the value of -[WebKitTestRunnerWindow isKeyWindow] (effectively side-stepping platform key window state).

We can fix this by refactoring PlatformWebView::setWindowIsKey to actually make the WebKitTestRunnerWindow
resign key window when calling setWindowIsKey(false). Compared to macOS, doing this on iOS is a bit tricky
since -[UIWindow resignKeyWindow] is purely a subclassing hook that is invoked when the window loses its
status as the key window. However, we can work around this limitation by creating a separate UIWindow and
making that window key instead (which implicitly makes our current WebKitTestRunnerWindow resign key window).

  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::setWindowIsKey):

Install the other UIWindow and make it key in order to resign the current key window. Note that this window is
placed just offscreen, so that simulated taps and other gestures will continue to go to the original window.

(-[WebKitTestRunnerWindow isKeyWindow]): Deleted.

Stop overriding the platform key window state with the simulated test runner state, since we now correctly
update platform key window state when setting m_windowIsKey. This adjustment is also necessary to ensure that
we actually end up in the !isKey && m_window.keyWindow case above.

11:22 AM Changeset in webkit [276911] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Pass logging level to child processes
https://bugs.webkit.org/show_bug.cgi?id=225311
<rdar://problem/77457646>

Reviewed by Stephanie Lewis.

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

(Process.main): Set root logging level.
(TaskPool.init): Pass logging level to child process.

11:14 AM Changeset in webkit [276910] by Russell Epstein
  • 3 edits in branches/safari-612.1.12-branch/Source/WebKit

Cherry-pick r276826. rdar://problem/77463493

Remove some unneeded code.
https://bugs.webkit.org/show_bug.cgi?id=225216

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setUpAppHighlightMenusIfNeeded]): Deleted.

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

11:00 AM Changeset in webkit [276909] by Robert Jenner
  • 3 edits in trunk/LayoutTests

macOS/iOS Debug ] http/wpt/crypto/unwrap-rsa-key-crash.any.html (layout-test) is a flaky crash

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

Unreviewed test gardening.

Updating test expectations to Pass Crash due to slowing down EWS.

  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
10:43 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
10:36 AM Changeset in webkit [276908] by commit-queue@webkit.org
  • 5 edits in trunk

Remove "no-preference" value for prefers-color-scheme media query
https://bugs.webkit.org/show_bug.cgi?id=212952

Patch by Tim Nguyen <ntim@apple.com> on 2021-05-03
Reviewed by Antti Koivisto.

WPT parsing tests still fail due to: https://bugs.webkit.org/show_bug.cgi?id=225282
Updated evaluation tests to use not (prefers-color-scheme) instead.

Source/WebCore:

  • css/MediaQueryEvaluator.cpp:

(WebCore::prefersColorSchemeEvaluate):

LayoutTests:

  • css-dark-mode/older-systems/prefers-color-scheme.html:
  • css-dark-mode/prefers-color-scheme.html:
10:28 AM Changeset in webkit [276907] by Diego Pino Garcia
  • 3 edits in trunk

[GLIB] REGRESSION(r276879): Several tests are crashing or failing
https://bugs.webkit.org/show_bug.cgi?id=225292

Reviewed by Carlos Alberto Lopez Perez.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::fileIsDirectory): Return false if path is empty.

10:23 AM Changeset in webkit [276906] by Chris Dumez
  • 7 edits in trunk

Restore pre-r276879 behavior for FileSystem::deleteFile() and FileSystem::deleteEmptyDirectory()
https://bugs.webkit.org/show_bug.cgi?id=225289

Reviewed by Darin Adler.

Source/JavaScriptCore:

Fix build.

  • Configurations/JavaScriptCore.xcconfig:

Source/WTF:

Restore pre-r276879 behavior for FileSystem::deleteFile() and FileSystem::deleteEmptyDirectory() to
reduce the risk of regressions. In particular, calling FileSystem::deleteFile() on an empty directory
now fails and calling FileSystem::deleteEmptyDirectory() on a non-directory now fails.

I have also gotten rid of the macOS-specific implementation of deleteEmptyDirectory() and merged the
needed behavior (Dealing with .DS_Store files) to the generic function.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::deleteFile):
(WTF::FileSystemImpl::deleteEmptyDirectory):

  • wtf/mac/FileSystemMac.mm:

(WTF::FileSystem::deleteEmptyDirectory): Deleted.

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

10:13 AM Changeset in webkit [276905] by Kyle Piddington
  • 7 edits in trunk

[Metal ANGLE]: Fix conversions tests and remove failing test expectations
https://bugs.webkit.org/show_bug.cgi?id=225261
<rdar://77349615>

bool conversion workaround was being applied to all shaders. Correct shader translation to generate
better conversion code on platforms that don't need a workaround.

Conversions for basic types like vec2, ivec2, uvec2 were only using the first components when workaround
was active. Correct swizzle logic to get all components when doing a conversion.

Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

  • src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp:
  • src/compiler/translator/TranslatorMetalDirect/AstHelpers.cpp:

(sh::CoerceSimple):

  • src/compiler/translator/TranslatorMetalDirect/AstHelpers.h:

LayoutTests:

  • webgl/2.0.0/deqp/data/gles2/shaders/conversions-expected.txt:
  • webgl/2.0.0/deqp/data/gles3/shaders/conversions-expected.txt:
10:08 AM Changeset in webkit [276904] by Antti Koivisto
  • 8 edits
    1 add in trunk/Source/WebCore

Move Style::ScopeOrdinal to a header of its own
https://bugs.webkit.org/show_bug.cgi?id=225302

Reviewed by Alan Bujtas.

Se we don't need to include StyleScope.h everywhere via Animation.h.

  • WebCore.xcodeproj/project.pbxproj:
  • animation/KeyframeEffect.cpp:
  • css/DOMCSSRegisterCustomProperty.cpp:
  • platform/animation/Animation.h:
  • style/ElementRuleCollector.h:
  • style/StyleScope.h:

(WebCore::Style::operator++): Deleted.

  • style/StyleScopeOrdinal.h: Added.

(WebCore::Style::operator++):

9:38 AM Changeset in webkit [276903] by Ruben Turcios
  • 31 edits
    2 adds in branches/safari-612.1.12-branch

Cherry-pick r276853. rdar://problem/77458363

[iOS] Add a heuristic to determine whether a synthetic click triggered any meaningful changes
https://bugs.webkit.org/show_bug.cgi?id=225240
rdar://77221196

Reviewed by Tim Horton.

Source/WebCore:

Add plumbing for a ChromeClient hook that's called when a mousedown or mouseup event is either prevented by
the page, or handled with a default event handler on the element (e.g. when clicking a link).

Test: fast/events/ios/did-not-handle-meaningful-click.html

  • page/ChromeClient.h: (WebCore::ChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent):
  • page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): (WebCore::EventHandler::handleMouseDoubleClickEvent): (WebCore::EventHandler::handleMouseReleaseEvent):

Source/WebKit:

Add a simple heuristic to inform WKWebView iOS clients when a tap either failed to result in a synthetic click,
or resulted in a synthetic click that (probably) didn't have any "meaningful side effects". While this notion of
"meaningfulness" isn't well defined, the idea behind the heuristic is that it should distinguish between taps on
clickable elements like buttons or links that trigger some noticable change on the page, vs. taps on both
clickable or non-clickable elements that do not trigger any changes on the page.

For instance on a news-article-like page, this delegate method should be invoked when tapping on paragraph text
in the article, even if there is a click handler over the entire article or even body element. However, tapping
a link or a button on the same page should not cause this delegate method to be invoked. Additionally, if the
page explicitly prevents default behavior during a synthetic mouse event, this method should also *not* be
invoked.

This behavior is roughly similar to the existing delegate method -_webView:didNotHandleTapAsClickAtPoint:,
except that this variant allows for more wiggle room around what constitutes a "meaningful" interaction with the
page.

  • UIProcess/API/APIUIClient.h: (API::UIClient::didNotHandleTapAsMeaningfulClickAtPoint):
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm: (-[WKWebView _didNotHandleTapAsMeaningfulClickAtPoint:]):

See Tools/ChangeLog for more details about this testing hook.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::didNotHandleTapAsMeaningfulClickAtPoint):
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::didNotHandleTapAsMeaningfulClickAtPoint):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didNotHandleTapAsMeaningfulClickAtPoint):
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent):
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::isProbablyMeaningfulClick):

Implement the core of the heuristic here. For now, it just examines the size of the click target. This isn't
going to satisfy the case where a page installs a click event handler on the body element (or a similar
element that encapsulates most of the page) and then performs hit-testing in their script, but it's somewhere to
start.

(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::attemptSyntheticClick):
(WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::commitPotentialTapFailed):

Tools:

Add test runner plumbing to test the new heuristic. Note that we can't just utilize the WKUIDelegatePrivate
method directly, since we end up overriding the web view's UIClient via WKPageSetPageUIClient, so the call
to m_uiClient->didNotHandleTapAsMeaningfulClickAtPoint(point); ends up being a no-op.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage):
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::installDidNotHandleTapAsMeaningfulClickCallback): (WTR::TestRunner::callDidNotHandleTapAsMeaningfulClickCallback):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp: (WTR::TestController::didNotHandleTapAsMeaningfulClick):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didNotHandleTapAsMeaningfulClick):
  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView _didNotHandleTapAsMeaningfulClickAtPoint:]):

LayoutTests:

  • fast/events/ios/did-not-handle-meaningful-click-expected.txt: Added.
  • fast/events/ios/did-not-handle-meaningful-click.html: Added.

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

8:58 AM Changeset in webkit [276902] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[Multi-column] Remove spanner placeholder when the spanner becomes nested
https://bugs.webkit.org/show_bug.cgi?id=225248
<rdar://77326189>

Reviewed by Antti Koivisto.

Source/WebCore:

Columns spanners (and their subtrees) are moved out of the RenderMultiColumnFlow subtree next to their RenderMultiColumnSet renderers.
Placeholder renderers are inserted at the original position e.g.

<div id=A style="column-count: 2;"><div id=B><div id=C style="column-span: all;"></div></div></div>

RenderBlockFlow (A) (<div column-count: 2>)

RenderMultiColumnFlow

RenderBlockFlow (B) (<div>)

RenderBlockFlow (C) (<div>)

RenderMultiColumnSpannerPlaceholder (placeholder for D)

RenderBlockFlow (D) (<div column-span: all>)
RenderMultiColumnSet

Now if (C) becomes a column spanner, we need to move the descendant spanner (D) back to its original position and move the subtree out starting from the outermost spanner (C).
RenderTreeUdpater normally solves this by tearing down the new spanner (and its subtree) when the 'column-spanner' property changes.
However this spanner property is essentially ignored for floats and out-of-flow boxes (we don't make them spanning the columns) and changing "float" and/or "position" makes
spanners active.

Test: fast/multicol/span/float-becomes-spanner-crash.html

  • style/StyleChange.cpp:

(WebCore::Style::determineChange):

LayoutTests:

  • TestExpectations:
  • fast/multicol/span/float-becomes-spanner-crash-expected.txt: Added.
  • fast/multicol/span/float-becomes-spanner-crash.html: Added.
8:58 AM Changeset in webkit [276901] by Aditya Keerthi
  • 9 edits
    2 adds in trunk

[iOS] Crash when tapping fields on cycle.travel
https://bugs.webkit.org/show_bug.cgi?id=225259
<rdar://problem/77386417>

Reviewed by Wenson Hsieh.

Source/WebKit:

The From/To fields on cycle.travel have a click handler that presents
a popover. The popover is presented by changing its display property
from "none" to "block", and contains an input element with the "autofocus"
attribute. After changing the popover element's display property, the
page focuses another element by calling focus().

In WebKit, focusing an element sends an IPC message from the WebProcess
to the UIProcess, so that UIProcess knows of the focused element and
can present the necessary UI. All relevant information about the element
is encoded in a FocusedElementInformation struct, which is populated by
WebPage::getFocusedElementInformation.

Prior to populating the FocusedElementInformation,
getFocusedElementInformation performs a layout if needed,
so that the information sent to the UIProcess is up-to-date. In this
instance, a layout is needed after the popover element's display
property is changed. Then, since the page immediately focuses another
element after the display change, WebKit calls
getFocusedElementInformation prior to the layout being performed.
getFocusedElementInformation then sees that a layout is needed, and
triggers the pending layout.

Now, since since the popover contains an element with "autofocus",
another element is focused as a post-layout task. This means that the
layout triggered by getFocusedElementInformation changes the focused
element. r256401 added an early return in this case, to prevent a null
pointer deref.

An early return in getFocusedElementInformation leaves the passed-in
FocusedElementInformation in an inconsistent state. In particular,
the FocusedElementInformation's elementContext is left with invalid
identifiers. Currently, all callers of getFocusedElementInformation do
not check whether the information is in a valid state. Consequently,
the caller (in this case, WebPage::elementDidFocus) proceeds to send
an IPC message with the FocusedElementInformation as one of the
arguments. Then, a release assert is hit as sending IPC messages with
invalid arguments is unsafe.

To fix, make getFocusedElementInformation return an optional
FocusedElementInformation, rather than populating a parameter that
could be left in an invalid state. Then, any early returns can return
WTF::nullopt, to signify that we were unable to generate a valid
FocusedElementInformation. Finally, whenever the method returns
nullopt, we do not send the IPC message (or in another case, send a
message with nullopt).

Test: fast/forms/focus-change-after-layout-update-during-focus-crash.html

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

(-[WKContentView updateCurrentFocusedElementInformation:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::requestFocusedElementInformation):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::elementDidFocus):

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

(WebKit::WebPage::requestFocusedElementInformation):
(WebKit::WebPage::focusedElementInformation):

LayoutTests:

  • fast/forms/focus-change-after-layout-update-during-focus-crash-expected.txt: Added.
  • fast/forms/focus-change-after-layout-update-during-focus-crash.html: Added.
8:54 AM Changeset in webkit [276900] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Add some missing exception checks before some jsCasts.
https://bugs.webkit.org/show_bug.cgi?id=225264
rdar://77381608

Reviewed by Saam Barati.

Introducing JSObject::getAs() and JSValue::getAs() convenience methods that will
check for an exception before doing a jsCast on the get result. We only need this
to placate the assertion in jsCast in the event a pending exception exists at the
time of the jsCast. If ASSERTs are not enabled, this will be a no-op. All clients
that use jsCast this way (and now use getAs instead) will already be doing an
exception check immediately after. Hence, they are already doing the right thing
in terms of handling exceptions. We're only placating the jsCast assertion here.

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::hostResolveImportedModule):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::getAs const):

  • runtime/JSInternalPromise.cpp:

(JSC::JSInternalPromise::then):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::dependencyKeysIfEvaluated):
(JSC::JSModuleLoader::provideFetch):
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::requestImportModule):

  • runtime/JSObject.h:

(JSC::JSObject::getAs const):

  • runtime/JSPromise.cpp:

(JSC::JSPromise::createDeferredData):

  • runtime/VM.h:
8:02 AM Changeset in webkit [276899] by weinig@apple.com
  • 30 edits in trunk

Remove default parameter values for color space and pixel format from ImageBuffer::create to make it clear everwhere we are explicitly requesting SRGB/BGRA8 buffers
https://bugs.webkit.org/show_bug.cgi?id=225288

Reviewed by Anders Carlsson.

Source/WebCore:

To make it super clear exactly what type of ImageBuffers we are creating, this
removes the default parameters for the scale, color space and pixel format from
the ImageBuffer::create() functions.

This allows us to easily see exactly where we are creating 8-bit sRGB buffers
and potentially losing non-sRGB and wide (> 8-bit) source data. In practice, many
of these sites are wrong and should be updated to use a color space and pixel
format matching the source they are going to be copying/buffering.

I did not update the ImageBuffer::createCompatibleBuffer, as it is less clear what
to do about them, or what exactly is meant by "compatible", as it seems to be
inconsistent from one to the other.

Ultimately, if we want to make it easy to create an ImageBuffer that has the same
underlying characteristics of whatever a GraphicsContext is drawing to, we will need
to update GraphicsContext to be able to provide scale, color space and pixel format
information directly. This will probably require some new mechanism for representing
color space that can either be a DestinationColorSpace or a platform specific color
space object (e.g. CGColorSpaceRef).

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):

  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::ArtworkImageLoader::notifyFinished):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createImageBuffer):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::createCompositingBuffer):

  • html/canvas/ImageBitmapRenderingContext.cpp:

(WebCore::ImageBitmapRenderingContext::setOutputBitmap):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):

  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):
(WebCore::InspectorCanvas::buildArrayForCanvasPattern):

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRectWithClip):

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame):

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::getScratchBuffer):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawShadowLayer):

  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:

(WebCore::FilterEffectRendererCoreImage::renderToImageBuffer):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::imageBufferResult):
(WebCore::FilterEffect::convertImageDataToColorSpace):
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::createImageBufferResult):

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

(Nicosia::GCGLLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::imageBuffer const):

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::allocateBackingStoreIfNeeded):

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::createImageBuffer):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::imageForCurrentSharingServicePickerItem):
Pass arguments explicitly that were previously default values.

Tools:

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:

(TestWebKitAPI::TEST):
Pass arguments explicitly that were previously default values.

7:04 AM Changeset in webkit [276898] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Remove unused gtk_im_multicontext_get_slave from valgrind/suppressions.txt
https://bugs.webkit.org/show_bug.cgi?id=225300

Reviewed by Žan Doberšek.

  • Scripts/valgrind/suppressions.txt:
5:51 AM ASanWebKit edited by fred.wang@free.fr
(diff)
5:29 AM Changeset in webkit [276897] by magomez@igalia.com
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Properly reset WebKitWebView's responsiveness flag
https://bugs.webkit.org/show_bug.cgi?id=225291

Reviewed by Alicia Boya Garcia.

Reset the web process responsiveness flag whenever the web process is terminated.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewWebProcessTerminated):
(webkit_web_view_terminate_web_process):

4:00 AM Changeset in webkit [276896] by commit-queue@webkit.org
  • 24 edits
    2 adds in trunk

[WASM-Function-References] Add call_ref instruction
https://bugs.webkit.org/show_bug.cgi?id=222903

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-05-03
Reviewed by Yusuke Suzuki.

JSTests:

Add basic tests for new call_ref instruction:
https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md.
Add tests for calling same-instance wasm function, foreign-instance
wasm function and for calling imported js function.

  • wasm.yaml:
  • wasm/function-references/call_ref.js: Added.

(module):
(async basics):
(async indirectCall):
(async importHostCall):

  • wasm/wasm.json:

Source/JavaScriptCore:

Add support for call_ref instruction from the typed function
references proposal: https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md.
call_ref calls the given function references from the stack
and it does almost the same stuff as call_indirect but
it doesn't check signatures because wasm types system guaranties
correctness.

  • bytecode/BytecodeList.rb:
  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • llint/LowLevelInterpreter.asm:
  • llint/WebAssembly.asm:
  • runtime/Gate.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::addCallRef):
(JSC::Wasm::AirIRGenerator::emitIndirectCall):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::B3IRGenerator::addCallRef):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::addCallRef):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::doWasmCallRef):
(JSC::LLInt::WASM_SLOW_PATH_DECL):

  • wasm/WasmSlowPaths.h:
  • wasm/js/JSWebAssemblyTable.cpp:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::WebAssemblyFunction):

  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyFunctionBase.cpp:

(JSC::WebAssemblyFunctionBase::WebAssemblyFunctionBase):

  • wasm/js/WebAssemblyFunctionBase.h:

(JSC::WebAssemblyFunctionBase::offsetOfEntrypointLoadLocation):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::WebAssemblyWrapperFunction):

  • wasm/js/WebAssemblyWrapperFunction.h:
  • wasm/wasm.json:
2:29 AM Changeset in webkit [276895] by Chris Lord
  • 7 edits in trunk

Decoding an SVG off the main thread causes a crash
https://bugs.webkit.org/show_bug.cgi?id=206055

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline OffscreenCanvas SVG tests.

  • web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.worker-expected.txt:

Source/WebCore:

Use BitmapImage::create instead of Image::create in ImageBitmap. This
bypasses use of SVGImage and PDFDocumentImage, which are not safe to
use off the main thread.

No new tests, rebaselined existing tests.

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createFromBuffer):

Use BitmapImage instead of Image.

  • platform/graphics/Image.cpp:

(WebCore::Image::create):

Add main-thread assert on Image creation.

LayoutTests:

Enable OffscreenCanvas SVG tests.

  • platform/glib/TestExpectations:
2:24 AM Changeset in webkit [276894] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

getPropertyValue for url path doesn't return the "#" character
https://bugs.webkit.org/show_bug.cgi?id=215409

Patch by Rob Buis <rbuis@igalia.com> on 2021-05-03
Reviewed by Youenn Fablet.

Address post review comments.

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::svgPropertyValue):

1:16 AM Changeset in webkit [276893] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r276633): fast/mediastream/media-stream-track-interrupted.html is consistently timing out
https://bugs.webkit.org/show_bug.cgi?id=225204
<rdar://problem/77338070>

Reviewed by Eric Carlson.

Reverting to RecursiveLock since resuming a unit will make it notify to unmute sources.
Sources will want to restart audio, thus restarting the unit synchronously.
This triggers the unit to tell its clients that it is restarting, which creates a dead lock.
We should probably update the code to change this, but as a short term fix, we revert to a RecursiveLock.

Covered by fast/mediastream/media-stream-track-interrupted.html no longer timing out.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::audioSamplesAvailable):

  • platform/mediastream/mac/BaseAudioSharedUnit.h:
1:12 AM Changeset in webkit [276892] by youenn@apple.com
  • 16 edits in trunk

Use OptionSet for MediaProducer::MutedStateFlags
https://bugs.webkit.org/show_bug.cgi?id=224550
<rdar://problem/76960294>

Reviewed by Eric Carlson.

Source/WebCore:

Refactoring to improve type safety.
No change of behavior.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::updateCaptureAccordingToMutedState):
(WebCore::MediaStreamTrack::updateToPageMutedState):

  • page/MediaProducer.h:
  • page/Page.h:

(WebCore::Page::isAudioMuted const):
(WebCore::Page::isMediaCaptureMuted const):

  • testing/Internals.cpp:

(WebCore::Internals::setPageMuted):

Source/WebKit:

Update to use new OptionSet MediaProducer::MutedStateFlags.
Fix a potential bug in case the page is video capture muted, covered by updated API test.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::decode):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetMuted):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setMicrophoneCaptureState:completionHandler:]):
(-[WKWebView setCameraCaptureState:completionHandler:]):
(-[WKWebView _setPageMuted:]):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_set_is_muted):

  • UIProcess/Cocoa/MediaUtilities.mm:

(WebKit::toWKMediaMutedState):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateActivityState):

  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::TEST):

12:49 AM Changeset in webkit [276891] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Updated expectations with latest failures from GTK release bot.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:02 AM Changeset in webkit [276890] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

IPC::Semaphore operations ASSERT when the semaphore has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=225142
<rdar://problem/76178000>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-03
Reviewed by Chris Dumez.

Add KERN_TERMINATED to the expected return values of semaphore_{signal,wait,timedwait} calls.

  • Platform/IPC/darwin/IPCSemaphoreDarwin.cpp:

(IPC::Semaphore::signal):
(IPC::Semaphore::wait):
(IPC::Semaphore::waitFor):

Note: See TracTimeline for information about the timeline view.