Timeline
Mar 17, 2022:
- 9:23 PM Changeset in webkit [291466] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r287753): Settings: checkboxes are smaller and no longer vertically align with related text
https://bugs.webkit.org/show_bug.cgi?id=237745
<rdar://problem/90129658>
Reviewed by Devin Rousso.
After r287753,
font-sizeno longer affects the size of the checkboxes.
Usewidthandheightto make the checkbox the expected size.
- UserInterface/Views/SettingsTabContentView.css:
(.content-view.tab.settings > .settings-view > .container > .editor-group > .setting-editor input[type="checkbox"]):
- 8:17 PM Changeset in webkit [291465] by
-
- 2 edits in trunk/Source/WebKit
Call doDailyActivityInManager on main thread in adattributiond
https://bugs.webkit.org/show_bug.cgi?id=238059
<rdar://90335028>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-17
Reviewed by Tim Horton.
It turns out that xpc activities don't happen on the main thread.
Everything else in adattributiond happens on the main thread (except database operations)
and to be thread safe this also needs to happen on the main thread.
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
(WebKit::registerScheduledActivityHandler):
- 7:33 PM Changeset in webkit [291464] by
-
- 5 edits2 adds in trunk
Subgrid items should always be stretched.
https://bugs.webkit.org/show_bug.cgi?id=237628
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-grid/subgrid/subgrid-stretch-expected.html: Added.
- web-platform-tests/css/css-grid/subgrid/subgrid-stretch.html: Added.
Added new WPT test covering various width/height and alignement contraints that should be
ignored since subgrids are always stretched.
Source/WebCore:
Fixes https://drafts.csswg.org/css-grid-2/#subgrid-box-alignment
Test: imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-stretch.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInFragment const):
(WebCore::RenderBox::hasStretchedLogicalHeight const):
(WebCore::RenderBox::hasStretchedLogicalWidth const):
- rendering/RenderBox.h:
Makes computeLogicalWidthInFragment use the override logical width for grid items
if it's been set, as we already do for height. We don't early return, so that margins
still get computed relative to this width.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching const):
(WebCore::RenderGrid::alignSelfForChild const):
(WebCore::RenderGrid::justifySelfForChild const):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::applySubgridStretchAlignmentToChildIfNeeded):
- rendering/RenderGrid.h:
Sets the required override width/height size on subgrid items so that they get
stretched.
- 7:30 PM Changeset in webkit [291463] by
-
- 12 edits1 add in trunk/Source/WebCore
[IFC][Integration] Introduce LineSelection
https://bugs.webkit.org/show_bug.cgi?id=237997
Reviewed by Antti Koivisto.
Use LineSelection to retrieve line based selection information.
This is in preparation for removing selection/hittesting related functions from InlineIterator::Line.
- WebCore.xcodeproj/project.pbxproj:
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):
- layout/integration/InlineIteratorLine.h:
- layout/integration/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::TextBox::selectionRect const):
- layout/integration/LineSelection.h: Added.
(WebCore::LineSelection::logicalTop):
(WebCore::LineSelection::logicalBottom):
(WebCore::LineSelection::logicalRect):
(WebCore::LineSelection::physicalRect):
(WebCore::LineSelection::logicalTopAdjustedForPrecedingBlock):
(WebCore::LineSelection::logicalHeightAdjustedForPrecedingBlock):
(WebCore::LineSelection::selectionState):
- rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForLinePosition):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustEnclosingTopForPrecedingBlock const):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionGeometries):
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionGeometries):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
- rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintBackground):
- 6:39 PM Changeset in webkit [291462] by
-
- 1 copy in tags/Safari-614.1.6
Tag Safari-614.1.6.
- 6:39 PM Changeset in webkit [291461] by
-
- 1 delete in tags/Safari-614.1.6
Delete tag.
- 6:26 PM Changeset in webkit [291460] by
-
- 6 edits in branches/safari-614.1.6-branch/Source
Cherry-pick r291455. rdar://problem/90449608
libANGLE-shared.dylib, libwebrtc.dylib & WebGPU install names are prefixed with the system content path
https://bugs.webkit.org/show_bug.cgi?id=238058
Reviewed by Mark Lam.
Source/ThirdParty/ANGLE:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/libwebrtc.xcconfig:
Source/WebGPU:
We need to set DYLIB_INSTALL_NAME_BASE for WK_USE_ALTERNATE_FRAMEWORKS_DIR installs without the
system content path prefix.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/WebGPU.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:19 PM Changeset in webkit [291459] by
-
- 1 copy in tags/Safari-614.1.5.14
Tag Safari-614.1.5.14.
- 6:18 PM Changeset in webkit [291458] by
-
- 6 edits in branches/safari-614.1.5-branch/Source
Cherry-pick r291455. rdar://problem/90449608
libANGLE-shared.dylib, libwebrtc.dylib & WebGPU install names are prefixed with the system content path
https://bugs.webkit.org/show_bug.cgi?id=238058
Reviewed by Mark Lam.
Source/ThirdParty/ANGLE:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/libwebrtc.xcconfig:
Source/WebGPU:
We need to set DYLIB_INSTALL_NAME_BASE for WK_USE_ALTERNATE_FRAMEWORKS_DIR installs without the
system content path prefix.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/WebGPU.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:15 PM Changeset in webkit [291457] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.14
- 5:48 PM Changeset in webkit [291456] by
-
- 2 edits in trunk/Source/WTF
tryReserveUncommittedAligned should round up to alignment not bytes requested
https://bugs.webkit.org/show_bug.cgi?id=238052
Reviewed by Yusuke Suzuki.
- wtf/posix/OSAllocatorPOSIX.cpp:
(WTF::OSAllocator::tryReserveUncommittedAligned):
- 5:46 PM Changeset in webkit [291455] by
-
- 6 edits in trunk/Source
libANGLE-shared.dylib, libwebrtc.dylib & WebGPU install names are prefixed with the system content path
https://bugs.webkit.org/show_bug.cgi?id=238058
Reviewed by Mark Lam.
Source/ThirdParty/ANGLE:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/libwebrtc.xcconfig:
Source/WebGPU:
We need to set DYLIB_INSTALL_NAME_BASE for WK_USE_ALTERNATE_FRAMEWORKS_DIR installs without the
system content path prefix.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/WebGPU.xcconfig:
- 5:18 PM Changeset in webkit [291454] by
-
- 2 edits in trunk/Tools
configure-xcode-for-embedded-development fails with Xcode 13.3
https://bugs.webkit.org/show_bug.cgi?id=237994
<rdar://problem/90455614>
Reviewed by Ryan Haddad.
- Tools/Scripts/configure-xcode-for-embedded-development: Handle different xcspec locations in XCode 13.3.
Canonical link: https://commits.webkit.org/248576@main
- 5:14 PM Changeset in webkit [291453] by
-
- 1 copy in tags/Safari-614.1.6
Tag Safari-614.1.6.
- 5:10 PM Changeset in webkit [291452] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r291129-r291128): [WK1 EWS] 3 imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/* tests are a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238054
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 5:08 PM Changeset in webkit [291451] by
-
- 2 edits in trunk/Source/WebCore
[Apple Pay] REGRESSION(r283431):
HAVE_PASSKIT_PAYMENT_METHOD_BILLING_ADDRESSwas removed without also removing where it was used
https://bugs.webkit.org/show_bug.cgi?id=238056
<rdar://problem/89940620>
Reviewed by Tim Horton.
- Modules/applepay/cocoa/PaymentMethodCocoa.mm:
(WebCore::convert):
- 4:48 PM Changeset in webkit [291450] by
-
- 5 edits in trunk/LayoutTests
Make Emoji gender tests more robust
https://bugs.webkit.org/show_bug.cgi?id=238057
<rdar://problem/88842010>
Unreviewed.
U+26F9 PERSON WITH BALL might have a non-emoji glyph, so we can't expect it to
always render in its emoji form without a variation selector.
- fast/text/emoji-gender-2-3-expected.html:
- fast/text/emoji-gender-2-3.html:
- fast/text/emoji-gender-fe0f-3-expected.html:
- fast/text/emoji-gender-fe0f-3.html:
- 4:41 PM Changeset in webkit [291449] by
-
- 2 edits in trunk/LayoutTests
Make fast/text/emoji-num-glyphs.html more robust
https://bugs.webkit.org/show_bug.cgi?id=238055
<rdar://problem/88842010>
Unreviewed.
U+26F9 PERSON WITH BALL might have a non-emoji glyph. If it has one, and the OS prefers it over the
emoji glyph, then this test will fail. The solution is to use the emoji-style variation selector
to specifically request the emoji form.
- fast/text/emoji-num-glyphs.html:
- 4:34 PM Changeset in webkit [291448] by
-
- 4 edits in trunk/Source
Fix crash in Bleacher Report due to bad JSObjectRef passed to API
https://bugs.webkit.org/show_bug.cgi?id=238048
<rdar://88766464>
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Prior to the StructureID overhaul the JSObjectGetArrayBufferByteLength would
automatically check if the JSObjectRef passed to that function was null before
short circuiting to the non-typed array return value, 0. While technically valid
since derefencing null is UB, this meant the Clang was covering up this crash.
To fix this I'm adding an app specific workaround for the time being so Bleacher
Report can fix their code to no longer pass this nullptr.
- API/JSTypedArray.cpp:
(isBleecherReport):
(JSObjectGetArrayBufferByteLength):
Source/WTF:
- wtf/cocoa/RuntimeApplicationChecksCocoa.h:
- 3:55 PM Changeset in webkit [291447] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Fix the 32-bit build
https://bugs.webkit.org/show_bug.cgi?id=238053
Unreviewed.
- WebGPU/Buffer.mm:
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::mapAsync):
- 3:07 PM Changeset in webkit [291446] by
-
- 2 edits in trunk/Source/WebCore
Microsoft Teams fails to launch from Safari
https://bugs.webkit.org/show_bug.cgi?id=238045
<rdar://90434296>
Reviewed by Geoffrey Garen.
Extend MS Teams quirk to teams.microsoft.com, not just teams.live.com.
- page/Quirks.cpp:
(WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):
- 2:57 PM Changeset in webkit [291445] by
-
- 4 edits in trunk/Source/WebKit
[iOS] Support PDF search when using a find interaction
https://bugs.webkit.org/show_bug.cgi?id=237408
rdar://89437334
Reviewed by Wenson Hsieh.
Ensure that PDFs can be searched when using a _UIFindInteraction by
making WKPDFView conform to _UITextSearching.
The implementation is a thin wrapper around existing find SPI on
PDFHostViewController. Found ranges in PDFs are uniquely identified
by an index, as more detailed range information is not exposed. Unlike
web content, there is currently no requirement to support restorable
found ranges for PDFs, making indexes safe to use.
- UIProcess/API/ios/WKWebViewIOS.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
Use WKPDFView or WKContentView as the searchable object, depending on
the loaded content.
(-[WKWebView _didCommitLoadForMainFrame]):
(-[WKWebView _searchableObject]):
(-[WKWebView _setFindInteractionEnabled:]):
- UIProcess/ios/WKPDFView.mm:
(+[WKPDFFoundTextRange foundTextRangeWithIndex:]):
(-[WKPDFFoundTextRange start]):
(-[WKPDFFoundTextRange end]):
(-[WKPDFFoundTextRange isEmpty]):
(+[WKPDFFoundTextPosition textPositionWithIndex:]):
(-[WKPDFView dealloc]):
(-[WKPDFView pdfHostViewController:findStringUpdate:done:]):
(-[WKPDFView selectedTextRange]):
(-[WKPDFView compareFoundRange:toRange:inDocument:]):
(-[WKPDFView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKPDFView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKPDFView clearAllDecoratedFoundText]):
- 2:41 PM Changeset in webkit [291444] by
-
- 1 copy in tags/Safari-614.1.5.13
Tag Safari-614.1.5.13.
- 2:28 PM Changeset in webkit [291443] by
-
- 4 edits in trunk
Disable push features in CaptivePortal mode
https://bugs.webkit.org/show_bug.cgi?id=237981
<rdar://88897228>
Reviewed by Chris Dumez.
We should not support push features when running in a Captive Portal.
Source/WebKit:
Tests: TestWebKitAPI
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 2:21 PM Changeset in webkit [291442] by
-
- 5 edits in trunk/Source/WebCore
[GTK][WPE] m_compositorThread ASSERT in TextureMapper classes can just be used in debug mode
https://bugs.webkit.org/show_bug.cgi?id=238020
Patch by Alejandro G. Castro <alex@igalia.com> on 2022-03-17
Reviewed by Michael Catanzaro.
This is a build fix for the case where someone compiles release
with asserts activated.
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:
(WebCore::TextureMapperPlatformLayerProxyDMABuf::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::invalidate):
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h:
- platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp:
(WebCore::TextureMapperPlatformLayerProxyGL::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyGL::invalidate):
- platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.h:
- 2:19 PM Changeset in webkit [291441] by
-
- 7 edits4 adds in trunk
PerformanceNavigationTiming Response Start unavailable when using Service Worker Cache
https://bugs.webkit.org/show_bug.cgi?id=237317
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-17
Reviewed by Youenn Fablet.
Source/WebCore:
- Modules/cache/DOMCache.cpp:
(WebCore::createResponse):
- page/PerformanceNavigationTiming.cpp:
(WebCore::PerformanceNavigationTiming::navigationFinished):
- platform/network/NetworkLoadMetrics.cpp:
(WebCore::NetworkLoadMetrics::updateFrom):
(WebCore::NetworkLoadMetrics::NetworkLoadMetrics): Deleted.
- platform/network/NetworkLoadMetrics.h:
LayoutTests:
Test that these values are reasonable after loading the main resource from a service worker's cache.
- http/wpt/service-workers/navigation-timing.https-expected.txt: Added.
- http/wpt/service-workers/navigation-timing.https.html: Added.
- http/wpt/service-workers/navigation-timing.js: Added.
(event.event.waitUntil.caches.open.string_appeared_here.then):
(event.event.respondWith.caches.open.string_appeared_here.then):
- http/wpt/service-workers/resources/navigation-timing-part-2.html: Added.
- 2:12 PM Changeset in webkit [291440] by
-
- 2 edits in trunk/Tools
[Merge-Queue] Remove merge-queue labels when blocking PR
https://bugs.webkit.org/show_bug.cgi?id=237964
<rdar://problem/90372805>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin.add_label): Renamed from modify_label, only handle add case
because removal case requires 'get' request first.
(GitHubMixin.remove_labels): Remove list of labels from PR.
(BlockPullRequest.start): Remove merge-queue labels.
(BlockPullRequest.getResultSummary): Add label name in results summary.
(GitHubMixin.modify_label): Renamed add_label.
Canonical link: https://commits.webkit.org/248564@main
- 1:56 PM Changeset in webkit [291439] by
-
- 4 edits in trunk/Source/WebGPU
[WebGPU] Fix 32-bit build
https://bugs.webkit.org/show_bug.cgi?id=238046
Unreviewed.
- WebGPU/Buffer.h:
(WebGPU::Buffer::size const):
- WebGPU/Buffer.mm:
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::validateMapAsync const):
(WebGPU::Buffer::mapAsync):
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::clearBuffer):
- 1:34 PM Changeset in webkit [291438] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Fix build breakage from r291361
https://bugs.webkit.org/show_bug.cgi?id=238043
rdar://90447279
Unreviewed build fix.
- platform/ios/WebAVPlayerController.mm: Declare AVMetadataItem.
- 1:25 PM Changeset in webkit [291437] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r290835.
https://bugs.webkit.org/show_bug.cgi?id=238044
Disruptive change
Reverted changeset:
"[iOS] Hard link AVPictureInPictureController"
https://bugs.webkit.org/show_bug.cgi?id=237227
https://commits.webkit.org/r290835
- 1:22 PM Changeset in webkit [291436] by
-
- 2 edits in trunk/Tools
compare-results should break down sync vs async time in Speedometer2
https://bugs.webkit.org/show_bug.cgi?id=237993
Reviewed by Alexey Shvayka.
- Scripts/compare-results:
(speedometer2Breakdown):
(speedometer2BreakdownSyncAsync):
(dumpBreakdowns):
(getOptions):
(main):
- 1:19 PM Changeset in webkit [291435] by
-
- 7 edits in trunk
Avoid calling connectionClosedFromServer on a connection twice when a version change is active
https://bugs.webkit.org/show_bug.cgi?id=215271
Reviewed by Sihui Liu.
Source/WebCore:
Since bug 203690, all IDB work is done on a single background thread.
A consequence of this change is that there are states when
UniqueIDBDatabase::m_versionChangeDatabaseConnection is also in
m_openDatabaseConnections. We should avoid calling
connectionClosedFromServer on the same connection twice, since that
can result in a spurious second error event being sent to the
IDBDatabase JS object if connections are closed while a version chnge
is in progress.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::immediateClose):
LayoutTests:
- platform/ios-wk2/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
Remove test flakiness annotations.
- 1:18 PM Changeset in webkit [291434] by
-
- 2 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291433. rdar://problem/90431433
Removed telemetry from Networking.sb
https://bugs.webkit.org/show_bug.cgi?id=238026
Patch by Adam Mazander <mazander@apple.com> on 2022-03-17
Reviewed by Per Arne Vollan.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:14 PM Changeset in webkit [291433] by
-
- 2 edits in trunk/Source/WebKit
Removed telemetry from Networking.sb
https://bugs.webkit.org/show_bug.cgi?id=238026
Patch by Adam Mazander <mazander@apple.com> on 2022-03-17
Reviewed by Per Arne Vollan.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 1:12 PM Changeset in webkit [291432] by
-
- 2 edits1 delete in trunk/Tools
Delete Tools/jsc-cli in favor of the jsc target in JavaScriptCore itself
https://bugs.webkit.org/show_bug.cgi?id=238042
Rubber-stamped by Saam Barati.
The last time jsc-cli was substantively modified was 8 years ago. On the other
hand, the jsc target in JavaScriptCore serves the same purpose, and is actively
maintained.
- Scripts/build-jsc:
- jsc-cli/jsc-cli.xcodeproj/project.pbxproj: Removed.
- jsc-cli/jsc-cli/CLIInstance.h: Removed.
- jsc-cli/jsc-cli/CLIInstance.m: Removed.
- jsc-cli/jsc-cli/JSModule.h: Removed.
- jsc-cli/jsc-cli/JSModule.m: Removed.
- jsc-cli/jsc-cli/JSRunLoopThread.h: Removed.
- jsc-cli/jsc-cli/JSRunLoopThread.m: Removed.
- jsc-cli/jsc-cli/ReadEvalPrintLoop.h: Removed.
- jsc-cli/jsc-cli/ReadEvalPrintLoop.m: Removed.
- jsc-cli/jsc-cli/RunLoopThread.h: Removed.
- jsc-cli/jsc-cli/RunLoopThread.m: Removed.
- jsc-cli/jsc-cli/ScriptInputSource.h: Removed.
- jsc-cli/jsc-cli/ScriptInputSource.m: Removed.
- jsc-cli/jsc-cli/main.m: Removed.
- 1:09 PM Changeset in webkit [291431] by
-
- 2 edits in trunk/Source/WebKit
[model] loading spinner doesn't show on iOS
https://bugs.webkit.org/show_bug.cgi?id=238029
rdar://89698998
Reviewed by Dean Jackson.
We must wait until a WKModelView has non-zero bounds to create the backing ASVInlinePreview
so that the ARQL views are all sized to display the loading spinner correctly.
- UIProcess/ios/WKModelView.mm:
(-[WKModelView initWithModel:]):
(-[WKModelView createPreview]):
(-[WKModelView layoutSubviews]):
(-[WKModelView updateBounds]):
- 1:08 PM Changeset in webkit [291430] by
-
- 1 copy in tags/Safari-613.2.3
Tag Safari-613.2.3.
- 1:00 PM Changeset in webkit [291429] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r291352.
https://bugs.webkit.org/show_bug.cgi?id=238039
Disruptive change
Reverted changeset:
"Incorrect header name used in has_include"
https://bugs.webkit.org/show_bug.cgi?id=237914
https://commits.webkit.org/r291352
- 12:56 PM Changeset in webkit [291428] by
-
- 7 edits2 adds in trunk
Source/WebKit:
Add read and write methods to JSIPCStreamConnectionBuffer
https://bugs.webkit.org/show_bug.cgi?id=237730
rdar://problem/89676460
Patch by Simon Lewis <simon.lewis@apple.com> on 2022-03-17
Reviewed by Kimmo Kinnunen.
When using IPCTestingAPI, this change enables the underlying bytes
of a StreamClientConnection buffer to be modified.
Test: ipc/stream-buffer-read-write.html
- Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::bufferForTesting):
- Platform/IPC/StreamClientConnection.h:
- Platform/IPC/StreamConnectionBuffer.cpp:
(IPC::StreamConnectionBuffer::headerForTesting):
(IPC::StreamConnectionBuffer::dataForTesting):
- Platform/IPC/StreamConnectionBuffer.h:
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::staticFunctions):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::readHeaderBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::readDataBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::readBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::writeHeaderBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::writeDataBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::writeBytes):
LayoutTests:
Functional tests for read and write methods of JSIPCStreamConnectionBuffer
https://bugs.webkit.org/show_bug.cgi?id=237730
rdar://problem/89676460
Patch by Simon Lewis <simon.lewis@apple.com> on 2022-03-17
Reviewed by Kimmo Kinnunen.
- ipc/stream-buffer-read-write-expected.txt: Added.
- ipc/stream-buffer-read-write.html: Added.
- 12:04 PM Changeset in webkit [291427] by
-
- 2 edits in trunk/Tools
Only show notification permission prompt on user gesture
https://bugs.webkit.org/show_bug.cgi?id=237946
Unreviewed build fix for r291414.
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- 12:02 PM Changeset in webkit [291426] by
-
- 3 edits6 adds in trunk
When a “autofilled and obscured” field becomes empty, turn “autofilled and obscured” off
https://bugs.webkit.org/show_bug.cgi?id=235256
Patch by Ellie Epskamp-Hunt <eepskamphunt@apple.com> on 2022-03-17
Reviewed by Devin Rousso.
Source/WebCore:
Tests: fast/forms/input-autofilled-and-obscured-clear-field-programatically.html
fast/forms/input-autofilled-and-obscured-clear-form-programatically.html
fast/forms/input-autofilled-and-obscured.html
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue):
Turn off the property if the page's JavaScript deletes all the text in the field.
(WebCore::HTMLInputElement::setValueFromRenderer):
Turn off the property if the user deletes all the text in the field.
LayoutTests:
Add tests to verify that when a text field becomes empty, the autofilled-and-obscured
property is removed from that field.
- fast/forms/input-autofilled-and-obscured-clear-field-programatically-expected.txt: Added.
- fast/forms/input-autofilled-and-obscured-clear-field-programatically.html: Added.
Delete the text by setting the input's value to an empty string.
- fast/forms/input-autofilled-and-obscured-clear-form-programatically-expected.txt: Added.
- fast/forms/input-autofilled-and-obscured-clear-form-programatically.html: Added.
Delete the text by calling reset on the form.
- fast/forms/input-autofilled-and-obscured-expected.txt: Added.
- fast/forms/input-autofilled-and-obscured.html: Added.
Delete the text as a user would.
- 11:55 AM Changeset in webkit [291425] by
-
- 2 edits in trunk/Source/WebKit
Fix the build when LOG_DISABLED is 0 in release builds
https://bugs.webkit.org/show_bug.cgi?id=237999
Reviewed by Tim Horton.
- WebProcess/Plugins/PDF/PDFPlugin.h:
- 11:48 AM Changeset in webkit [291424] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.13
- 11:28 AM Changeset in webkit [291423] by
-
- 13 edits3 copies2 adds in trunk/Source
[WebAuthn] Support makeCredential for virtual HID authenticators
https://bugs.webkit.org/show_bug.cgi?id=237984
rdar://problem/90393676
Reviewed by Brent Fulgham.
Virtual authenticators for WebAuthn supports different transports: nfc,usb,internal,ble.
Currently, we support the internal transport, but the default transport used in web platform
tests is usb. This patch implements makeCredential for hid-based virtual authenticators. Virtual
credential information is stored in the VirtualCredential struct as suggested by the spec.
Source/WebCore:
- Modules/webauthn/WebAuthenticationUtils.cpp:
(WebCore::buildAttestationMap):
(WebCore::buildAttestationObject):
- Modules/webauthn/WebAuthenticationUtils.h:
- Modules/webauthn/fido/FidoConstants.h:
Source/WebKit:
Tested manually via creating virtual authenticator and performing create and via wpt tests.
- UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:
(WebKit::MockHidConnection::parseRequest):
(WebKit::MockHidConnection::feedReports):
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:
(WebKit::VirtualAuthenticatorManager::createAuthenticator):
(WebKit::VirtualAuthenticatorManager::addCredential):
(WebKit::VirtualAuthenticatorManager::createService const):
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h:
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorUtils.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualService.h.
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorUtils.mm: Added.
(WebKit::flagsForConfig):
(WebKit::createPrivateKey):
(WebKit::credentialIdAndCosePubKeyForPrivateKey):
(WebKit::base64PrivateKey):
- UIProcess/WebAuthentication/Virtual/VirtualCredential.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualService.h.
- UIProcess/WebAuthentication/Virtual/VirtualHidConnection.cpp: Added.
(WebKit::VirtualHidConnection::VirtualHidConnection):
(WebKit::VirtualHidConnection::initialize):
(WebKit::VirtualHidConnection::terminate):
(WebKit::VirtualHidConnection::sendSync):
(WebKit::VirtualHidConnection::send):
(WebKit::VirtualHidConnection::assembleRequest):
(WebKit::VirtualHidConnection::receiveHidMessage):
(WebKit::VirtualHidConnection::recieveResponseCode):
(WebKit::VirtualHidConnection::parseRequest):
- UIProcess/WebAuthentication/Virtual/VirtualHidConnection.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h.
- UIProcess/WebAuthentication/Virtual/VirtualService.h:
- UIProcess/WebAuthentication/Virtual/VirtualService.mm:
(WebKit::VirtualService::VirtualService):
(WebKit::VirtualService::createVirtual):
(WebKit::authenticatorInfoForConfig):
(WebKit::VirtualService::startDiscoveryInternal):
- WebKit.xcodeproj/project.pbxproj:
- 11:15 AM Changeset in webkit [291422] by
-
- 3 edits in trunk/Source/WebGPU
[WebGPU] Fix the 32-bit build
https://bugs.webkit.org/show_bug.cgi?id=238031
Unreviewed.
- WebGPU/Buffer.mm:
(WebGPU::validateCreateBuffer):
(WebGPU::Device::createBuffer):
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::copyBufferToBuffer):
- 11:08 AM Changeset in webkit [291421] by
-
- 14 edits in trunk/Source
Make SharedVideoFrameReader use VideoFrameCV instead of MediaSample
https://bugs.webkit.org/show_bug.cgi?id=237596
Reviewed by Eric Carlson.
Source/WebCore:
Update media recorder and display layer to use pixel buffers instead of MediaSample.
This allows migrating to VideoFrameCV.
No change of behavior.
- platform/cocoa/MediaUtilities.cpp:
- platform/cocoa/MediaUtilities.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
Source/WebKit:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.h:
- 10:44 AM Changeset in webkit [291420] by
-
- 9 edits in trunk
REGRESSION (iOS 15.4 / r287669): Mobile app stopped working due to CSS / angular animation
https://bugs.webkit.org/show_bug.cgi?id=237920
LayoutTests/imported/w3c:
<rdar://problem/90335275>
Reviewed by Antti Koivisto.
Add a test that looks at the default computed style for the "transition" and "animation"
shorthands.
- web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
- web-platform-tests/css/css-animations/parsing/animation-computed.html:
- web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
- web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
- web-platform-tests/css/css-transitions/parsing/transition-computed-expected.txt:
- web-platform-tests/css/css-transitions/parsing/transition-computed.html:
Source/WebCore:
Reviewed by Antti Koivisto.
We refactored the computed style output for the "transition" and "animation" shorthand
properties in r287669 and always returned a CSSValueList, even when the list of transitions
or animations was empty. This meant that for an element without any transition or animation
properties, we'd return the empty string for those properties.
Now we return the computed style for a default animation instead.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::animationShorthandValue):
- 10:21 AM Changeset in webkit [291419] by
-
- 6 edits4 deletes in trunk/Source/WebGPU
[WebGPU] Delete unnecessary C files from CommandLinePlayground
https://bugs.webkit.org/show_bug.cgi?id=238005
Reviewed by Kimmo Kinnunen.
The reason the C files existed was because Swift wouldn't import a block within
a struct if the block didn't have the unsafe_unretained attribute. This patch
adds the attribute and moves the C code to be in the same file as the rest of the
playground.
- CommandLinePlayground/CommandLinePlayground-Bridging-Header.h: Removed.
- CommandLinePlayground/Utilities.c: Removed.
- CommandLinePlayground/Utilities.h: Removed.
- CommandLinePlayground/config.h: Removed.
- CommandLinePlayground/main.swift:
(dispatchWork(_:)):
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/Buffer.mm:
- WebGPU/CommandEncoder.mm:
- WebGPU/WebGPUExt.h:
- 10:19 AM Changeset in webkit [291418] by
-
- 2 edits in trunk/Source/WebCore
PiP on Vimeo freezes when toggled
https://bugs.webkit.org/show_bug.cgi?id=237985
Patch by Peng Liu <peng.liu6@icloud.com> on 2022-03-17
Reviewed by Jer Noble.
Add a quirk for vimeo.com to disable the "webkitendfullscreen" event when a video enters
picture-in-picture from fullscreen.
Tested manually.
- page/Quirks.cpp:
(WebCore::Quirks::shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFullscreenQuirk const):
- 10:07 AM EnvironmentVariables edited by
- Documented the MSE_MAX_BUFFER_SIZE, WPE_SHELL_DISABLE_MEDIA_DISK_CACHE … (diff)
- 10:01 AM Changeset in webkit [291417] by
-
- 8 edits in trunk/Source/JavaScriptCore
Unreviewed, non-unified build fix
https://bugs.webkit.org/show_bug.cgi?id=237929
- dfg/DFGCapabilities.cpp:
- jit/JITDisassembler.cpp:
- jit/JITPlan.cpp:
- llint/LLIntEntrypoint.cpp:
- runtime/FileBasedFuzzerAgentBase.cpp:
- runtime/ShadowRealmObject.cpp:
- runtime/ShadowRealmPrototype.cpp:
- 9:54 AM Changeset in webkit [291416] by
-
- 8 edits in trunk/Source/WebCore
Stop returning NodeVector from functions
https://bugs.webkit.org/show_bug.cgi?id=237988
Reviewed by Darin Adler.
Stop returning NodeVector from functions and use a out-parameter instead. While this doesn't look
as modern, this is actually more efficient. This is because NodeVector has a fairly large inline
buffer and is thus not that cheap to "move".
This was causing functions like
ContainerNode::parserAppendChild(Node&)to spend unnecessary
time under:
VectorBuffer<Ref<Node, RawPtrTraits<Node>>, 11, FastMalloc>::swap(VectorBuffer<Ref<Node, RawPtrTraits<Node>>, 11, FastMalloc>&, unsigned long, unsigned long)
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::executeNodeInsertionWithScriptAssertion):
(WebCore::ContainerNode::removeSelfOrChildNodesForInsertion):
(WebCore::ContainerNode::takeAllChildrenFrom):
(WebCore::ContainerNode::replaceAll):
(WebCore::ContainerNode::removeChildren):
(WebCore::ContainerNode::replaceChildren):
- dom/ContainerNode.h:
(WebCore::collectChildNodes):
- dom/ContainerNodeAlgorithms.cpp:
(WebCore::notifyChildNodeInserted):
- dom/ContainerNodeAlgorithms.h:
- dom/Element.cpp:
(WebCore::Element::addShadowRoot):
(WebCore::Element::insertAdjacentHTML):
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
- editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
- 9:52 AM Changeset in webkit [291415] by
-
- 4 edits6 deletes in branches/safari-614.1.6-branch
Revert r290628. rdar://problem/90310316
- 9:52 AM Changeset in webkit [291414] by
-
- 24 edits in trunk
Only show notification permission prompt on user gesture
https://bugs.webkit.org/show_bug.cgi?id=237946
Reviewed by Geoffrey Garen.
Source/WebCore:
We want to make Notification.requestPermission and PushManager.subscribe only prompt the
user for permission in response to a user gesture. This matches existing behavior in other
browsers.
We use the error string "Push notification prompting can only be done from a user gesture"
since that string was already used by safari.pushNotification.requestPermission.
- Modules/notifications/Notification.cpp:
(WebCore::Notification::requestPermission):
- Modules/push-api/PushManager.cpp:
(WebCore::PushManager::subscribe):
Tools:
Change existing permission tests to use evaluateJavaScript since that executes in the
context of a user gesture.
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
LayoutTests:
Add test cases to make sure that prompting for notification permissions fails when not
handling a user gesture and succeeds when handling a user gesture.
- http/tests/notifications/notification-request-permission-no-callback.html:
- http/tests/notifications/notification-request-permission.html:
- http/tests/notifications/request-expected.txt:
- http/tests/notifications/request-with-promise-expected.txt:
- http/tests/notifications/request-with-promise.html:
- http/tests/notifications/request.html:
- http/tests/push-api/resources/subscribe-iframe-cross-origin.html:
- http/tests/push-api/resources/subscribe-iframe-same-origin.html:
- http/tests/push-api/resources/subscribe-tests.js:
(async testDocumentSubscribeWithUserGesture): Added.
(async testDocumentSubscribeWithoutUserGesture): Added.
(async testDocumentSubscribeImpl): Added.
(async testDocumentSubscribe): Deleted.
- http/tests/push-api/subscribe-default-permissions-expected.txt:
- http/tests/push-api/subscribe-default-permissions-iframe-cross-origin-expected.txt:
- http/tests/push-api/subscribe-default-permissions-iframe-same-origin-expected.txt:
- http/tests/push-api/subscribe-default-permissions.html:
- http/tests/push-api/subscribe-deny-permissions-expected.txt:
- http/tests/push-api/subscribe-deny-permissions.html:
- http/tests/push-api/subscribe-grant-permissions-expected.txt:
- http/tests/push-api/subscribe-grant-permissions.html:
- 9:45 AM Changeset in webkit [291413] by
-
- 5 edits in trunk
Allow push preference to be set programatically
https://bugs.webkit.org/show_bug.cgi?id=238003
Reviewed by Geoffrey Garen.
Source/WebKit:
This exposes the PushAPIEnabled experimental preference through WKPreferences so it can be
enabled programatically by API clients.
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _pushAPIEnabled]):
(-[WKPreferences _setPushAPIEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Tools:
Make webpushd tests enable the push API via WKPreferences.
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- 9:38 AM Changeset in webkit [291412] by
-
- 10 edits1 add in trunk
Calls to print can result in unresponsive print modal
https://bugs.webkit.org/show_bug.cgi?id=237940
<rdar://problem/88257828>
Reviewed by Chris Dumez.
Source/WebKit:
Calls to print were hanging in the case of the client asynchronously
handling the completion handler passed to the delegate. To fix this
we can adjust all printing IPC to have the option
DispatchMessageEvenWhenWaitingForUnboundedSyncReply which allows IPC
messages when waiting for a sync reply in the case where the receiver
of the message is not guranteed to call the completion handler at the
end of the runloop.
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _computePagesForPrinting:completionHandler:]):
- UIProcess/WebPageProxy.cpp:
(WebKit::printingSendOptions):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print):
Tools:
Add API test. Adjust delegate naming in the PDF case to be more
specific so we can use the generic PrintUIDelegate name in the general
case.
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:
(TEST):
(-[PrintUIDelegate _webView:printFrame:pdfFirstPageSize:completionHandler:]): Deleted.
(-[PrintUIDelegate waitForPageSize]): Deleted.
(-[PrintUIDelegate lastPrintedFrame]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/WKPrinting.mm: Added.
(-[PrintUIDelegate callBlockAsync:]):
(-[PrintUIDelegate _webView:printFrame:pdfFirstPageSize:completionHandler:]):
(-[PrintUIDelegate waitForPagination]):
(TEST):
- 9:01 AM Changeset in webkit [291411] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Revert r290967. rdar://problem/90331977
- 8:45 AM Changeset in webkit [291410] by
-
- 2 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291314. rdar://problem/90245766
RemoteGraphicsContextGLProxy omits context lost checks for back and front buffer access functions
https://bugs.webkit.org/show_bug.cgi?id=237891
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-15
Reviewed by Myles Maxfield.
Add missing isContextLost() checks to RemoteGraphicsContextGLProxy functions.
WebGLRenderingContextBase would call as follows:
void WebGLRenderingContextBase::paintRenderingResultsToCanvas()
{
if (isContextLostOrPending())
return;
...
m_context->prepareForDisplay();
...
m_context->paintCompositedResultsToCanvas();
}
The context may be ok during the first check but then fail later,
and so all the context functions need to check for validity.
No new tests, testing hooks need non-trivial implementation.
This is tracked in bug 237891.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp: (WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToCanvas): (WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToCanvas): (WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:24 AM Changeset in webkit [291409] by
-
- 6 edits in trunk/Source/WebCore
[IFC][Integration] Replace enclosingTop/Bottom/height calls with Line::enclosingLogicalRect when applicable
https://bugs.webkit.org/show_bug.cgi?id=237996
Reviewed by Antti Koivisto.
This is in preparation for removing selection/hittesting related functions from InlineIterator::Line.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::enclosingHeight const): Deleted.
- layout/integration/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::TextBox::selectionRect const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionGeometries):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintBackground):
- 8:19 AM Changeset in webkit [291408] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix non-unified build after r291396
- html/HTMLTextFormControlElement.cpp:
- 8:13 AM Changeset in webkit [291407] by
-
- 7 edits1 add in trunk
Clarify code for logical-to-physical mappings, and add physical-to-logical mappings
https://bugs.webkit.org/show_bug.cgi?id=237967
Reviewed by Darin Adler.
Source/WebCore:
The code for logical-to-physical mappings wasn't easy to understand, e.g.
mapLogicalSideToPhysicalSide used to cast a LogicalBoxSide enum into a
BoxSide enum, and then maybe casting it into an int and back to BoxSide.
So the code relied on the arbitrary order of the enum values, and it was
hard to grasp what was going on.
This patch makes these mappings much clearer, and also adds the inverse
physical-to-logical mappings. Being able to convert a physical property
into its logical equivalent will be needed for bug 236199.
No new tests because there is no change in behavior.
Tests in imported/w3c/web-platform-tests/css/css-logical/ ensure that
this patch doesn't break logical-to-physical mappings.
Some new API tests ensure that the physical-to-logical mappings
are the correct inverse.
Tests: WritingMode.LogicalBoxSide
WritingMode.BoxSide
WritingMode.LogicalBoxCorner
WritingMode.BoxCorner
WritingMode.LogicalBoxAxis
WritingMode.BoxAxis
- css/CSSProperty.h:
- css/makeprop.pl:
- platform/text/WritingMode.h:
(WebCore::mapLogicalSideToPhysicalSide):
(WebCore::mapPhysicalSideToLogicalSide):
(WebCore::mapLogicalCornerToPhysicalCorner):
(WebCore::mapPhysicalCornerToLogicalCorner):
(WebCore::mapLogicalAxisToPhysicalAxis):
(WebCore::mapPhysicalAxisToLogicalAxis):
(WebCore::isHorizontalPhysicalSide): Deleted.
(WebCore::mirrorPhysicalSide): Deleted.
(WebCore::rotatePhysicalSide): Deleted.
Tools:
Add tests.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/WritingModeTests.cpp: Added.
(TestWebKitAPI::TEST):
- 7:46 AM Changeset in webkit [291406] by
-
- 3 edits in trunk
[GTK][WPE] Also enable USE_TEXTURE_MAPPER_DMABUF alongside other DMABuf-related defines
https://bugs.webkit.org/show_bug.cgi?id=238017
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-17
Reviewed by Alejandro G. Castro.
For the GTK port, define USE_TEXTURE_MAPPER_DMABUF alongside the
dependencies and defines for DMABuf-backed ANGLE integration. This will
enable usage of the DMABuf-based video sink in any GStreamer pipeline
and subsequently display of the provided DMABuf objects. A comment is
added to explain this should be covered by a separate configuration
option on which USE_ANGLE_WEBGL should then depend.
For the WPE port the define is also added but without conditions, just
like it's done for the dependencies and the USE_LIBGBM define.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- 7:42 AM Changeset in webkit [291405] by
-
- 2 edits in trunk/Tools
XSS in EWS App
https://bugs.webkit.org/show_bug.cgi?id=236633
Reported by Iman Sharafaldin - Forward Security.
Reviewed by Darin Adler.
- CISupport/ews-app/ews/views/submittoews.py:
(SubmitToEWS.post):
- 7:27 AM Changeset in webkit [291404] by
-
- 5 edits in trunk/Tools
[reporelaypy] Support credentialed https repositories
https://bugs.webkit.org/show_bug.cgi?id=237853
<rdar://90252426>
Reviewed by Ryan Haddad, Dewei Zhu and Stephanie Lewis.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/init.py: Bump version.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/checkout.py:
(Checkout.Encoder.default): Pass credentials.
(Checkout.clone): Add credentials to local configuration.
(Checkout.add_credentials): Add username to .git/config and populate
.git-credentials file appropriately.
(Checkout.init): Re-add credentials.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/tests/checkout_unittest.py:
(CheckoutUnittest.test_json):
- Tools/Scripts/libraries/reporelaypy/setup.py: Bump version.
Canonical link: https://commits.webkit.org/248534@main
- 6:02 AM Changeset in webkit [291403] by
-
- 11 edits in trunk
Build broken on macOS Monterey 12.3 - PassKitSPI related error
https://bugs.webkit.org/show_bug.cgi?id=238010
<rdar://problem/90417687>
Reviewed by Antoine Quint.
Unbreak the macOS 12.3 build: assure that 'PKShippingMethod' is declared before used
in the 'PKShippingMethods' interface. Fix various unused variable warnings.
No new tests. No change in functionality.
Source/WebCore:
- platform/audio/mac/AudioOutputUnitAdaptorMac.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::getRGBAImageData const):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
Source/WebCore/PAL:
- pal/spi/cocoa/PassKitSPI.h: Swap PKShippingMethod/PKShippingMethods declarations
Source/WebKit:
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::ArgumentCoder<CFStringRef>::encode):
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::compileAndCacheSandboxProfile):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:
(loadPictureInPicture):
- 5:54 AM Changeset in webkit [291402] by
-
- 9 edits in trunk/LayoutTests
Fix for accessibility/aria-tab-xxx.html tests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=237980
<rdar://problem/90392451>
Reviewed by Chris Fleizach.
these tests are flaky in isolated tree mode due to setting the focus to
the body is async.
- accessibility/aria-tab-role-on-buttons-expected.txt:
- accessibility/aria-tab-role-on-buttons.html:
- accessibility/aria-tab-roles.html:
- platform/glib/accessibility/aria-tab-roles-expected.txt:
- platform/mac/accessibility/aria-tab-role-on-buttons-expected.txt:
- platform/mac/accessibility/aria-tab-roles-expected.txt:
- platform/win/accessibility/aria-tab-role-on-buttons-expected.txt:
- platform/win/accessibility/aria-tab-roles-expected.txt:
- 5:22 AM Changeset in webkit [291401] by
-
- 3 edits in trunk/LayoutTests
Make accessibility/roles-exposed.html faster.
https://bugs.webkit.org/show_bug.cgi?id=237960
<rdar://problem/90371580>
Reviewed by Chris Fleizach.
Make this test to run faster by storing the output in memory and
modifying the DOM once as opposed to doing it in each iteration. This is
particularly important in isolated tree mode, since the test is failing
because it takes too long to execute.
Also modify the test and expectations to explicitly output when the AX
object cannot be retrieved, i.e., it is not exposed for some reason.
- accessibility/roles-exposed.html:
- platform/mac-wk2/accessibility/roles-exposed-expected.txt:
- 5:01 AM Changeset in webkit [291400] by
-
- 5 edits in trunk/LayoutTests
Fix for accessibility/aria-option-role.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=237975
<rdar://problem/90386629>
Reviewed by Chris Fleizach.
This test was flaky in isolated tree mode due to setting the focus to
the body is async. Solved by retrieving the AX element of the listbox
directly.
- accessibility/aria-option-role.html:
- platform/glib/accessibility/aria-option-role-expected.txt:
- platform/mac/accessibility/aria-option-role-expected.txt:
- platform/win/accessibility/aria-option-role-expected.txt:
- 3:07 AM Changeset in webkit [291399] by
-
- 17 edits2 adds in trunk
WebGL context lost event is not sent again for contexts that are lost and restored
https://bugs.webkit.org/show_bug.cgi?id=237952
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-17
Reviewed by Antti Koivisto.
Source/WebCore:
WebGLRenderingContextBase did not register the GraphicsContextGL::Client
for new contexts after a context lost.
Move the client registration to WebGLRenderingContextBase::setGraphicsContextGL()
which is called always when setting a new context.
Rename the GraphicsContextGL::addClient as GraphicsContextGL::setClient(),
move the shared implementation to the base class GraphicsContextGL.
Remove GraphicsContextGL::Client::recycleContext(), the use was removed in
r290816 "WebGL context count is not limited for GPU process.".
Test: webgl/multiple-context-losses.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::setGraphicsContextGL):
(WebCore::WebGLRenderingContextBase::destroyGraphicsContextGL):
- html/canvas/WebGLRenderingContextBase.h:
- platform/graphics/GraphicsContextGL.cpp:
(WebCore::GraphicsContextGL::markLayerComposited):
(WebCore::GraphicsContextGL::forceContextLost):
(WebCore::GraphicsContextGL::dispatchContextChangedNotification):
- platform/graphics/GraphicsContextGL.h:
(WebCore::GraphicsContextGL::setClient):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Source/WebKit:
Adjust after GraphicsContextGL::addClient() was renamed setClient().
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::workQueueUninitialize):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::wasLost):
(WebKit::RemoteGraphicsContextGLProxy::wasChanged):
(WebKit::RemoteGraphicsContextGLProxy::markContextLost):
LayoutTests:
- platform/glib/TestExpectations:
- webgl/lose-context-after-context-lost-expected.txt:
- webgl/lose-context-after-context-lost.html:
Enable the test for GPUP, it works now after
r290816 "WebGL context count is not limited for GPU process.".
Adjust the order of waiting for webglcontextlost and checking
isContextLost(), so that it works when context loss is reported
asynchronously by GPUP.
- webgl/multiple-context-losses-expected.txt: Added.
- webgl/multiple-context-losses.html: Added.
Add a test testing the bug fix.
- 2:41 AM Changeset in webkit [291398] by
-
- 13 edits in trunk/Source/WebCore
Pass style builder context to CSSToLengthConversionData
https://bugs.webkit.org/show_bug.cgi?id=237963
Reviewed by Antoine Quint.
This is preparation for resolving container units.
Also general cleanups to CSSToLengthConversionData.
- css/CSSGradientValue.cpp:
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
(WebCore::CSSConicGradientValue::createGradient):
- css/CSSToLengthConversionData.cpp:
(WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
(WebCore::CSSToLengthConversionData::zoom const): Deleted.
- css/CSSToLengthConversionData.h:
(WebCore::CSSToLengthConversionData::zoom const):
(WebCore::CSSToLengthConversionData::copyForFontSizeWithParentStyle const):
(WebCore::CSSToLengthConversionData::copyWithAdjustedZoom const):
(WebCore::CSSToLengthConversionData::copyForLineHeight const):
(WebCore::CSSToLengthConversionData::CSSToLengthConversionData): Deleted.
(WebCore::CSSToLengthConversionData::copyWithAdjustedZoomAndPropertyToCompute const): Deleted.
- css/DOMMatrixReadOnly.cpp:
(WebCore::DOMMatrixReadOnly::parseStringIntoAbstractMatrix):
- css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::evaluate const):
- css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::computeLength):
(WebCore::SizesAttributeParser::effectiveSizeDefaultValue):
- html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::resolveCustomStyle):
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::popupInternalPaddingBox const):
(WebCore::applyCommonButtonPaddingToStyle):
Setting the zoom to a weird value here does nothing, ems unit resolution ignores it.
Just don't do it.
(WebCore::RenderThemeIOS::adjustButtonStyle const):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):
(WebCore::RenderThemeIOS::adjustSearchFieldDecorationPartStyle const):
- style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertLineHeight):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::mmLength):
(WebCore::Style::BuilderCustom::inchLength):
(WebCore::Style::BuilderCustom::applyValueFontSize):
- style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::BuilderState):
- 2:21 AM Changeset in webkit [291397] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, non-unified build fix after r291390
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
- 2:19 AM Changeset in webkit [291396] by
-
- 36 edits3 adds in trunk
[Selection] Fixes selection range settings for TEXTAREA
https://bugs.webkit.org/show_bug.cgi?id=237641
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Updating test expectations as some sub-tests are now passing.
- web-platform-tests/html/semantics/forms/textfieldselection/defaultSelection-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end-extra-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/selection-value-interactions-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/textarea-selection-while-parsing-expected.txt:
Source/WebCore:
This CL is to fix the settings of SelectionStart/SelectionEnd for TEXTAREA for non-focused Element. It sets the
caret to the end of the text value except for initializing in most cases. For the case of updating defaultValue
for a non-dirty TEXTAREA, we should following the clamping steps as per spec and it will be addressed in a
follow-up patch.
This CL refers and imports part of the changes in chromium CL at
https://codereview.chromium.org/392573002
TextArea only calls setSelectionRange() for focused element. While for non-focused element, we need to update the caret
except for initializing. Since we are not change text selection for text area in this case, we only cache the selections.
It would be ideal to have a unified function call for both focused and non-focused cases. However, the selectionRange()
function changes focus of the element and the approach we are having here is to avoid the impacts on a good number of
exisiting tests.
This CL also introduces a unified setValue() API in HTMLFormControlElement for HTMLTextAreaElement and HTMLInputElement.
- html/BaseButtonInputType.cpp:
(WebCore::BaseButtonInputType::setValue):
- html/BaseButtonInputType.h:
- html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::setValue):
- html/BaseCheckableInputType.h:
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::setValue):
(WebCore::BaseDateAndTimeInputType::didChangeValueFromControl):
- html/BaseDateAndTimeInputType.h:
- html/ColorInputType.cpp:
(WebCore::ColorInputType::setValue):
- html/ColorInputType.h:
- html/FileInputType.cpp:
(WebCore::FileInputType::setValue):
- html/FileInputType.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue):
- html/HTMLInputElement.h:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::childrenChanged):
(WebCore::HTMLTextAreaElement::reset):
(WebCore::HTMLTextAreaElement::setValue):
(WebCore::HTMLTextAreaElement::setNonDirtyValue):
(WebCore::HTMLTextAreaElement::setValueCommon):
(WebCore::HTMLTextAreaElement::copyNonAttributePropertiesFromElement):
- html/HTMLTextAreaElement.h:
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setRangeText):
- html/HTMLTextFormControlElement.h:
- html/HiddenInputType.cpp:
(WebCore::HiddenInputType::setValue):
- html/HiddenInputType.h:
- html/InputType.cpp:
(WebCore::InputType::setValue):
- html/InputType.h:
- html/NumberInputType.cpp:
(WebCore::NumberInputType::setValue):
- html/NumberInputType.h:
- html/RangeInputType.cpp:
(WebCore::RangeInputType::setValue):
- html/RangeInputType.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::setValue):
- html/TextFieldInputType.h:
LayoutTests:
Updated two tests that expect resetting value of textarea to change selection to 0.
These changes are in line with changes made in Chromium.
- editing/pasteboard/paste-into-textarea-with-new-line.html:
- fast/spatial-navigation/snav-textarea.html:
- 2:01 AM Changeset in webkit [291395] by
-
- 2 edits in trunk/Source/WebCore
[model] some tests under model-element crash on Big Sur bots
https://bugs.webkit.org/show_bug.cgi?id=238011
Reviewed by Cameron McCormack.
The fix for bug 237894 added another place where we might reject the ready
failure, but we didn't check whether it had already been rejected before,
which would cause an assertion failure leading to a crash on debug builds.
We now consistently check whether the ready promise had already been
fulfilled before rejecting it.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::notifyFinished):
(WebCore::HTMLModelElement::modelDidChange):
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::didFailLoading):
- 1:29 AM Changeset in webkit [291394] by
-
- 2 edits in trunk/Source/WebCore
[Xcode] Build broken after r289139
https://bugs.webkit.org/show_bug.cgi?id=238010
Unreviewed build fix: Remove duplicate entry from Xcode project file.
No change of behavior.
- WebCore.xcodeproj/project.pbxproj:
- 12:53 AM Changeset in webkit [291393] by
-
- 8 edits in trunk/Source/WebKit
[model] -[ASVInlinePreview setRemoteContext:] should be called inside the -[ASVInlinePreview setupRemoteConnectionWithCompletionHandler:] callback
https://bugs.webkit.org/show_bug.cgi?id=237959
rdar://87832635
Reviewed by Dean Jackson.
We need to split the code that creates a remote ASVInlinePreview on macOS in two. The first step is to create the remote ASVInlinePreview
and obtain its remote context id from the UIProcess, setting it on the WebProcess ASVInlinePreview in the callback.
The second step is to load the file in the remote ASVInlinePreview.
For these two steps, we now have two separate WebProxy messages: ModelElementCreateRemotePreview and ModelElementLoadRemotePreview.
- UIProcess/Cocoa/ModelElementControllerCocoa.mm:
(WebKit::ModelElementController::modelElementCreateRemotePreview):
(WebKit::ModelElementController::modelElementLoadRemotePreview):
(WebKit::ModelElementController::modelElementDidCreatePreview): Deleted.
- UIProcess/ModelElementController.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::modelElementCreateRemotePreview):
(WebKit::WebPageProxy::modelElementLoadRemotePreview):
(WebKit::WebPageProxy::modelElementDidCreatePreview): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
- WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:
(WebKit::ARKitInlinePreviewModelPlayerMac::load):
(WebKit::ARKitInlinePreviewModelPlayerMac::createPreviewsForModelWithURL):
(WebKit::ARKitInlinePreviewModelPlayerMac::didCreateRemotePreviewForModelWithURL):
- 12:41 AM Changeset in webkit [291392] by
-
- 10 edits in trunk
[GTK][WPE] Guard libgbm and libdrm code, make them conditional dependencies for GTK
https://bugs.webkit.org/show_bug.cgi?id=237974
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-17
Reviewed by Alejandro G. Castro.
.:
Guard usage of libgbm and libdrm dependencies with the USE_LIBGBM
define. This should be required until we can switch to a possibly more
dynamic implementation that doesn't require build-time dependencies.
For the GTK port, the desire is to keep these dependencies fully
optional. At the moment they are required when enabling ANGLE-backed
WebGL, with the USE_LIBGBM also defined in that case. This is needed
because ANGLE integration for Linux ports already depends on these
libraries.
For the WPE port only USE_LIBGBM is defined and the two dependencies
remain required.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Add USE(LIBGBM) guards around GBMDevice and GBMBufferSwapchain code,
and compile against the libgbm and libdrm dependencies only when
USE_LIBGBM is defined. This makes the two dependencies optional if
desired.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- platform/graphics/gbm/GBMBufferSwapchain.cpp:
- platform/graphics/gbm/GBMBufferSwapchain.h:
- platform/graphics/gbm/GBMDevice.cpp:
- platform/graphics/gbm/GBMDevice.h:
- 12:31 AM Changeset in webkit [291391] by
-
- 4 edits4 deletes in trunk/Source/ThirdParty/libwebrtc
Remove no longer used third party webrtc modules
https://bugs.webkit.org/show_bug.cgi?id=237945
Reviewed by Eric Carlson.
Remove folders that have not been used for a long time.
- CMakeLists.txt: Removed jsoncpp compilation.
- Configurations/libwebrtc.xcconfig:
- Source/third_party/gflags: Removed.
- Source/third_party/googletest: Removed.
- Source/third_party/gtest-parallel: Removed.
- Source/third_party/jsoncpp: Removed.
- libwebrtc.xcodeproj/project.pbxproj:
- 12:21 AM Changeset in webkit [291390] by
-
- 16 edits2 adds in trunk
AudioContext is suspended on iOS when page is backgrounded
https://bugs.webkit.org/show_bug.cgi?id=237878
Reviewed by Eric Carlson.
Source/WebCore:
On iOS, when the application goes in the background, AudioContext gets suspended.
This is problematic when AudioContext is used to generate audio samples but not play audio samples.
To allow those silent AudioContexts to run even in background, the following is done:
- Override background interruptions in case the audio context default destination is not connected.
- Monitor whether the default destination is connected or not.
- If the default destination gets connected while application is in the background, trigger an interruption to prevent playing audio.
To prevent potential audio burst, we interrupt just before the destination gets connected and not just after.
For that reason, we add m_canOverrideBackgroundPlaybackRestriction to enforce interruption when we now the connection will be connected.
This approach keeps the existing iOS behavior in terms of rendered audio while allowing for not-playing audio contexts to continue in the background.
Tests: webaudio/suspend-context-while-backgrounded.html and API test.
- Modules/webaudio/AudioContext.cpp:
- Modules/webaudio/AudioContext.h:
- Modules/webaudio/AudioNode.cpp:
- Modules/webaudio/AudioSummingJunction.h:
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
- Modules/webaudio/DefaultAudioDestinationNode.h:
- platform/audio/PlatformMediaSessionManager.h:
Source/WebKit:
Expose private SPI for testing purposes.
- UIProcess/API/Cocoa/WKProcessPool.mm:
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/WebProcessPool.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
- TestWebKitAPI/Tests/WebKitCocoa/audio-context-playing.html:
LayoutTests:
- webaudio/suspend-context-while-backgrounded-expected.txt: Added.
- webaudio/suspend-context-while-backgrounded.html: Added.
- 12:17 AM Changeset in webkit [291389] by
-
- 19 edits in trunk/Source/WebGPU
[WebGPU] Mark unchanging class members as const
https://bugs.webkit.org/show_bug.cgi?id=237998
Reviewed by Kimmo Kinnunen.
Let's use the C++ type system to our advantage.
- WebGPU/Adapter.h:
- WebGPU/BindGroup.h:
- WebGPU/BindGroupLayout.h:
- WebGPU/CommandBuffer.h:
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePipeline.h:
- WebGPU/Device.h:
(WebGPU::Device::instance const):
(WebGPU::Device::instance): Deleted.
- WebGPU/Instance.h:
- WebGPU/QuerySet.h:
- WebGPU/Queue.h:
- WebGPU/RenderBundle.h:
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPipeline.h:
- WebGPU/Sampler.h:
- WebGPU/ShaderModule.h:
- WebGPU/Texture.h:
- WebGPU/TextureView.h:
Mar 16, 2022:
- 10:25 PM Changeset in webkit [291388] by
-
- 9 edits in branches/safari-613-branch/Source
Versioning.
WebKit-7613.2.3
- 8:56 PM Changeset in webkit [291387] by
-
- 5 edits in trunk/Source/WebGPU
[WebGPU] Implement sampler creation according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237882
Reviewed by Kimmo Kinnunen.
Implement Device::createSampler() according to the algorithm in the spec. There
are a few things which the spec lists which we can't do yet (like making objects
invalid), so those things are left with FIXMEs. Every step is listed with links
to the spec where appropriate, and with quotes to the spec describing what is
being implemented.
- WebGPU/Buffer.mm:
(WebGPU::Buffer::mapAsync):
- WebGPU/ComputePipeline.mm:
(WebGPU::createConstantValues):
- WebGPU/Sampler.h:
(WebGPU::Sampler::create):
(WebGPU::Sampler::descriptor const):
(WebGPU::Sampler::isComparison const):
(WebGPU::Sampler::isFiltering const):
- WebGPU/Sampler.mm:
(WebGPU::validateCreateSampler):
(WebGPU::Device::createSampler):
(WebGPU::Sampler::Sampler):
- 8:37 PM Changeset in webkit [291386] by
-
- 9 edits in trunk/Source/WebGPU
[WebGPU] Implement first draft of debug commands according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237879
Reviewed by Kimmo Kinnunen.
Implement insertDebugMarker(), pushDebugGroup(), and popDebugGroup() according to
the algorithms in the spec. There are a few things which the spec lists which we
can't do yet (like making objects invalid), so those things are left with FIXMEs.
Every step is listed with links to the spec where appropriate, and with quotes to
the spec describing what is being implemented. Also, because each class handles
these debug commands slightly differently (CommandEncoders support debug groups
but not debug markers; RenderBundles don't support any of them, and
ComputeEncoders support all of them) I opted to not try to do any code sharing.
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::insertDebugMarker):
(WebGPU::CommandEncoder::validatePopDebugGroup const):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::CommandEncoder::pushDebugGroup):
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePassEncoder.mm:
(WebGPU::ComputePassEncoder::insertDebugMarker):
(WebGPU::ComputePassEncoder::validatePopDebugGroup const):
(WebGPU::ComputePassEncoder::popDebugGroup):
(WebGPU::ComputePassEncoder::pushDebugGroup):
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::insertDebugMarker):
(WebGPU::RenderBundleEncoder::validatePopDebugGroup const):
(WebGPU::RenderBundleEncoder::popDebugGroup):
(WebGPU::RenderBundleEncoder::pushDebugGroup):
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::insertDebugMarker):
(WebGPU::RenderPassEncoder::validatePopDebugGroup const):
(WebGPU::RenderPassEncoder::popDebugGroup):
(WebGPU::RenderPassEncoder::pushDebugGroup):
- 8:06 PM Changeset in webkit [291385] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Implement first draft of CommandEncoder::clearBuffer() according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237877
Reviewed by Kimmo Kinnunen.
Implement CommandEncoder::clearBuffer() according to the algorithms in the spec.
There are a few things which the spec lists which we can't do yet (like reporting
validation errors), so those things are left with FIXMEs. Every step is listed
with links to the spec where appropriate, and with quotes to the spec describing
what is being implemented.
- WebGPU/CommandEncoder.mm:
(WebGPU::validateClearBuffer):
(WebGPU::CommandEncoder::clearBuffer):
- 8:02 PM Changeset in webkit [291384] by
-
- 19 edits in trunk/Source
[WebGPU] Use block-based WebGPU API instead of function pointer & userdata API
https://bugs.webkit.org/show_bug.cgi?id=237932
Reviewed by Kimmo Kinnunen.
Source/WebCore/PAL:
Thanks to the magic of makeBlockPtr(), we can use lambdas to pass asynchronous callbacks
to WebGPU methods, instead of having to save callbacks in a queue manually. This is much
safer because A) it's significantly less code, which means fewer bugs, and B) the
callbacks are allowed to fire out-of-order now.
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
(PAL::WebGPU::AdapterImpl::requestDevice):
(PAL::WebGPU::requestDeviceCallback): Deleted.
(PAL::WebGPU::AdapterImpl::requestDeviceCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp:
(PAL::WebGPU::BufferImpl::mapAsync):
(PAL::WebGPU::mapCallback): Deleted.
(PAL::WebGPU::BufferImpl::mapCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::popErrorScope):
(PAL::WebGPU::createComputePipelineAsyncCallback): Deleted.
(PAL::WebGPU::DeviceImpl::createComputePipelineAsyncCallback): Deleted.
(PAL::WebGPU::createRenderPipelineAsyncCallback): Deleted.
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsyncCallback): Deleted.
(PAL::WebGPU::popErrorScopeCallback): Deleted.
(PAL::WebGPU::DeviceImpl::popErrorScopeCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
(PAL::WebGPU::GPUImpl::requestAdapter):
(PAL::WebGPU::requestAdapterCallback): Deleted.
(PAL::WebGPU::GPUImpl::requestAdapterCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:
(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
(PAL::WebGPU::onSubmittedWorkDoneCallback): Deleted.
(PAL::WebGPU::QueueImpl::onSubmittedWorkDoneCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp:
(PAL::WebGPU::ShaderModuleImpl::compilationInfo):
Source/WebGPU:
Move callbacks instead of copying them. Also, update according to the style guide.
- WebGPU/Adapter.mm:
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):
- WebGPU/Buffer.mm:
(wgpuBufferMapAsync):
(wgpuBufferMapAsyncWithBlock):
- WebGPU/Device.mm:
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDevicePopErrorScope):
(wgpuDevicePopErrorScopeWithBlock):
(wgpuDeviceSetDeviceLostCallback):
(wgpuDeviceSetDeviceLostCallbackWithBlock):
(wgpuDeviceSetUncapturedErrorCallback):
(wgpuDeviceSetUncapturedErrorCallbackWithBlock):
- WebGPU/Instance.mm:
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):
- WebGPU/Queue.mm:
(wgpuQueueOnSubmittedWorkDone):
(wgpuQueueOnSubmittedWorkDoneWithBlock):
- WebGPU/ShaderModule.mm:
(wgpuShaderModuleGetCompilationInfo):
(wgpuShaderModuleGetCompilationInfoWithBlock):
- 7:51 PM Changeset in webkit [291383] by
-
- 2 edits in trunk/Source/WebKit
Always update assertion state for existing default network process
https://bugs.webkit.org/show_bug.cgi?id=237965
Reviewed by Chris Dumez.
In our current implementation, we only update process assertion state for network process if it's being used by
some WebsiteDataStore. An problematic case with this impelmentation found by Tim: when a network process is
created for some WebsiteDataStore, and the WebsiteDataStore is gone (WebView gets destroyed), then network
process will get suspended. At this time, if a new WebsiteDataStore is created, some activities happen and we
update assertion state, we don't resume the network process, since it's not actively being used (the new
WebsiteDataStore has not invoked networkProcess() yet). Later on if the WebsiteDataStore starts to use network
process (it reuses existing process as network process is a singleton on Cocoa platforms), the network process
will be numb and not respond any message because it is suspended.
To fix this issue, let's always update assertion state for existing network process.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::updateProcessAssertions):
- 7:30 PM Changeset in webkit [291382] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Implement queue submission methods according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237869
Reviewed by Kimmo Kinnunen.
Addressing post-review comments.
- WebGPU/Queue.mm:
(WebGPU::Queue::submit):
- 5:55 PM Changeset in webkit [291381] by
-
- 5 edits in trunk/Source/WebKit
Don't build WebPageProxy::writePromisedAttachmentToPasteboard() and its IPC on macOS
https://bugs.webkit.org/show_bug.cgi?id=237986
Reviewed by Brent Fulgham.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::writePromisedAttachmentToPasteboard):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- 5:39 PM Changeset in webkit [291380] by
-
- 2 edits in trunk/Source/JavaScriptCore
Web Inspector: REGRESSION(r290720): Debugger: Step next should not behave the same as Step into
https://bugs.webkit.org/show_bug.cgi?id=237936
Reviewed by Joseph Pecoraro.
Covered by existing tests (not sure why they don't fail on EWS, but they fail locally).
- debugger/Debugger.cpp:
(JSC::Debugger::pauseIfNeeded):
Checking that the desiredCallFramematches the currentCallFrameis enough to determine
whether theDebuggershould pause for Step next and Step out, as both of those actions set
a desiredCallFrame. We explicitly do not want to check for theboolflags that indicate
those actions because they have different behaviors regarding the currentCallFrame(the
former desires the sameCallFrameand the latter desires the parentCallFrame). This
patch partially reverts r290720.
- 5:36 PM Changeset in webkit [291379] by
-
- 3 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291352. rdar://problem/90271228
Incorrect header name used in has_include
https://bugs.webkit.org/show_bug.cgi?id=237914
<rdar://90271228>
Reviewed by Geoffrey Garen.
- Configurations/WebKit.xcconfig:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:23 PM Changeset in webkit [291378] by
-
- 2 edits in trunk/Source/WebCore
[Apple Pay] version values are incorrect, causing incorrect feature detection
https://bugs.webkit.org/show_bug.cgi?id=237989
<rdar://problem/90399356>
Reviewed by Tim Horton.
Version 13 should also be enabled for
ENABLE_APPLE_PAY_SELECTED_SHIPPING_METHOD, and
ENABLE_APPLE_PAY_PAYMENT_DETAILS_DATAreally corresponds to Version 14.
- Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:
(WebCore::PaymentAPIVersion::current):
- 5:05 PM Changeset in webkit [291377] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Put nontrivial code in WebGPU's command line playground
https://bugs.webkit.org/show_bug.cgi?id=237876
Reviewed by Kimmo Kinnunen.
This is a simple mempcy() example. It uses asynchronous mapping and a queue submit.
- CommandLinePlayground/main.swift:
(device):
- 5:02 PM Changeset in webkit [291376] by
-
- 46 edits1 add in trunk/Source/WebGPU
[WebGPU] Use the fromAPI() pattern
https://bugs.webkit.org/show_bug.cgi?id=237942
Reviewed by Kimmo Kinnunen.
Inside API functions, use an overloaded fromAPI() function to convert
API types to their backing types.
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/APIConversions.h: Added.
(WebGPU::fromAPI):
- WebGPU/Adapter.h:
- WebGPU/Adapter.mm:
(WebGPU::Adapter::requestDevice):
(wgpuAdapterEnumerateFeatures):
(wgpuAdapterGetLimits):
(wgpuAdapterGetProperties):
(wgpuAdapterHasFeature):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):
- WebGPU/BindGroup.h:
- WebGPU/BindGroup.mm:
(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::setLabel):
(wgpuBindGroupSetLabel):
- WebGPU/BindGroupLayout.h:
- WebGPU/BindGroupLayout.mm:
(WebGPU::BindGroupLayout::setLabel):
(wgpuBindGroupLayoutSetLabel):
- WebGPU/Buffer.h:
- WebGPU/Buffer.mm:
(WebGPU::Buffer::setLabel):
(wgpuBufferDestroy):
(wgpuBufferGetConstMappedRange):
(wgpuBufferGetMappedRange):
(wgpuBufferMapAsync):
(wgpuBufferMapAsyncWithBlock):
(wgpuBufferUnmap):
(wgpuBufferSetLabel):
- WebGPU/CommandBuffer.h:
- WebGPU/CommandBuffer.mm:
(WebGPU::CommandBuffer::setLabel):
(wgpuCommandBufferSetLabel):
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::insertDebugMarker):
(WebGPU::CommandEncoder::pushDebugGroup):
(WebGPU::CommandEncoder::setLabel):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderCopyBufferToBuffer):
(wgpuCommandEncoderCopyBufferToTexture):
(wgpuCommandEncoderCopyTextureToBuffer):
(wgpuCommandEncoderCopyTextureToTexture):
(wgpuCommandEncoderClearBuffer):
(wgpuCommandEncoderFinish):
(wgpuCommandEncoderInsertDebugMarker):
(wgpuCommandEncoderPopDebugGroup):
(wgpuCommandEncoderPushDebugGroup):
(wgpuCommandEncoderResolveQuerySet):
(wgpuCommandEncoderWriteTimestamp):
(wgpuCommandEncoderSetLabel):
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePassEncoder.mm:
(WebGPU::ComputePassEncoder::insertDebugMarker):
(WebGPU::ComputePassEncoder::pushDebugGroup):
(WebGPU::ComputePassEncoder::setLabel):
(wgpuComputePassEncoderBeginPipelineStatisticsQuery):
(wgpuComputePassEncoderDispatch):
(wgpuComputePassEncoderDispatchIndirect):
(wgpuComputePassEncoderEndPass):
(wgpuComputePassEncoderEndPipelineStatisticsQuery):
(wgpuComputePassEncoderInsertDebugMarker):
(wgpuComputePassEncoderPopDebugGroup):
(wgpuComputePassEncoderPushDebugGroup):
(wgpuComputePassEncoderSetBindGroup):
(wgpuComputePassEncoderSetPipeline):
(wgpuComputePassEncoderSetLabel):
- WebGPU/ComputePipeline.h:
- WebGPU/ComputePipeline.mm:
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
(WebGPU::ComputePipeline::setLabel):
(wgpuComputePipelineGetBindGroupLayout):
(wgpuComputePipelineSetLabel):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::create):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
(WebGPU::Device::setLabel):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceDestroy):
(wgpuDeviceEnumerateFeatures):
(wgpuDeviceGetLimits):
(wgpuDeviceHasFeature):
(wgpuDevicePopErrorScope):
(wgpuDevicePopErrorScopeWithBlock):
(wgpuDevicePushErrorScope):
(wgpuDeviceSetDeviceLostCallback):
(wgpuDeviceSetDeviceLostCallbackWithBlock):
(wgpuDeviceSetUncapturedErrorCallback):
(wgpuDeviceSetUncapturedErrorCallbackWithBlock):
(wgpuDeviceSetLabel):
- WebGPU/Instance.h:
- WebGPU/Instance.mm:
(WebGPU::Instance::requestAdapter):
(wgpuInstanceCreateSurface):
(wgpuInstanceProcessEvents):
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):
- WebGPU/PipelineLayout.h:
- WebGPU/PipelineLayout.mm:
(WebGPU::Device::createPipelineLayout):
(WebGPU::PipelineLayout::setLabel):
(wgpuPipelineLayoutSetLabel):
- WebGPU/QuerySet.h:
- WebGPU/QuerySet.mm:
(WebGPU::QuerySet::setLabel):
(wgpuQuerySetDestroy):
(wgpuQuerySetSetLabel):
- WebGPU/Queue.h:
- WebGPU/Queue.mm:
(WebGPU::Queue::setLabel):
(wgpuQueueOnSubmittedWorkDone):
(wgpuQueueOnSubmittedWorkDoneWithBlock):
(wgpuQueueSubmit):
(wgpuQueueWriteBuffer):
(wgpuQueueWriteTexture):
(wgpuQueueSetLabel):
- WebGPU/RenderBundle.h:
- WebGPU/RenderBundle.mm:
(WebGPU::RenderBundle::setLabel):
(wgpuRenderBundleSetLabel):
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::insertDebugMarker):
(WebGPU::RenderBundleEncoder::pushDebugGroup):
(WebGPU::RenderBundleEncoder::setLabel):
(wgpuRenderBundleEncoderDraw):
(wgpuRenderBundleEncoderDrawIndexed):
(wgpuRenderBundleEncoderDrawIndexedIndirect):
(wgpuRenderBundleEncoderDrawIndirect):
(wgpuRenderBundleEncoderFinish):
(wgpuRenderBundleEncoderInsertDebugMarker):
(wgpuRenderBundleEncoderPopDebugGroup):
(wgpuRenderBundleEncoderPushDebugGroup):
(wgpuRenderBundleEncoderSetBindGroup):
(wgpuRenderBundleEncoderSetIndexBuffer):
(wgpuRenderBundleEncoderSetPipeline):
(wgpuRenderBundleEncoderSetVertexBuffer):
(wgpuRenderBundleEncoderSetLabel):
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::insertDebugMarker):
(WebGPU::RenderPassEncoder::pushDebugGroup):
(WebGPU::RenderPassEncoder::setLabel):
(wgpuRenderPassEncoderBeginOcclusionQuery):
(wgpuRenderPassEncoderBeginPipelineStatisticsQuery):
(wgpuRenderPassEncoderDraw):
(wgpuRenderPassEncoderDrawIndexed):
(wgpuRenderPassEncoderDrawIndexedIndirect):
(wgpuRenderPassEncoderDrawIndirect):
(wgpuRenderPassEncoderEndOcclusionQuery):
(wgpuRenderPassEncoderEndPass):
(wgpuRenderPassEncoderEndPipelineStatisticsQuery):
(wgpuRenderPassEncoderExecuteBundles):
(wgpuRenderPassEncoderInsertDebugMarker):
(wgpuRenderPassEncoderPopDebugGroup):
(wgpuRenderPassEncoderPushDebugGroup):
(wgpuRenderPassEncoderSetBindGroup):
(wgpuRenderPassEncoderSetBlendConstant):
(wgpuRenderPassEncoderSetIndexBuffer):
(wgpuRenderPassEncoderSetPipeline):
(wgpuRenderPassEncoderSetScissorRect):
(wgpuRenderPassEncoderSetStencilReference):
(wgpuRenderPassEncoderSetVertexBuffer):
(wgpuRenderPassEncoderSetViewport):
(wgpuRenderPassEncoderSetLabel):
- WebGPU/RenderPipeline.h:
- WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipelineAsync):
(WebGPU::RenderPipeline::setLabel):
(wgpuRenderPipelineGetBindGroupLayout):
(wgpuRenderPipelineSetLabel):
- WebGPU/Sampler.h:
- WebGPU/Sampler.mm:
(WebGPU::Sampler::setLabel):
(wgpuSamplerSetLabel):
- WebGPU/ShaderModule.h:
- WebGPU/ShaderModule.mm:
(WebGPU::ShaderModule::setLabel):
(wgpuShaderModuleGetCompilationInfo):
(wgpuShaderModuleGetCompilationInfoWithBlock):
(wgpuShaderModuleSetLabel):
- WebGPU/Surface.mm:
(wgpuSurfaceGetPreferredFormat):
- WebGPU/SwapChain.mm:
(wgpuSwapChainGetCurrentTextureView):
(wgpuSwapChainPresent):
- WebGPU/Texture.h:
- WebGPU/Texture.mm:
(WebGPU::Texture::setLabel):
(wgpuTextureCreateView):
(wgpuTextureDestroy):
(wgpuTextureSetLabel):
- WebGPU/TextureView.h:
- WebGPU/TextureView.mm:
(WebGPU::TextureView::setLabel):
(wgpuTextureViewSetLabel):
- 5:02 PM Changeset in webkit [291375] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=237987
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 4:01 PM Changeset in webkit [291374] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] Minor AVVideoCaptureSource cleanup
https://bugs.webkit.org/show_bug.cgi?id=237978
<rdar://problem/90388332>
Reviewed by Jer Noble.
No new tests, no behavior change.
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setupSession): Use
instancesRespondToSelector:
instead ofrespondsToSelector:so we don't have to allocate an AVCaptureSession
just to find out how to initialize it.
- 3:55 PM Changeset in webkit [291373] by
-
- 2 edits in trunk/Tools
[Merge-Queue] Add step to make comment on pull requests
https://bugs.webkit.org/show_bug.cgi?id=237962
<rdar://problem/90371727>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin.comment_on_pr): Make a comment on pull request for in repository.
(ApplyPatch.evaluateCommand): Rename CommentOnBug to LeaveComment.
(ValidateCommiterAndReviewer.fail_build): Ditto.
(ValidateChangeLogAndReviewer.evaluateCommand): Ditto.
(LeaveComment): Renamed from CommentOnBug, support pull request
(LeaveComment.start):
(LeaveComment.getResultSummary):
(AnalyzeCompileWebKitResults.analyzeResults): Rename CommentOnBug to LeaveComment.
(AnalyzeLayoutTestsResults.report_failure): Ditto.
(FindModifiedChangeLogs.evaluateCommand): Ditto.
(CreateLocalGITCommit.evaluateCommand): Ditto.
(PushCommitToWebKitRepo.evaluateCommand): Ditto.
(CommentOnBug): Renamed to LeaveComment.
Canonical link: https://commits.webkit.org/248505@main
- 3:13 PM Changeset in webkit [291372] by
-
- 4 edits2 adds in trunk/Source/WebGPU
[WebGPU] Implement first draft of buffer copying according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237871
Reviewed by Kimmo Kinnunen.
Implement CommandEncoder::copyBufferToBuffer() and CommandEncoder::finish(),
according to the algorithms in the spec. There are a few things which the spec
lists which we can't do yet (like reporting validation errors), so those things
are left with FIXMEs. Every step is listed with links to the spec where
appropriate, and with quotes to the spec describing what is being implemented.
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::ensureBlitCommandEncoder):
(WebGPU::CommandEncoder::finalizeBlitCommandEncoder):
(WebGPU::validateCopyBufferToBuffer):
(WebGPU::CommandEncoder::copyBufferToBuffer):
(WebGPU::CommandEncoder::validateFinish const):
(WebGPU::CommandEncoder::finish):
- WebGPU/CommandsMixin.h: Added.
- WebGPU/CommandsMixin.mm: Added.
(WebGPU::CommandsMixin::prepareTheEncoderState const):
- 2:58 PM Changeset in webkit [291371] by
-
- 8 edits in trunk/Source/WebKit
CoreIPC Hardening: Add user gesture check when saving images
https://bugs.webkit.org/show_bug.cgi?id=237839
<rdar://72058321>
Reviewed by Chris Dumez.
Add check to confirm that attempts to store images in the user's Photo
Library and attempts to store data in the pasteboard were triggered by
a user gesture.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::writePromisedAttachmentToPasteboard): Message check the authorization token before
performing the write.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::isValidPerformActionOnElementAuthorizationToken const): Added.
(WebKit::WebPageProxy::performActionOnElement): Added.
(WebKit::WebPageProxy::saveImageToLibrary): Message check the authorization token before
performing the save.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):
- 2:55 PM Changeset in webkit [291370] by
-
- 11 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/TestExpectations:
- platform/wincairo/css1/box_properties/margin_right-expected.txt:
- platform/wincairo/css1/box_properties/padding_right-expected.txt:
- platform/wincairo/css2.1/t0505-c16-descendant-01-e-expected.txt:
- platform/wincairo/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
- platform/wincairo/fast/dom/HTMLMeterElement/meter-optimums-expected.txt:
- platform/wincairo/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
- platform/wincairo/fast/dom/scroll-reveal-top-overflow-expected.txt:
- platform/wincairo/fast/html/details-writing-mode-expected.txt:
- platform/wincairo/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
- 2:49 PM Changeset in webkit [291369] by
-
- 6 edits in trunk/Source
[WebGPU] Implement first draft of buffer mapping according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237870
Reviewed by Kimmo Kinnunen.
Source/WebGPU:
Implement the various GPUBuffer methods, according to the algorithms in the spec.
There are a few things which the spec lists which we can't do yet (like reporting
validation errors), so those things are left with FIXMEs. Every step is listed with
links to the spec where appropriate, and with quotes to the spec describing what
is being implemented.
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/Buffer.h:
(WebGPU::Buffer::create):
(WebGPU::Buffer::size const):
(WebGPU::Buffer::usage const):
- WebGPU/Buffer.mm:
(WebGPU::validateDescriptor):
(WebGPU::validateCreateBuffer):
(WebGPU::storageMode):
(WebGPU::Device::createBuffer):
(WebGPU::Buffer::Buffer):
(WebGPU::Buffer::destroy):
(WebGPU::Buffer::getConstMappedRange):
(WebGPU::Buffer::validateGetMappedRange const):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::validateMapAsync const):
(WebGPU::Buffer::mapAsync):
(WebGPU::Buffer::validateUnmap const):
(WebGPU::Buffer::unmap):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::Device):
Source/WTF:
WTF classes usually have 'using' statements so users don't have to qualify all uses.
- wtf/Range.h:
- 2:35 PM Changeset in webkit [291368] by
-
- 2 edits in trunk/Source/WebCore
[PlayStation] Fix build break after r291341
https://bugs.webkit.org/show_bug.cgi?id=237971
Unreviewed build fix.
- platform/playstation/MIMETypeRegistryPlayStation.cpp:
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
- 2:32 PM Changeset in webkit [291367] by
-
- 2 edits in trunk/Source/WebKit
Do not suspend NetworkStorageManager if it is used for ephemeral session
https://bugs.webkit.org/show_bug.cgi?id=237943
Reviewed by Chris Dumez.
The reason we need to suspend NetworkStorageManager when process is suspended, is that it might hold file lock
during its operations. NetworkStorageManager of ephemeral sessions will not hold file lock; suspending its
WorkQueue will only delay storage operations.
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::suspend):
(WebKit::NetworkStorageManager::resume):
- 2:20 PM Changeset in webkit [291366] by
-
- 4 edits in trunk/Source/WebGPU
[WebGPU] Implement queue submission methods according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237869
Reviewed by Kimmo Kinnunen.
Now that we can enqueue tasks to the main thread (https://bugs.webkit.org/show_bug.cgi?id=237852)
we can now implement Queue::onSubmittedWorkDone() and Queue::submit(). The way it works is pretty
simple - there's a count of the number of submitted command buffers (m_submittedCommandBufferCount)
and the number of completed command buffers (m_completedCommandBufferCount). When the two values
are equal, the queue is idle, and the onSubmittedWorkDone() work should happen the next time the
runloop turns. Otherwise, we stick the work in a HashMap, keyed by the value that
m_completedCommandBufferCount will have to become at the point this callback should run.
- WebGPU/Queue.h:
(WebGPU::Queue::commandQueue const):
- WebGPU/Queue.mm:
(WebGPU::Queue::onSubmittedWorkDone):
(WebGPU::Queue::validateSubmit const):
(WebGPU::Queue::submit):
- WebGPU/TextureView.mm:
- 2:06 PM Changeset in webkit [291365] by
-
- 8 edits in trunk/Source/WebGPU
[WebGPU] Create a path of Ref<>s between Instance and Queue
https://bugs.webkit.org/show_bug.cgi?id=237864
Reviewed by Kimmo Kinnunen.
The ownership model of WebGPU is that there is a tree of objects, and Javascript has references
to the leaves of the tree. The leaves are therefore allowed to reference their parents, all the
way up the tree. Therefore, Buffer can have a Ref to Device, which can have a Ref to Instance.
Device has to be in the chain eventually, because of the "valid to use with" check:
https://gpuweb.github.io/gpuweb/#abstract-opdef-valid-to-use-with, so we might as well add it in
to the chain now.
The one exception from this ownership model is Queue, which needs to be owned by Device, so
Device::getQueue() can return the same object when called multiple times (see
https://bugs.webkit.org/show_bug.cgi?id=237861). So, Queue has a raw C++ reference to its owning
Device.
Queue needs to be able to run asynchronous work, becuase Queue will need to add completedHandlers
to all command buffers committed, in order to perform its own internal bookkeeping. So, Queue
uses its C++ reference to its owning Device, which uses its Ref to its Instance, in order to use
Instance's facilities for running asynchronous work. This patch adds the necessesary Ref<>s to
make that happen.
- WebGPU/Adapter.h:
(WebGPU::Adapter::create):
- WebGPU/Adapter.mm:
(WebGPU::Adapter::Adapter):
(WebGPU::Adapter::requestDevice):
(WebGPU::Adapter::scheduleWork):
- WebGPU/Device.h:
(WebGPU::Device::create):
- WebGPU/Device.mm:
(WebGPU::createDefaultQueue):
(WebGPU::Device::Device):
(WebGPU::Device::scheduleWork):
(WebGPU::Device::create): Deleted.
- WebGPU/Instance.mm:
(WebGPU::Instance::requestAdapter):
- WebGPU/Queue.h:
(WebGPU::Queue::create):
- WebGPU/Queue.mm:
(WebGPU::Queue::Queue):
(WebGPU::Queue::scheduleWork):
- 1:52 PM Changeset in webkit [291364] by
-
- 10 edits6 adds in trunk/Source/WebCore
[GPU Process] Move other classes out of GraphicsContext.h
https://bugs.webkit.org/show_bug.cgi?id=237944
Reviewed by Simon Fraser.
This is a step towards making GraphicsContextState a class and move
more functionalities to it.
- Headers.cmake:
- PlatformAppleWin.cmake:
- PlatformMac.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/GraphicsContext.cpp:
(WebCore::TextBoxIterator::TextBoxIterator): Deleted.
(WebCore::TextBoxIterator::offset const): Deleted.
(WebCore::TextBoxIterator::increment): Deleted.
(WebCore::TextBoxIterator::atEnd const): Deleted.
(WebCore::TextBoxIterator::current const): Deleted.
(WebCore::TextBoxIterator::direction const): Deleted.
(WebCore::TextBoxIterator::operator== const): Deleted.
(WebCore::TextBoxIterator::operator!= const): Deleted.
(WebCore::GraphicsContextState::GraphicsContextState): Deleted.
(WebCore::GraphicsContextState::mergeChanges): Deleted.
(WebCore::GraphicsContextStateChange::changesFromState const): Deleted.
(WebCore::GraphicsContextStateChange::accumulate): Deleted.
(WebCore::GraphicsContextStateChange::apply const): Deleted.
(WebCore::GraphicsContextStateChange::dump const): Deleted.
(WebCore::operator<<): Deleted.
- platform/graphics/GraphicsContext.h:
(WebCore::DocumentMarkerLineStyle::encode const): Deleted.
(WebCore::DocumentMarkerLineStyle::decode): Deleted.
(WebCore::GraphicsContextStateChange::GraphicsContextStateChange): Deleted.
(WebCore::GraphicsContextStateSaver::GraphicsContextStateSaver): Deleted.
(WebCore::GraphicsContextStateSaver::~GraphicsContextStateSaver): Deleted.
(WebCore::GraphicsContextStateSaver::save): Deleted.
(WebCore::GraphicsContextStateSaver::restore): Deleted.
(WebCore::GraphicsContextStateSaver::context const): Deleted.
(WebCore::TransparencyLayerScope::TransparencyLayerScope): Deleted.
(WebCore::TransparencyLayerScope::beginLayer): Deleted.
(WebCore::TransparencyLayerScope::~TransparencyLayerScope): Deleted.
(WebCore::GraphicsContextStateStackChecker::GraphicsContextStateStackChecker): Deleted.
(WebCore::GraphicsContextStateStackChecker::~GraphicsContextStateStackChecker): Deleted.
(WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer): Deleted.
(WebCore::InterpolationQualityMaintainer::~InterpolationQualityMaintainer): Deleted.
- platform/graphics/GraphicsContextState.cpp: Added.
(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContextState::mergeChanges):
(WebCore::GraphicsContextStateChange::changesFromState const):
(WebCore::GraphicsContextStateChange::accumulate):
(WebCore::GraphicsContextStateChange::apply const):
(WebCore::GraphicsContextStateChange::dump const):
(WebCore::operator<<):
- platform/graphics/GraphicsContextState.h: Added.
(WebCore::GraphicsContextStateChange::GraphicsContextStateChange):
- platform/graphics/GraphicsContextStateSaver.h: Added.
(WebCore::GraphicsContextStateSaver::GraphicsContextStateSaver):
(WebCore::GraphicsContextStateSaver::~GraphicsContextStateSaver):
(WebCore::GraphicsContextStateSaver::save):
(WebCore::GraphicsContextStateSaver::restore):
(WebCore::GraphicsContextStateSaver::context const):
(WebCore::TransparencyLayerScope::TransparencyLayerScope):
(WebCore::TransparencyLayerScope::beginLayer):
(WebCore::TransparencyLayerScope::~TransparencyLayerScope):
(WebCore::GraphicsContextStateStackChecker::GraphicsContextStateStackChecker):
(WebCore::GraphicsContextStateStackChecker::~GraphicsContextStateStackChecker):
(WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
(WebCore::InterpolationQualityMaintainer::~InterpolationQualityMaintainer):
- platform/graphics/GraphicsTypes.h:
(WebCore::DocumentMarkerLineStyle::encode const):
(WebCore::DocumentMarkerLineStyle::decode):
- platform/graphics/PlatformGraphicsContext.h: Added.
- platform/graphics/TextBoxIterator.h: Added.
(WebCore::TextBoxIterator::TextBoxIterator):
(WebCore::TextBoxIterator::offset const):
(WebCore::TextBoxIterator::increment):
(WebCore::TextBoxIterator::atEnd const):
(WebCore::TextBoxIterator::current const):
(WebCore::TextBoxIterator::direction const):
(WebCore::TextBoxIterator::operator== const):
(WebCore::TextBoxIterator::operator!= const):
- platform/graphics/cg/CGContextStateSaver.h: Added.
(WebCore::CGContextStateSaver::CGContextStateSaver):
(WebCore::CGContextStateSaver::~CGContextStateSaver):
(WebCore::CGContextStateSaver::save):
(WebCore::CGContextStateSaver::restore):
(WebCore::CGContextStateSaver::didSave const):
- platform/graphics/cg/GraphicsContextCG.h:
(WebCore::CGContextStateSaver::CGContextStateSaver): Deleted.
(WebCore::CGContextStateSaver::~CGContextStateSaver): Deleted.
(WebCore::CGContextStateSaver::save): Deleted.
(WebCore::CGContextStateSaver::restore): Deleted.
(WebCore::CGContextStateSaver::didSave const): Deleted.
- 1:50 PM Changeset in webkit [291363] by
-
- 2 edits in trunk/Tools
Suppress warnings for implicit conversion from unsigned long to double
https://bugs.webkit.org/show_bug.cgi?id=237899
<rdar://problem/90364907>
Reviewed by Darin Adler.
Add static_cast for approx casting to double.
- TestWebKitAPI/Tests/WTF/Int128.cpp:
(TestWebKitAPI::TEST):
- 1:45 PM Changeset in webkit [291362] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo][WebGL] Crash in WebKit::WCContentBuffer::platformLayerWillBeDestroyed()
https://bugs.webkit.org/show_bug.cgi?id=237819
Reviewed by Don Olmstead.
WinCairo WTR was randomly crashing in
WCContentBuffer::platformLayerWillBeDestroyed(). It accessed a
stale pointer of WCScene::Layer.
- GPUProcess/graphics/wc/WCScene.cpp:
(WebKit::WCScene::Layer::~Layer): Clear the client of
WCContentBuffer.
(WebKit::WCScene::update):
- 1:29 PM Changeset in webkit [291361] by
-
- 10 edits in trunk/Source
[iOS] WebAVMediaSelectionOption should implement -mediaType
https://bugs.webkit.org/show_bug.cgi?id=237966
rdar://89934589
Reviewed by Jer Noble.
Source/WebCore:
WebKit uses AVKit to implement "video fullscreen" on iOS. AVKit can only be used
in the UI process, but WebKit's AVFoundation objects are in the GPU process, so we
create "proxy" objects in the UI process and pass state from them between the two
processes. One such object is WebAVMediaSelectionOption, which proxies for an
AVMediaSelectionOption. This proxy originally only implemented -localizedDisplayName
but AVKit now sometimes uses -mediaType, which causes an assert when it messages the
non-existent selector. Add -mediaType to fix the assert, and add log-only stubs
for every other AVMediaSelectionOption selector to catch future changes.
- page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::mediaSelectionOptionForTrack const):
- platform/MediaSelectionOption.h:
(WebCore::MediaSelectionOption::MediaSelectionOption):
(WebCore::MediaSelectionOption::isolatedCopy const):
(WebCore::MediaSelectionOption::isolatedCopy):
(WebCore::MediaSelectionOption::encode const):
(WebCore::MediaSelectionOption::decode):
- platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebCore::toAVMediaType):
(WebCore::mediaSelectionOptions):
- platform/ios/WebAVPlayerController.h:
- platform/ios/WebAVPlayerController.mm:
(-[WebAVMediaSelectionOption initWithMediaType:displayName:]):
(-[WebAVMediaSelectionOption mediaSubTypes]):
(-[WebAVMediaSelectionOption hasMediaCharacteristic:]):
(-[WebAVMediaSelectionOption isPlayable]):
(-[WebAVMediaSelectionOption extendedLanguageTag]):
(-[WebAVMediaSelectionOption locale]):
(-[WebAVMediaSelectionOption commonMetadata]):
(-[WebAVMediaSelectionOption availableMetadataFormats]):
(-[WebAVMediaSelectionOption metadataForFormat:]):
(-[WebAVMediaSelectionOption associatedMediaSelectionOptionInMediaSelectionGroup:]):
(-[WebAVMediaSelectionOption propertyList]):
(-[WebAVMediaSelectionOption displayNameWithLocale:]):
(-[WebAVMediaSelectionOption mediaCharacteristics]):
(-[WebAVMediaSelectionOption outOfBandSource]):
(-[WebAVMediaSelectionOption outOfBandIdentifier]):
(-[WebAVMediaSelectionOption _isDesignatedDefault]):
(-[WebAVMediaSelectionOption languageCode]):
(-[WebAVMediaSelectionOption track]):
- platform/mac/WebPlaybackControlsManager.mm:
(toAVTouchBarMediaSelectionOptionType):
(mediaSelectionOptions):
Source/WebKit:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<MediaSelectionOption>::encode): Deleted.
(IPC::ArgumentCoder<MediaSelectionOption>::decode): Deleted.
- Shared/WebCoreArgumentCoders.h:
- 12:35 PM Changeset in webkit [291360] by
-
- 13 edits1 add in trunk/LayoutTests
Sync css/css-contain from WPT
https://bugs.webkit.org/show_bug.cgi?id=237705
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-16
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Sync css/css-contain from WPT.
- resources/resource-files.json:
- web-platform-tests/css/css-contain/contain-layout-ink-overflow-013-expected.html:
- web-platform-tests/css/css-contain/contain-layout-ink-overflow-013.html:
- web-platform-tests/css/css-contain/contain-layout-ink-overflow-014.html:
- web-platform-tests/css/css-contain/contain-layout-ink-overflow-017.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/resources/text-fragment-target-auto.html:
- web-platform-tests/css/css-contain/content-visibility/w3c-import.log:
- web-platform-tests/css/css-contain/w3c-import.log:
LayoutTests:
Mark as failing for now.
- platform/ios/TestExpectations:
- 11:42 AM Changeset in webkit [291359] by
-
- 4 edits in trunk/LayoutTests
[ MacOS ] http/tests/security/content SecurityPolicy/frame-src-cross-origin-load.html is a flakey failure (230428)
https://bugs.webkit.org/show_bug.cgi?id=230428
<rdar://problem/83254559>
Reviewed by Brent Fulgham.
The flakiness was caused by relying on ordered output from iframe
loads that are not guaranteed to load in order. This change loads
iframes in script to make sure they load only after the previous
iframe has loaded.
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load-expected.txt:
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html:
- platform/mac/TestExpectations:
- 10:42 AM Changeset in webkit [291358] by
-
- 1 copy in tags/Safari-614.1.5.9.1
Tag Safari-614.1.5.9.1.
- 10:33 AM Changeset in webkit [291357] by
-
- 12 edits2 adds in trunk/Source/WebCore
Migrate use of MediaSampleGStreamer to VideoFrame in WebRTC pipelines
https://bugs.webkit.org/show_bug.cgi?id=237885
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-16
Reviewed by Youenn Fablet.
Introducing VideoFrameGStreamer, meant to be used from mediastream producers and consumers.
The VideoFrame internally manages a GstSample storing the actual video frame data that can
be passed around between RealtimeMediaSources and the mediastream GStreamer source element.
Covered by existing layout tests.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toMediaSample):
- platform/GStreamer.cmake:
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
(WebCore::MediaSampleGStreamer::createFakeSample):
(WebCore::MediaSampleGStreamer::createImageSample): Deleted.
(WebCore::MediaSampleGStreamer::initializeFromBuffer): Deleted.
(WebCore::MediaSampleGStreamer::getRGBAImageData const): Deleted.
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
(WebCore::MediaSampleGStreamer::create):
(WebCore::MediaSampleGStreamer::createWrappedSample): Deleted.
(WebCore::MediaSampleGStreamer::createImageSample): Deleted.
- platform/graphics/gstreamer/VideoFrameGStreamer.cpp: Added.
(WebCore::VideoFrameGStreamer::createFromPixelBuffer):
(WebCore::VideoFrameGStreamer::VideoFrameGStreamer):
(WebCore::VideoFrameGStreamer::getRGBAImageData const):
- platform/graphics/gstreamer/VideoFrameGStreamer.h: Added.
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLTextureMapper::paintCompositedResultsToMediaSample):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
- platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::processNewFrame):
(WebCore::GStreamerVideoCaptureSource::newSampleCallback):
- platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
- platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::OnFrame):
- platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable):
- 10:10 AM Changeset in webkit [291356] by
-
- 1 copy in tags/Safari-614.1.5.12
Tag Safari-614.1.5.12.
- 10:08 AM Changeset in webkit [291355] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.12
- 9:56 AM Changeset in webkit [291354] by
-
- 3 edits in trunk/Tools
[Merge-Queue] Rename patch_reviewer
https://bugs.webkit.org/show_bug.cgi?id=237916
<rdar://problem/90324765>
Reviewed by Aakash Jain.
Rename patch_reviewer to reviewer for compatibility with
pull requests.
- Tools/CISupport/ews-build/steps.py:
(ApplyPatch.start):
(BugzillaMixin._does_patch_have_acceptable_review_flag):
(ValidateCommiterAndReviewer.start):
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/248489@main
- 8:25 AM Changeset in webkit [291353] by
-
- 2 edits in trunk/LayoutTests
[GStreamer][1.20] media/video-src-blob-perf.html failing
https://bugs.webkit.org/show_bug.cgi?id=237256
<rdar://problem/89530009>
Unreviewed, unflag test passing after Flatpak SDK update.
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-16
- platform/glib/TestExpectations:
- 8:20 AM Changeset in webkit [291352] by
-
- 3 edits in trunk/Source/WebKit
Incorrect header name used in has_include
https://bugs.webkit.org/show_bug.cgi?id=237914
<rdar://90271228>
Reviewed by Geoffrey Garen.
- Configurations/WebKit.xcconfig:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- 8:17 AM Changeset in webkit [291351] by
-
- 4 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Merge r291335 - [GTK][WPE] Crash during the WebPage::close() related to GL resources destruction
https://bugs.webkit.org/show_bug.cgi?id=237588
Reviewed by Carlos Garcia Campos.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::updateSceneWithoutRendering):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- 8:10 AM Changeset in webkit [291350] by
-
- 26 edits5 adds in releases/WebKitGTK/webkit-2.36
Merge r290639 - Make input element UA shadow tree creation lazy
https://bugs.webkit.org/show_bug.cgi?id=236747
Reviewed by Aditya Keerthi.
Source/WebCore:
We currently delay InputType creation for parser inserted elements until
just after the attributes have been set, so that we don't wastefully
create an InputType and the UA shadow tree creation if a non-text
type="" was specified on the tag. We don't do anything similar for
script inserted input elements. We could make the InputType creation
lazy, but most of the wasted time is due to the shadow tree creation.
This patch makes InputType shadow tree creation lazy by delaying it
until one of the following happens:
- the element is inserted into the document
- the type="" or value="" attributes are changed before the element is inserted into the document
- any DOM methods that need access to the innerTextElement() are called on the element before the element is inserted into the document
Not all places where we call innerTextElement() on the
HTMLInputElement are safe to lazily create the shadow trees, so we
have two accessors:
- innerTextElement() returns the inner text element if it's been created already
- innerTextElementCreatingShadowSubtreeIfNeeded will perform the lazy shadow tree construction if it hasn't already been done
Since the existing
createShadowSubtreeAndUpdateInnerTextElementEditability function has
more responsibility than just creating the subtree and ensuring the
editability is set appropriately, it's renamed to a more manageable
createShadowSubtree.
This change is a 0.5% progression on Speedometer 2.
Test: fast/forms/lazy-shadow-tree-creation.html
- html/BaseDateAndTimeInputType.h:
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::createShadowSubtree):
(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/ColorInputType.h:
- html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/FileInputType.h:
- html/FileInputType.cpp:
(WebCore::FileInputType::createShadowSubtree):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/InputType.cpp:
(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/RangeInputType.h:
- html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/SearchInputType.h:
- html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed createShadowSubtreeAndUpdateInnerTextElementEditability to
createShadowSubtree and remove the "isInnerTextElementEditable"
argument, since we can ask the element() for its value if needed.
createShadowSubtree is now also responsible for creating the shadow
root.
- html/TextFieldInputType.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed. Ensure all shadow tree state is up to date now that it can be
created later.
- html/InputType.h:
- html/InputType.cpp:
(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::hasCreatedShadowSubtree const):
New functions to create the shadow subtree if it hasn't been done
already, and to query whether it's been done.
- html/HTMLInputElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::innerTextElementCreatingShadowSubtreeIfNeeded):
- html/HTMLTextAreaElement.h:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::innerTextElementCreatingShadowSubtreeIfNeeded):
- html/HTMLTextFormControlElement.h:
- html/InputType.h:
- html/InputType.cpp:
(WebCore::InputType::innerTextElementCreatingShadowSubtreeIfNeeded):
New functions to first create the shadow subtree before returning
innerTextElement(). HTMLTextAreaElement never lazily creates its
shadow subtree and so just returns innerTextElement().
- html/HTMLInputElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):
Deleted. Just call through to m_inputType->createShadowTree()
directly.
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::updateType):
Don't immediately create the shadow tree.
(WebCore::HTMLInputElement::didFinishInsertingNode):
Create the shadow subtree now that the element's been inserted. No
need to call dataListMayHaveChanged since
TextFieldInputType::createShadowSubtree will now do this.
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::updateInnerTextValue):
Ensure the shadow subtree is created since we need to poke at it.
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::forwardEvent):
Don't forward the event if the shadow tree hasn't been created yet.
(WebCore::HTMLTextFormControlElement::setSelectionRange):
Ensure the shadow tree has been created. This is needed if the
selection APIs are called on the input element before it's inserted
into the document.
(WebCore::HTMLTextFormControlElement::visiblePositionForIndex const):
Assert that the shadow tree has been created, since editing
functionality should only be needed if the element's been inserted
into the document.
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
Ensure the shadow tree has been created.
- html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent):
(WebCore::RangeInputType::handleTouchEvent):
Ensure the shadow tree has been created in case the event will change
the value.
(WebCore::RangeInputType::sliderTrackElement const):
Only return the element if it's been created.
(WebCore::RangeInputType::typedSliderThumbElement const):
Assert that the element has been created.
(WebCore::RangeInputType::dataListMayHaveChanged):
Only try to re-layout if the shadow tree has been created.
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::isEmptyValue const):
Avoid creating the shadow subtree.
(WebCore::TextFieldInputType::forwardEvent):
Move the element assertion up to be consistent with other functions.
(WebCore::TextFieldInputType::innerTextElement const):
Don't assert, since this now can legitimately return null.
- html/FileInputType.cpp:
(WebCore::FileInputType::disabledStateChanged):
(WebCore::FileInputType::attributeChanged):
- html/RangeInputType.cpp:
(WebCore::RangeInputType::disabledStateChanged):
(WebCore::RangeInputType::attributeChanged):
(WebCore::RangeInputType::setValue):
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::disabledStateChanged):
(WebCore::TextFieldInputType::readOnlyStateChanged):
(WebCore::TextFieldInputType::updatePlaceholderText):
(WebCore::TextFieldInputType::updateAutoFillButton):
(WebCore::TextFieldInputType::dataListMayHaveChanged):
Don't update the shadow tree contents if it hasn't been created yet.
createShadowTree is responsible for ensuring it creates the shadow
tree contents reflecting the current state.
LayoutTests:
- fast/forms/lazy-shadow-tree-creation-expected.html: Added.
- fast/forms/lazy-shadow-tree-creation.html: Added.
- fast/forms/lazy-shadow-tree-creation.js: Added.
(supportsType):
(makeAndAppendInput):
- LayoutTests/fast/forms/lazy-shadow-tree-creation-crash.html:
- LayoutTests/fast/forms/lazy-shadow-tree-creation-crash-expected.html:
Crashtest.
- fast/shadow-dom/style-resolver-sharing-expected.txt:
Update to account for the lazy shadow tree being created later.
- 8:10 AM Changeset in webkit [291349] by
-
- 8 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore
Merge r290574 - Add a mechanism to request a UA shadow tree update before style
https://bugs.webkit.org/show_bug.cgi?id=237224
Reviewed by Antti Koivisto.
SVG <use> elements register themselves with the document when their
shadow tree contents need updating, and this updating is done in
Document::resolveStyle. For lazy HTML <input> element UA shadow trees
(in bug 236747) we need something similar.
- dom/Document.cpp:
(WebCore::Document::resolveStyle):
(WebCore::Document::addElementWithPendingUserAgentShadowTreeUpdate):
(WebCore::Document::removeElementWithPendingUserAgentShadowTreeUpdate):
- dom/Document.h:
- dom/Element.h:
(WebCore::Element::updateUserAgentShadowTree):
- svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Deleted.
(WebCore::SVGDocumentExtensions::addUseElementWithPendingShadowTreeUpdate): Deleted.
(WebCore::SVGDocumentExtensions::removeUseElementWithPendingShadowTreeUpdate): Deleted.
- svg/SVGDocumentExtensions.h:
(WebCore::SVGDocumentExtensions::useElementsWithPendingShadowTreeUpdate const): Deleted.
- svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedIntoAncestor):
(WebCore::SVGUseElement::removedFromAncestor):
(WebCore::SVGUseElement::updateUserAgentShadowTree):
(WebCore::SVGUseElement::invalidateShadowTree):
(WebCore::SVGUseElement::updateShadowTree): Deleted.
- svg/SVGUseElement.h:
- 8:10 AM Changeset in webkit [291348] by
-
- 22 edits3 deletes in releases/WebKitGTK/webkit-2.36
Merge r290414 - Unreviewed, reverting r290284.
https://bugs.webkit.org/show_bug.cgi?id=237131
It is preventing the fuzzer from finding other bugs
Reverted changeset:
"Make input element UA shadow tree creation lazy"
https://bugs.webkit.org/show_bug.cgi?id=236747
https://commits.webkit.org/r290284
- 8:06 AM Changeset in webkit [291347] by
-
- 3 edits2 adds in trunk
[iOS] Refactor some position information hit-testing logic related to data detectors in Live Text
https://bugs.webkit.org/show_bug.cgi?id=237927
Reviewed by Tim Horton.
Source/WebKit:
Pull the call to
dataDetectorImageOverlayPositionInformation()out fromelementPositionInformation(), and
into the top level inWebPage::positionInformation(). SincedataDetectorImageOverlayPositionInformationonly
depends on the hit-tested inner node (rather than the element responding to click events), it doesn't make sense
to only populate the data detector results array only when we find an element that responds to clicks.
Test: fast/images/text-recognition/ios/show-data-detector-context-menu.html
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::elementPositionInformation):
(WebKit::WebPage::positionInformation):
LayoutTests:
Add a simple layout test that exercises context menu presentation when long pressing a data detector result
inside Live Text in an image. While this behavior isn't new, it's currently untested before this patch.
- fast/images/text-recognition/ios/show-data-detector-context-menu-expected.txt: Added.
- fast/images/text-recognition/ios/show-data-detector-context-menu.html:
Also add
-webkit-user-select: none;to test that disabling text selection does not also disable the ability to
present the context menu over data detectors by long pressing on iOS.
- 7:41 AM Changeset in webkit [291346] by
-
- 4 edits in trunk/Source/WebCore
[IFC][Integration] Move firstSelectedBox/lastSelectedBox out of InlineIterator::Line
https://bugs.webkit.org/show_bug.cgi?id=237941
Reviewed by Simon Fraser.
These functions don't belong in InlineIterator::Line (they are standalone functions with only one callsite).
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::firstSelectedBox const): Deleted.
(WebCore::InlineIterator::Line::lastSelectedBox const): Deleted.
- layout/integration/InlineIteratorLine.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineSelectionGaps):
- 7:28 AM Changeset in webkit [291345] by
-
- 7 edits2 adds1 delete in trunk/Tools/buildstream
[Flatpak SDK] Update to GStreamer 1.20.1
https://bugs.webkit.org/show_bug.cgi?id=237954
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-16
Reviewed by Adrian Perez de Castro.
- elements/sdk/gst-libav.bst:
- elements/sdk/gst-plugins-bad.bst:
- elements/sdk/gst-plugins-base.bst:
- elements/sdk/gst-plugins-good.bst:
- elements/sdk/gst-plugins-ugly.bst:
- elements/sdk/gstreamer.bst:
- patches/gstreamer-0001-dtlstransport-Notify-ICE-transport-property-changes.patch: Removed.
- patches/gstreamer-0001-typefind-Skip-parsing-of-data-URIs.patch: Added.
- patches/gstreamer-0002-uri-Build-doubly-linked-list-by-prepending-items.patch: Added.
- 6:14 AM Changeset in webkit [291344] by
-
- 3 edits in trunk/Source/WebCore
AX: imported/w3c/web-platform-tests/speech-api/SpeechSynthesis (layout-tests) are constant text failures
https://bugs.webkit.org/show_bug.cgi?id=237881
<rdar://problem/90293806>
Reviewed by Andres Gonzalez.
Keep track of the platform utterances so that we can verify the callbacks are for the ones we are interested in.
This test failure was due to a previous speech job that was canceled (before a new one started). When the callback for
the last one came back, it wiped out the stored new one.
Fixed test: imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-events.html.
- platform/PlatformSpeechSynthesisUtterance.h:
(WebCore::PlatformSpeechSynthesisUtterance::platformSpeechUtteranceWrapper const):
(WebCore::PlatformSpeechSynthesisUtterance::setPlatformSpeechUtteranceWrapper):
- platform/cocoa/PlatformSpeechSynthesizerCocoa.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didStartSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didPauseSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didContinueSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didCancelSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
- 6:12 AM Changeset in webkit [291343] by
-
- 10 edits7 adds in trunk/Source/WebCore
[GTK][WPE] Provide DMABuf-based composition layers, DMABufVideoSink integration
https://bugs.webkit.org/show_bug.cgi?id=237328
<rdar://problem/90295492>
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-16
Reviewed by Alejandro G. Castro.
Introduce TextureMapperPlatformLayerProxyDMABuf, a TextureMapper proxy
implementation that handles platform layers backed by dmabuf objects.
This will be used to handle display of dmabuf producers like GStreamer
pipelines or ANGLE-backed WebGL contexts. The DMABufLayer class is the
platform layer object, handling display of the actual dmabuf. The proxy
itself is tasked with creating and caching such layers for any dmabuf
object that originates from the producer.
For each dmabuf object pushed into the proxy, the according DMABufLayer
object is spawned and cached for future reuse, expecting the producer
to be able to provide dmabufs from a pool or swapchain of these objects.
The cache is emptied whenever dmabufs go unused for a certain amount of
swaps, or if the size of the provided dmabufs changes.
DMABufFormat provides information for different DRM formats, for
instance how different planes for specific formats are formatted and
sized.
DMABufObject is a class that handles a given grouping of dmabufs
according to the specified format. It has an associated handle value,
size, and per-plane dmabuf file descriptors, offsets, strides and
modifiers, along with a DMABufReleaseFlag instance.
DMABufReleaseFlag objects are used as an eventfd-based release mechanism
that indicates to the producer that the given DMABufObject has been
presented and subsequently released and is thus available for reuse.
GBMBufferSwapchain provides a custom swapchain implementation that's
based on libgbm functionality. Each such swapchain has a capacity
specified during construction, with the capacities of four or eight
currently supported. getBuffer() is called by the producer to obtain a
buffer object that's then used for backing of specific content like
ANGLE execution or media's software-decoded video frames. Buffers
obtained this way are moved over to the end of the buffer array, with
the expectation of reusing them once they are released by the
composition engine.
MediaPlayerPrivateGStreamer implementation is enhanced to use the
recently-added WebKitDMABufVideoSink element if its use is enabled
through the development-purpose environment variable and if the
necessary GStreamer facilities are present on the system. When these
conditions are met, the Nicosia::ContentLayer instance is also
constructed with a TextureMapperPlatformLayerProxyDMABuf instance, since
we expect to present the dmabufs through that functionality.
With the WebKitDMABufVideoSink, the incoming samples are either based
on dmabufs (in case of dmabuf-capable hardware decoder) or are just raw
data (most likely coming from a software-based decoder). In case of
dmabufs we can use the GstMemory pointer as the handle through which
the relevant data is cached in TextureMapperPlatformLayerProxyDMABuf,
and upon the first occurrence we retrieve all the relevant dmabuf data
so that it can be used by that proxy implementation to construct a
renderable EGLImage.
In case of software-decoded raw data, we have to use the swapchain
object and copy the data on a per-plane basis for each such sample,
finally pushing the dmabuf data of that swapchain buffer into the
TextureMapperPlatformLayerProxyDMABuf instance.
Changes around TextureMapperPlatformLayerProxyDMABuf and GStreamer
integration are guarded with USE(TEXTURE_MAPPER_DMABUF). No port yet
enables this build guard, but this will be handled later. Similarly,
the code specific to libgbm will also be guarded in a separate set of
changes.
- SourcesGTK.txt:
- SourcesWPE.txt:
- platform/TextureMapper.cmake:
- platform/graphics/gbm/DMABufFormat.h: Added.
(WebCore::DMABufFormatImpl::createFourCC):
(WebCore::DMABufFormat::planeWidth const):
(WebCore::DMABufFormat::planeHeight const):
(WebCore::DMABufFormat::Plane::Plane):
(WebCore::DMABufFormatImpl::createSinglePlaneRGBA):
(WebCore::DMABufFormatImpl::definePlane):
(WebCore::DMABufFormat::instantiate):
(WebCore::DMABufFormat::create):
- platform/graphics/gbm/DMABufObject.h: Added.
(WebCore::DMABufObject::DMABufObject):
(WebCore::DMABufObject::~DMABufObject):
(WebCore::DMABufObject::operator=):
- platform/graphics/gbm/DMABufReleaseFlag.h: Added.
(WebCore::DMABufReleaseFlag::DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::~DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::operator=):
(WebCore::DMABufReleaseFlag::dup const):
(WebCore::DMABufReleaseFlag::released const):
(WebCore::DMABufReleaseFlag::release):
- platform/graphics/gbm/GBMBufferSwapchain.cpp: Added.
(WebCore::GBMBufferSwapchain::GBMBufferSwapchain):
(WebCore::GBMBufferSwapchain::getBuffer):
(WebCore::GBMBufferSwapchain::Buffer::Buffer):
(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):
(WebCore::GBMBufferSwapchain::Buffer::PlaneData::~PlaneData):
- platform/graphics/gbm/GBMBufferSwapchain.h: Added.
(WebCore::GBMBufferSwapchain::Buffer::handle const):
(WebCore::GBMBufferSwapchain::Buffer::numPlanes const):
(WebCore::GBMBufferSwapchain::Buffer::planeData const):
- platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:
(webKitDMABufVideoSinkIsEnabled):
(webKitDMABufVideoSinkSetMediaPlayerPrivate):
- platform/graphics/gstreamer/DMABufVideoSinkGStreamer.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::platformLayer const):
(WebCore::fourccValue):
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkDMABuf):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:
(Nicosia::ContentLayerTextureMapperImpl::createFactory):
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: Added.
(WebCore::createImageKHR):
(WebCore::destroyImageKHR):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::EGLImageData::~EGLImageData):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::invalidate):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::swapBuffer):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::pushDMABuf):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::DMABufLayer):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::paintToTextureMapper):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h: Added.
- 6:03 AM Changeset in webkit [291342] by
-
- 2 edits in trunk/Source/WebCore
[GTK][WPE] Debug build assertion, TextureMapperPlatformLayerProxyGL asserts when going back in the minibrowser
https://bugs.webkit.org/show_bug.cgi?id=237948
We are not initializing m_compositorThread properly with the
invalidation and the ThreadedCompositor is destroyed after a
navigation, and when going back the browser asserts because the
ThreadedCompositor is a different one. This is just for debug
builds.
Patch by Alejandro G. Castro <alex@igalia.com> on 2022-03-16
Reviewed by Carlos Garcia Campos.
Not clear how to reproduce this situation with tests because we
need to navigate back with different origins. I'm opening a bug
connected to this one to check how to do it.
- platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp:
(WebCore::TextureMapperPlatformLayerProxyGL::invalidate):
- 5:54 AM Changeset in webkit [291341] by
-
- 17 edits in trunk
Make MIMETypeRegistry::mimeTypeForPath take a StringView
https://bugs.webkit.org/show_bug.cgi?id=236441
<rdar://problem/89084526>
Reviewed by Chris Dumez.
Source/WebCore:
Passing a StringView is more efficient for some code paths.
Covered by existing tests.
- editing/cocoa/WebArchiveResourceFromNSAttributedString.mm:
(WebCore::if):
- fileapi/File.cpp:
(WebCore::File::computeNameAndContentType):
- loader/cocoa/BundleResourceLoader.mm:
(WebCore::BundleResourceLoader::loadResourceFromBundle):
- platform/MIMETypeRegistry.cpp:
(WebCore::commonMimeTypesMap):
- platform/MIMETypeRegistry.h:
- platform/cocoa/MIMETypeRegistryCocoa.mm:
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
- platform/win/MIMETypeRegistryWin.cpp:
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
- platform/xdg/MIMETypeRegistryXdg.cpp:
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
Source/WebKit:
- UIProcess/API/Cocoa/APIAttachmentCocoa.mm:
(API::mimeTypeInferredFromFileExtension):
(API::Attachment::setFileWrapperAndUpdateContentType):
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm:
(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
- UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Source/WebKitLegacy/ios:
- WebCoreSupport/WebMIMETypeRegistry.mm:
(+[WebMIMETypeRegistry mimeTypeForExtension:]):
Tools:
- TestWebKitAPI/cocoa/TestInspectorURLSchemeHandler.mm:
(-[TestInspectorURLSchemeHandler webView:startURLSchemeTask:]):
- 5:52 AM Changeset in webkit [291340] by
-
- 13 edits in trunk
redirectCount returns 0 when using a Service Worker
https://bugs.webkit.org/show_bug.cgi?id=235710
<rdar://problem/88432190>
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https-expected.txt:
- web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
Source/WebKit:
Pass an optional NetworkLoadMetrics when sending the response to web process.
Include the redirectCount value computed by NetworkResourceLoader.
Make service worker redirections go through NetworkResourceLoader to set the redirectCount value and for correctness.
Covered by updated test.
- NetworkProcess/NetworkResourceLoader.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::processRedirectResponse):
- WebProcess/Network/WebResourceLoader.cpp:
- WebProcess/Network/WebResourceLoader.h:
- WebProcess/Network/WebResourceLoader.messages.in:
LayoutTests:
- http/wpt/service-workers/navigation-redirect-main-frame.https.html:
- 5:05 AM Changeset in webkit [291339] by
-
- 4 edits in trunk/Source/JavaScriptCore
MacroAssemblerARMv7: Be friendlier to DisallowMacroScratchRegisterUsage
https://bugs.webkit.org/show_bug.cgi?id=237888
Reviewed by Žan Doberšek.
Only check that we're allowed to use the scratch register at sites
where we're using it implicitly. When it's explicitly passed in by the
caller, use invalidateCachedAddressTempRegister to invalidate it
without asserting anything about m_allowScratchRegister.
Since helpers can explictly make use of addressTempRegister, an
argument can be made that this is still fragile (i.e. future changes
could run into this). The alternative would be to have the topmost caller
do fine-grained management of DisallowMacroScratchRegisterUsage,
allowing it around explicit calls to MacroAssemblerARMv7 with
scratchRegister() in the arguments and disallowing it for helpers.
As there are currently no helpers that would trip this, this patch opts
for the former approach, to make DisallowMacroScratchRegisterUsage
easier to work with (there'll be more usage of the API in an upcoming
wasm32 patch).
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::scratchRegister):
(JSC::MacroAssemblerARMv7::load32):
(JSC::MacroAssemblerARMv7::load16):
(JSC::MacroAssemblerARMv7::load16SignedExtendTo32):
(JSC::MacroAssemblerARMv7::load8):
(JSC::MacroAssemblerARMv7::load8SignedExtendTo32):
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::move):
(JSC::MacroAssemblerARMv7::farJump):
(JSC::MacroAssemblerARMv7::setupArmAddress):
(JSC::MacroAssemblerARMv7::invalidateCachedAddressTempRegister):
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::emitFastPathImpl):
- jit/BaselineJITRegisters.h:
- 3:19 AM Changeset in webkit [291338] by
-
- 3 edits in trunk/Source/WebCore
Extract transform-origin handling out of RenderStyle::applyTransform()
https://bugs.webkit.org/show_bug.cgi?id=237590
Reviewed by Simon Fraser.
RenderStyle::applyTransform() implements the algorithm given in
CSS Transforms Module Level 2 (https://www.w3.org/TR/css-transforms-2/#ctm)
that yields the "current transformation matrix". It is used e.g. in
RenderLayer::updateTransform() to compute the layer transformation
matrix, that's used for rendering.
LBSE wants to re-use the same algorithm, interchanging the individual
CSS transform properties / the CSS transform property with an external
AffineTransform, representing the SVG 2D transform.
Therefore split RenderStyle::applyTransform() into three main methods:
applyTransformOrigin / applyCSSTransform / unapplyTransformOrigin.
LBSE can call applyTransformOrigin(), multiply the TransformationMatrix
with the given SVG 2D AffineTransform and call unapplyTransformOrigin():
auto originTranslate = style.applyTransformOrigin(transform, boundingBox);
transform.multiplyAffineTransform(svgTransform.value());
style.unapplyTransformOrigin(transform, originTranslate);
The LBSE transform changes will follow in a separated patch, this only contains
the general changes. The non-SVG code paths remain unchained, since the applyTransform()
is kept as-is, just refactored to make use of the new (un)applyTransformOrigin() methods.
Covered by existing tests, no change in behaviour.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::affectedByTransformOrigin const):
(WebCore::RenderStyle::applyTransformOrigin const):
(WebCore::RenderStyle::unapplyTransformOrigin const):
(WebCore::RenderStyle::applyTransform const):
(WebCore::RenderStyle::applyCSSTransform const):
- rendering/style/RenderStyle.h:
- 3:16 AM Changeset in webkit [291337] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer] Avoid auto-selection of hole punching player
https://bugs.webkit.org/show_bug.cgi?id=237828
Reviewed by Xabier Rodriguez-Calvar.
The hole punch player private shouldn't be automatically selected when
the mime type is empty or unsupported by that specific player
("video/holepunch" in practice). This patch returns a FormatError
networkState in those cases, forcing the selection algorithm to
discard the hole punch player private.
This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797
- platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp: Implement networkState setter. Set FormatError networkState on load when the mime type is empty or unknown.
- platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h: Refactor networkState management. Move load() implementation to cpp file.
- 3:14 AM Changeset in webkit [291336] by
-
- 2 edits1 delete in trunk/LayoutTests
LayoutTests/webaudio tests are skipped in iOS
https://bugs.webkit.org/show_bug.cgi?id=237889
Unreviewed.
Unskip tests and removed obsolete iOS specific expected.txt files.
- platform/ios/TestExpectations:
- platform/ios/webaudio/analyser-exception-expected.txt: Removed.
- platform/ios/webaudio/audiobuffer-expected.txt: Removed.
- platform/ios/webaudio/audiobuffer-neuter-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-channels-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-ended-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-exception-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-loop-comprehensive-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-loop-points-expected.wav: Removed.
- platform/ios/webaudio/audiobuffersource-playbackState-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-playbackrate-expected.wav: Removed.
- platform/ios/webaudio/audiobuffersource-start-expected.txt: Removed.
- platform/ios/webaudio/audiochannelmerger-basic-expected.txt: Removed.
- platform/ios/webaudio/audiochannelsplitter-expected.txt: Removed.
- platform/ios/webaudio/audionode-expected.txt: Removed.
- platform/ios/webaudio/biquadfilternode-basic-expected.txt: Removed.
- platform/ios/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Removed.
- platform/ios/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Removed.
- platform/ios/webaudio/codec-tests/vorbis/vbr-128kbps-44khz-expected.txt: Removed.
- platform/ios/webaudio/codec-tests/vorbis/vbr-96kbps-44khz-expected.txt: Removed.
- platform/ios/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Removed.
- platform/ios/webaudio/convolver-setBuffer-null-expected.txt: Removed.
- platform/ios/webaudio/decode-audio-data-basic-expected.txt: Removed.
- platform/ios/webaudio/delaynode-maxdelaylimit-expected.txt: Removed.
- platform/ios/webaudio/distance-exponential-expected.txt: Removed.
- platform/ios/webaudio/distance-inverse-expected.txt: Removed.
- platform/ios/webaudio/distance-linear-expected.txt: Removed.
- platform/ios/webaudio/javascriptaudionode-expected.txt: Removed.
- platform/ios/webaudio/mediaelementaudiosourcenode-expected.txt: Removed.
- platform/ios/webaudio/note-grain-on-play-expected.txt: Removed.
- platform/ios/webaudio/note-grain-on-timing-expected.txt: Removed.
- platform/ios/webaudio/oscillator-basic-expected.txt: Removed.
- platform/ios/webaudio/oscillator-custom-expected.wav: Removed.
- platform/ios/webaudio/oscillator-ended-expected.txt: Removed.
- platform/ios/webaudio/oscillator-sawtooth-expected.wav: Removed.
- platform/ios/webaudio/oscillator-square-expected.wav: Removed.
- platform/ios/webaudio/oscillator-triangle-expected.wav: Removed.
- platform/ios/webaudio/pannernode-basic-expected.txt: Removed.
- platform/ios/webaudio/realtimeanalyser-fft-sizing-expected.txt: Removed.
- 3:01 AM Changeset in webkit [291335] by
-
- 4 edits in trunk/Source/WebKit
[GTK][WPE] Crash during the WebPage::close() related to GL resources destruction
https://bugs.webkit.org/show_bug.cgi?id=237588
Reviewed by Carlos Garcia Campos.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::updateSceneWithoutRendering):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- 12:20 AM Changeset in webkit [291334] by
-
- 3 edits in trunk/Source/WebKit
Suspend newly created NetworkStorageManager if network process is or will be suspended
https://bugs.webkit.org/show_bug.cgi?id=237915
Reviewed by Chris Dumez.
When network process receives prepareToSuspend message, we suspend existing NetworkStorageManagers (so no more
database operation can be performed). We should do the same thing for new NetworkStorageManager created between
prepareToSuspend and processDidResume messages.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::processDidResume):
(WebKit::NetworkProcess::resume): Deleted.
- NetworkProcess/NetworkProcess.h: