Timeline
Oct 20, 2021:
- 11:51 PM Changeset in webkit [284591] by
-
- 22 edits3 adds in trunk
WebKit Managed Notifications: Skeleton NotificationProvider
https://bugs.webkit.org/show_bug.cgi?id=231786
Reviewed by Alex Christensen.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setBuiltInNotificationsEnabled):
(WebCore::RuntimeEnabledFeatures::builtInNotificationsEnabled const):
Source/WebKit:
Currently, notification messages route from WebContent to the UI process.
When "WebKit-managed built-in notifications" are enabled, notification requests will route from
WebContent to Networking instead.
From there they will head off to webpushd to be handled.
This patch just sets up the switch where messages can optionally head off to the Networking
process instead of the UIProcess.
(It also lays the SPI groundwork for the webpushd mach service name)
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/Notifications/NetworkNotificationManager.cpp: Added.
(WebKit::NetworkNotificationManager::NetworkNotificationManager):
(WebKit::NetworkNotificationManager::showNotification):
(WebKit::NetworkNotificationManager::cancelNotification):
(WebKit::NetworkNotificationManager::clearNotifications):
(WebKit::NetworkNotificationManager::didDestroyNotification):
- NetworkProcess/Notifications/NetworkNotificationManager.h: Added.
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp: Unified build fixup.
- Sources.txt:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration webPushMachServiceName]):
(-[_WKWebsiteDataStoreConfiguration setWebPushMachServiceName:]):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::setWebPushMachServiceName):
(WebKit::WebsiteDataStoreConfiguration::webPushMachServiceName const):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::sendNotificationMessage):
(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::cancel):
(WebKit::WebNotificationManager::clearNotifications):
(WebKit::WebNotificationManager::didDestroyNotification):
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- wtf/PlatformEnableCocoa.h:
Tools:
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults): Disable BuiltInNotificationsEnabled for now.
- 11:27 PM Changeset in webkit [284590] by
-
- 10 edits in trunk/Source/JavaScriptCore
*IsSane API's could take in the Structure's we're consulting, or they can be out parameters, so we don't rely on the CPU's memory ordering
https://bugs.webkit.org/show_bug.cgi?id=231996
Reviewed by Filip Pizlo.
objectPrototypeIsSane, arrayPrototypeChainIsSane, and stringPrototypeChainIsSane reloads structures from prototype objects while the caller
is already getting them and validating them. This introduces a race condition where structure transition happens just before calling these
APIs and we will see different structures which are already validated. This is simply wrong: if we validate one structure, then we should
continue using that and we should put a watchpoint on this structure. We should not reload structures from the prototype again.
We add Concurrently postfix to these functions, and passing structures to these APIs to continue using these structures instead of reloading
it from prototype objects. This eliminate the race condition we had, and this removes the necessity of load-load-fence on watchpoint state
retrieval.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::refine const):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::setSaneChainIfPossible):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAtImpl):
- runtime/JSGlobalObject.h:
- runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::objectPrototypeIsSane):
(JSC::JSGlobalObject::arrayPrototypeChainIsSaneConcurrently):
(JSC::JSGlobalObject::stringPrototypeChainIsSaneConcurrently):
(JSC::JSGlobalObject::arrayPrototypeChainIsSane):
(JSC::JSGlobalObject::stringPrototypeChainIsSane):
- 11:15 PM Changeset in webkit [284589] by
-
- 4 edits in trunk/LayoutTests
[ iOS ] fast/inline/inline-background-clip-text-multiline.html is image failing
https://bugs.webkit.org/show_bug.cgi?id=231961
<rdar://problem/84418611>
Unreviewed.
Fix the test to not depend on font rendering details.
- fast/inline/inline-background-clip-text-multiline-expected.html:
- fast/inline/inline-background-clip-text-multiline.html:
- platform/ios-wk2/TestExpectations:
- 5:03 PM Changeset in webkit [284588] by
-
- 10 edits5 adds in trunk
URLParser should reject hosts with C0 control characters or U+007F
https://bugs.webkit.org/show_bug.cgi?id=232034
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-20
Reviewed by Tim Horton.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/failure-expected.txt:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-character-sets.any-expected.txt: Added.
- web-platform-tests/url/url-character-sets.any.html: Added.
- web-platform-tests/url/url-character-sets.any.js: Added.
(cp.test):
- web-platform-tests/url/url-character-sets.any.worker-expected.txt: Added.
- web-platform-tests/url/url-character-sets.any.worker.html: Added.
- web-platform-tests/url/url-origin.any-expected.txt:
- web-platform-tests/url/url-origin.any.worker-expected.txt:
- web-platform-tests/url/url-setters-stripping.any.js:
Source/WTF:
This matches Chrome and Firefox and was proposed to the standard at
https://github.com/whatwg/url/issues/627
- wtf/URLParser.cpp:
(WTF::isC0Control):
(WTF::isForbiddenHostCodePoint):
- 5:02 PM Changeset in webkit [284587] by
-
- 1 copy in tags/Safari-613.1.6
Tag Safari-613.1.6.
- 5:01 PM Changeset in webkit [284586] by
-
- 1 delete in tags/Safari-613.1.6
Delete tag.
- 5:00 PM Changeset in webkit [284585] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] ArithAbs should care about INT32_MIN
https://bugs.webkit.org/show_bug.cgi?id=232051
rdar://84338648
Reviewed by Michael Saboff.
ArithAbs (without overflow check) can return negative value if the input is INT32_MIN with Int32Use.
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- 4:51 PM Changeset in webkit [284584] by
-
- 1 edit in branches/safari-613.1.6-branch/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
Unreviewed buld fix.
RemoteRenderingBackendProxy.cpp:81:34: error: use of undeclared identifier 'makeWeakPtr'
- 4:08 PM Changeset in webkit [284583] by
-
- 1 copy in tags/Safari-613.1.6
Tag Safari-613.1.6.
- 4:07 PM Changeset in webkit [284582] by
-
- 5 edits in trunk/Source/WebKit
Launch Services database is not always sent to GPUP
https://bugs.webkit.org/show_bug.cgi?id=232047
<rdar://problem/84480229>
Reviewed by Brent Fulgham.
Currently, the XPC endpoint for receiving the Launch Services database is being sent to GPUP in GPUProcessProxy::addSession.
If GPUP has not finished launching at that point, the endpoint will not be sent on the first page load. This is addressed by
sending the XPC endpoint in GPUProcessProxy::didFinishLaunching, since the XPC connection over which the XPC endpoint is
being sent is available then.
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didFinishLaunching):
(WebKit::GPUProcessProxy::addSession):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- 4:05 PM Changeset in webkit [284581] by
-
- 2 edits1 add in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r284451 - Update seccomp filters with latest changes from flatpak
https://bugs.webkit.org/show_bug.cgi?id=231479
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-19
Reviewed by Adrian Perez de Castro.
Additionally, let's fix a minor inconsistency in our error-handling code: all but one of
our codepaths carefully free and close resources, but the process is about to crash so
there's not really any reason to do so. The code is slightly simpler if we don't bother.
The seemingly-extraneous include order changes are required to placate the style checker.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::seccompStrerror):
(WebKit::setupSeccomp):
- UIProcess/Launcher/glib/Syscalls.h: Added.
- 4:05 PM Changeset in webkit [284580] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r281384 - IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375
Source/WebCore:
Reviewed by Brady Eidson.
Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):
Source/WTF:
Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.
Reviewed by Brady Eidson.
- wtf/CrossThreadTask.h:
- 4:04 PM Changeset in webkit [284579] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r279832 - Unreviewed, partial revert of r279661 to address crashes on iOS Debug.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::removeAllEventListeners):
- 3:34 PM Changeset in webkit [284578] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] imported/w3c/web-platform-tests/xhr/event-upload-progress-crossorigin.any.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=223804
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:15 PM Changeset in webkit [284577] by
-
- 2 edits in trunk/LayoutTests
[TestExpectation] Re-group css-text WPT failures
https://bugs.webkit.org/show_bug.cgi?id=232027
Reviewed by Antti Koivisto.
- 3:08 PM Changeset in webkit [284576] by
-
- 6 edits in trunk/Source/JavaScriptCore
We should watch isHavingABadTime if we read from the structureCache
https://bugs.webkit.org/show_bug.cgi?id=232019
Reviewed by Yusuke Suzuki.
We should lock the structure cache when we clear it, and the compiler thread should
watch isHavingABadTime in the case that the cache might get cleared.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::haveABadTime):
- runtime/StructureCache.cpp:
(JSC::StructureCache::clear):
- runtime/StructureCache.h:
(JSC::StructureCache::clear): Deleted.
- 2:50 PM Changeset in webkit [284575] by
-
- 25 edits2 adds in trunk
macOS key-driven smooth scrolling does not stop when focus changes
https://bugs.webkit.org/show_bug.cgi?id=228302
Patch by Beth Dakin <Beth Dakin> and Dana Estra <destra@apple.com> on 2021-10-20
Reviewed by Simon Fraser.
Source/WebCore:
Call stopKeyboardScrollAnimation() on the old FrameView after changing Frame focus.
- page/FocusController.cpp:
(WebCore::FocusController::setFocusedFrame):
Call stopKeyboardScrollAnimation() when the window visibility / active state changes.
- page/Page.cpp:
(WebCore::Page::setActivityState):
(WebCore::Page::stopKeyboardScrollAnimation):
- page/Page.h:
Plumbing to get to ScrollingEffectsController, which can invoke keyUp.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::stopKeyboardScrollAnimation):
- platform/ScrollAnimator.h:
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::stopKeyboardScrollAnimation):
- platform/ScrollableArea.h:
Tools:
This patch adds support for rawKeyUp and rawKeyDown to the macOS versions of WKTR and DRT.
- DumpRenderTree/mac/EventSendingController.mm:
(+[EventSendingController initialize]):
(+[EventSendingController isSelectorExcludedFromWebScript:]):
(+[EventSendingController webScriptNameForSelector:]):
(-[EventSendingController rawKeyDown:withModifiers:withLocation:]):
(-[EventSendingController rawKeyDownWrapper:withModifiers:withLocation:]):
(-[EventSendingController rawKeyUp:withModifiers:withLocation:]):
(-[EventSendingController rawKeyUpWrapper:withModifiers:withLocation:]):
- WebKitTestRunner/EventSenderProxy.h:
- WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
- WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
(WTR::createRawKeyDownMessageBody):
(WTR::createRawKeyUpMessageBody):
(WTR::EventSendingController::rawKeyDown):
(WTR::EventSendingController::rawKeyUp):
- WebKitTestRunner/InjectedBundle/EventSendingController.h:
- WebKitTestRunner/InjectedBundle/ios/EventSenderProxyIOS.mm:
(WTR::EventSenderProxy::rawKeyDown):
(WTR::EventSenderProxy::rawKeyUp):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::didReceiveRawKeyDownMessageFromInjectedBundle):
(WTR::TestController::didReceiveRawKeyUpMessageFromInjectedBundle):
(WTR::TestController::didReceiveMessageFromInjectedBundle):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
(WTR::EventSenderProxy::rawKeyDown):
(WTR::EventSenderProxy::rawKeyUp):
- WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::rawKeyDown):
(WTR::EventSenderProxy::rawKeyUp):
- WebKitTestRunner/win/EventSenderProxyWin.cpp:
(WTR::EventSenderProxy::rawKeyDown):
(WTR::EventSenderProxy::rawKeyUp):
- WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
(WTR::EventSenderProxy::rawKeyDown):
(WTR::EventSenderProxy::rawKeyUp):
LayoutTests:
EventHandlerDrivenSmoothKeyboardScrollingEnabled keys are WK2 only right now, so skip the new
test in general.
New test that verifies this bug is resolved.
- fast/scrolling/unfocusing-page-while-keyboard-scrolling-expected.txt: Added.
- fast/scrolling/unfocusing-page-while-keyboard-scrolling.html: Added.
Do run the test for mac-wk2. rawKeyDown / rawKeyUp are currently not implemented
elsewhere.
- platform/mac-wk2/TestExpectations:
New support for rawKeyDown in order to simulate holding the key down.
- resources/ui-helper.js:
(window.UIHelper.rawKeyDown):
(window.UIHelper.rawKeyUp):
- 2:49 PM Changeset in webkit [284574] by
-
- 2 edits in trunk/Source/WebKit
Fix crash when calling setUsernameForLocalCredentialWithID
https://bugs.webkit.org/show_bug.cgi?id=231986
<rdar://problem/84425279>
Patch by John Pascoe <J Pascoe> on 2021-10-20
Reviewed by David Kilzer.
Using a copy here results in a crash when the NSData deallocs because the
[NSData dataWithBytesNoCopy] was used a buffer that was not allocated with malloc.
This is fixed by instead using [NSData initWithBytes] and RetainPtr.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]):
- 2:45 PM Changeset in webkit [284573] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add missing overflow checks to DFGIntegerRangeOptimizationPhase::isEquivalentTo()
https://bugs.webkit.org/show_bug.cgi?id=232024
Reviewed by Tadeu Zagallo.
Added overflow check before comparing for equality.
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- 2:42 PM Changeset in webkit [284572] by
-
- 2 edits in trunk/LayoutTests
[ iOS15 EWS ] http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=232048.
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 2:39 PM Changeset in webkit [284571] by
-
- 3 edits in branches/safari-613.1.6-branch/Source/WebKit
Cherry-pick r284570. rdar://problem/84479714
Remove com.apple.webkit.adattributiond.plist from build temporarily
https://bugs.webkit.org/show_bug.cgi?id=232045
Reviewed by Tim Horton.
There are some problems with the internal verifiers that will take some time to resolve.
Until they are resolved, don't install the plist and don't tell the network process to connect to the daemon registered by the plist.
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: (WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284570 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:35 PM Changeset in webkit [284570] by
-
- 3 edits in trunk/Source/WebKit
Remove com.apple.webkit.adattributiond.plist from build temporarily
https://bugs.webkit.org/show_bug.cgi?id=232045
Reviewed by Tim Horton.
There are some problems with the internal verifiers that will take some time to resolve.
Until they are resolved, don't install the plist and don't tell the network process to connect to the daemon registered by the plist.
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
- WebKit.xcodeproj/project.pbxproj:
- 2:32 PM Changeset in webkit [284569] by
-
- 16 edits in branches/safari-613.1.6-branch/Source/WebKit
Revert r284079. rdar://problem/84478842
- 2:26 PM Changeset in webkit [284568] by
-
- 2 edits in trunk/LayoutTests
[ BigSure wk1 Debug ] fast/selectors/pseudo-element-inside-any.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232046.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 2:13 PM Changeset in webkit [284567] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232042
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 2:07 PM Changeset in webkit [284566] by
-
- 2 edits in trunk/Source/WebCore
The code decoding std::optional<ImagePaintingOptions> can't be compiled by PlayStation due to the ImagePaintingOptions template constructor
https://bugs.webkit.org/show_bug.cgi?id=231980
Reviewed by Ross Kirsling.
PlayStation clang can't compile the following code.
std::optional<ImagePaintingOptions> val;
decoder >> val;
It reports the following error.
include\type_traits:3825:31: error: no member named 'value' in 'std::is_convertible<optional<WebCore::ImagePaintingOptions> &, WebCore::ImagePaintingOptions>'
- platform/graphics/ImagePaintingOptions.h:
(WebCore::ImagePaintingOptions::ImagePaintingOptions): Use SFINAE
for the first template constructor not to conflict with the second
one.
- 1:57 PM Changeset in webkit [284565] by
-
- 3 edits in trunk/LayoutTests
[ iOS macOS wk2 ]webanimations/marker-opacity-animation-no-effect.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=232040
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 1:32 PM Changeset in webkit [284564] by
-
- 11 edits5 adds in trunk/Source/WebKit
Factor out some Notifications-specific messages from WebPageProxy messages
https://bugs.webkit.org/show_bug.cgi?id=232021
Reviewed by Alex Christensen.
In a future patch, there will be a runtime switch where WebContent sometimes sends these Notification
related messages to an objecting in Networking, and othertimes sends them to a WebPageProxy in the UIProcess.
To accomodate this switch, let's split them out into their own Notifications specific object and messages.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- Shared/Notifications/NotificationManagerMessageHandler.h: Added.
- Shared/Notifications/NotificationManagerMessageHandler.messages.in: Added.
- UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp: Added.
(WebKit::WebNotificationManagerMessageHandler::WebNotificationManagerMessageHandler):
(WebKit::WebNotificationManagerMessageHandler::showNotification):
(WebKit::WebNotificationManagerMessageHandler::cancelNotification):
(WebKit::WebNotificationManagerMessageHandler::clearNotifications):
(WebKit::WebNotificationManagerMessageHandler::didDestroyNotification):
- UIProcess/Notifications/WebNotificationManagerMessageHandler.h: Added.
- UIProcess/WebPageProxy.cpp:
(WebKit::m_notificationManagerMessageHandler):
(WebKit::WebPageProxy::addAllMessageReceivers):
(WebKit::WebPageProxy::removeAllMessageReceivers):
(WebKit::WebPageProxy::launchProcess):
(WebKit::WebPageProxy::swapToProvisionalPage):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::m_limitsNavigationsToAppBoundDomains): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::cancel):
(WebKit::WebNotificationManager::clearNotifications):
(WebKit::WebNotificationManager::didDestroyNotification):
- 12:55 PM Changeset in webkit [284563] by
-
- 2 edits in trunk/LayoutTests
[ iOS15 gpuprocess ] 2 css/color-filter tests are image-only failing.
https://bugs.webkit.org/show_bug.cgi?id=232030.
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 12:40 PM Changeset in webkit [284562] by
-
- 2 edits in trunk/LayoutTests
[ iOS15 GPUProcess ] Multiple compositing tests are constant image-only failures.
https://bugs.webkit.org/show_bug.cgi?id=232022.
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 12:24 PM Changeset in webkit [284561] by
-
- 2 edits in trunk/LayoutTests
[ iOS15 gpuprocess ] 2 css/color-filter tests are image-only failing.
https://bugs.webkit.org/show_bug.cgi?id=232030.
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 12:01 PM Changeset in webkit [284560] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling.html.
https://bugs.webkit.org/show_bug.cgi?id=232022.
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 11:59 AM Changeset in webkit [284559] by
-
- 3 edits in trunk/Source/WebKitLegacy/ios
WebPDFViewPlaceholder should use a weak delegate
<https://webkit.org/b/231927>
Reviewed by Tim Horton.
- WebView/WebPDFViewPlaceholder.h:
(WebPDFViewPlaceholder.delegate):
- Mark property as
weak
instead ofassign
. - WebView/WebPDFViewPlaceholder.mm:
(WebPDFViewPlaceholder._dataSource):
(WebPDFViewPlaceholder._delegate):
- Mark instance variables as as
_weak
to matchdelegate
property and based on comment for_dataSource
.
- 11:56 AM Changeset in webkit [284558] by
-
- 5 edits in trunk/Source/WebKit
WebKit Objective-C classes should use weak delegates
<https://webkit.org/b/231956>
<rdar://problem/84416233>
Reviewed by Brent Fulgham.
- UIProcess/API/Cocoa/WKConnection.h:
- UIProcess/API/Cocoa/WKProcessGroup.h:
- UIProcess/API/mac/WKScrollViewMac.h:
- Change
delegate
property fromassign
toweak
to document that WeakObjCPtr<> is used to store the value.
- UIProcess/ios/forms/WKFileUploadPanel.h:
- Change
delegate
property fromassign
toweak
to make the instance variable weak.
- 11:51 AM Changeset in webkit [284557] by
-
- 6 edits in trunk/Tools
REGRESSION (r284418): [iOS] TestWebKitAPI.HSTS.Basic, TestWebKitAPI.HSTS.CrossOriginRedirect, TestWebKitAPI.HSTS.ThirdParty, and TestWebKitAPI.WebKit.RedirectToPlaintextHTTPSUpgrade timing out
https://bugs.webkit.org/show_bug.cgi?id=232003
Reviewed by Chris Dumez.
I observed that sometimes the framer's nw_framer_input_handler_t is called after calling nw_framer_pass_through_input.
To fix this, I instead call nw_framer_deliver_input_no_copy myself to pass through the data inside my nw_framer_input_handler_t.
- TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(TEST):
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::proxyDefinition):
- 11:50 AM Changeset in webkit [284556] by
-
- 2 edits1 add in trunk/Tools
Benchmarks harness could fail if pyobjc-core module is upgraded without upgrading other pyobjc-frameworks
https://bugs.webkit.org/show_bug.cgi?id=231983
Patch by Roy Reapor <rreapor@apple.com> on 2021-10-20
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver.prepare_env): Use autoinstalled Quartz module
(OSXBrowserDriver._terminate_processes): Use autoinstalled AppKit module
- 11:42 AM Changeset in webkit [284555] by
-
- 3 edits in trunk/LayoutTests
[ iOS macOS wk2 ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-four-reports.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232028
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 11:35 AM Changeset in webkit [284554] by
-
- 2 edits in trunk/LayoutTests
[ iOS15 GPUProcess ] compositing/shared-backing/sharing-child-contributes-to-overlap.html is a constant image-only failure.
https://bugs.webkit.org/show_bug.cgi?id=232022.
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 11:31 AM Changeset in webkit [284553] by
-
- 1 edit1 delete in trunk/LayoutTests
Unreviewed, reverting r284551.
TestExpectations file not recognized
Reverted changeset:
- 11:19 AM Changeset in webkit [284552] by
-
- 2 edits in trunk/LayoutTests
[ iOS Release ] media/media-can-play-mpeg-audio.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232025
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 11:19 AM Changeset in webkit [284551] by
-
- 2 adds in trunk/LayoutTests/gpu-process/iOS
Created TestExpectations document for gpuprocess/iOS and updated.
https://bugs.webkit.org/show_bug.cgi?id=232022.
Unreviewed test gardening.
- gpu-process/iOS/TestExpectations: Added.
- 10:52 AM Changeset in webkit [284550] by
-
- 2 edits in trunk/Source/WebCore
Remove useless definition from IDBDatabase.idl
https://bugs.webkit.org/show_bug.cgi?id=231997
Reviewed by Chris Dumez.
DOMStringList is also iterable in WebKit now, so we don't need to keep this definition for compatibility (see
https://github.com/w3c/IndexedDB/issues/85#issuecomment-272587319).
Covered by existing test storage/indexeddb/transaction-basics.html, which verifies that DOMStringList can be
argument for IDBDatabase.transaction().
- Modules/indexeddb/IDBDatabase.idl:
- 10:51 AM Changeset in webkit [284549] by
-
- 3 edits in trunk/Source/WebCore
Share code between JSDOMIterator and JSDOMAsyncIterator
https://bugs.webkit.org/show_bug.cgi?id=231437
<rdar://problem/84306323>
Reviewed by Youenn Fablet.
- bindings/js/JSDOMAsyncIterator.h:
(WebCore::jsPair): Deleted.
(WebCore::iteratorCreate): Deleted.
- bindings/js/JSFileSystemDirectoryHandleIterator.h:
- 10:35 AM Changeset in webkit [284548] by
-
- 4 edits in trunk
Fix percentages on orthogonal replaced children
https://bugs.webkit.org/show_bug.cgi?id=46496
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-20
Reviewed by Darin Adler.
Source/WebCore:
Modify computeReplacedLogicalWidthUsing to make it aware of the orthogonal flow case
when dealing with calc/percentages.
This patch also removes an outdated comment from computeReplacedLogicalHeightUsing.
Test: imported/w3c/web-platform-tests/wpt/css/css-writing-modes/sizing-percentages-replaced-orthogonal-001.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing const):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):
LayoutTests:
- 10:30 AM Changeset in webkit [284547] by
-
- 4 edits in trunk/Source/WebKit
[iOS] Ensure the CA transaction has been synchronously committed before snapshotting it
https://bugs.webkit.org/show_bug.cgi?id=230085
<rdar://81800118>
Reviewed by Tim Horton.
Because committing the CA transaction may be an asynchronous operation,
we need to ensure the CALayer is fully updated before snapshotting it.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _snapshotRectAfterScreenUpdates:rectInViewCoordinates:intoImageOfWidth:completionHandler:]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
- 10:30 AM Changeset in webkit [284546] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/html/canvas/element/manual tests, fast/canvas/canvas-createPattern-video-modify.html and media/video-canvas-createPattern.html are failing.
https://bugs.webkit.org/show_bug.cgi?id=231959
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:26 AM Changeset in webkit [284545] by
-
- 2 edits in trunk/LayoutTests
[ iOS Debug ] http/tests/xmlhttprequest tests are flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=232017
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:22 AM Changeset in webkit [284544] by
-
- 18 edits in trunk/Source
Mac CMake build should not need to include iOS headers
https://bugs.webkit.org/show_bug.cgi?id=231998
Reviewed by Alex Christensen.
Source/WebCore:
- PlatformMac.cmake:
- platform/ios/WebItemProviderPasteboard.h:
Source/WebCore/PAL:
- pal/PlatformMac.cmake:
Source/WebKit:
- GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:
- PlatformMac.cmake:
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode const):
(WebKit::RemoteLayerTreeTransaction::decode):
- UIProcess/API/Cocoa/WKWebView.mm:
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
- UIProcess/Cocoa/UIDelegate.mm:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.h:
- 10:18 AM Changeset in webkit [284543] by
-
- 2 edits in trunk
Add ObjC as supported .clang-format language
https://bugs.webkit.org/show_bug.cgi?id=230401
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-20
Reviewed by Jonathan Bedard.
Add ObjC and change few properties useful
for ObjC formatting.
- .clang-format:
- 10:14 AM Changeset in webkit [284542] by
-
- 6 edits in trunk
fast/images/text-recognition/mac/select-rotated-transparent-image-overlay.html is failing
https://bugs.webkit.org/show_bug.cgi?id=232008
rdar://84276269
Reviewed by Alan Bujtas.
Source/WebCore:
Other browsers and WPT tests imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-003.html
and imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-004.html agree with our new painting
behavior. Change the test instead of changing the behavior back.
Also fix the legacy line layout to have the same painting behavior.
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::blockDirectionPointInLine const):
Fix to use selectionTopForHitTesting as the point needs to be within the hittable line.
- rendering/LegacyRootInlineBox.cpp:
(WebCore::LegacyRootInlineBox::selectionTop const):
For consistency also make the legacy selection painting behavior match.
LayoutTests:
- fast/block/line-layout/selection-highlight-overlap.html:
Adopt to the updated legacy behavior.
- fast/images/text-recognition/mac/select-rotated-transparent-image-overlay.html:
Change the test so it isn't affected by the behavior change.
- 10:11 AM Changeset in webkit [284541] by
-
- 2 edits in trunk/LayoutTests
Regression (r282211): [ macOS wk2 ] css3/filters/blur-various-radii.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=231090
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:37 AM Changeset in webkit [284540] by
-
- 2 edits in trunk/Tools
Fix iOS build after r284539
https://bugs.webkit.org/show_bug.cgi?id=232003
- TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm:
- 9:34 AM Changeset in webkit [284539] by
-
- 3 edits in trunk/Tools
Skip timing out tests on iOS while I investigate.
https://bugs.webkit.org/show_bug.cgi?id=232003
These tests are clearly timing out on iOS, but it'll take more than an hour or so to investigate.
Keep the bots green while I look into a better solution.
- TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
- TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm:
- 9:04 AM Changeset in webkit [284538] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/scrolling/ios/click-events-after-long-press-during-momentum-scroll-in tests are a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=230959
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 8:51 AM Changeset in webkit [284537] by
-
- 2 edits in trunk/LayoutTests
[ iOS 15 ] fast/scrolling/ios/scroll-snap-with-relayouts tests are flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=232014
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 8:25 AM Changeset in webkit [284536] by
-
- 7 edits in trunk/Source
Don't re-evaluate viewport dependent media queries if the viewport doesn't change
https://bugs.webkit.org/show_bug.cgi?id=231949
rdar://77240171
Reviewed by Alan Bujtas.
Source/WebCore:
If there are many viewport dependent rules (some pages have thousands) re-evaluating can take a while.
It is currently done unconditionally before layout.
- css/MediaQueryEvaluator.cpp:
(WebCore::mediaQueryViewportStateForDocument):
- css/MediaQueryEvaluator.h:
- style/StyleScope.cpp:
(WebCore::Style::Scope::evaluateMediaQueriesForViewportChange):
Save the viewport state so we can test if anything that affects media query results has changed since the last time.
- style/StyleScope.h:
Source/WebKit:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::handlePreferenceChange):
Remember to signal accessibility settings change on this code path too.
- 8:24 AM Changeset in webkit [284535] by
-
- 2 edits in trunk/Source/WebCore
AudioArray should ensure 32byte alignment
https://bugs.webkit.org/show_bug.cgi?id=232011
Reviewed by Eric Carlson.
When enabling libpas on x86[1], we observed occasional test failure in webaudio/AudioNode/tail-processing.html test.
We found that while the input & kernel has the exact same values, vDSP_conv in WebAudio DirectConvolver.cpp generates
slightly different outputs (like a error)! This is because vDSP_conv is switching underlying implementation based on
input & kernel alignments: AVX2 implementation requires 32byte alignment while SSE implementation requires 16byte alignment.
And unfortunately, these implementation has very slightly different results.
Previously we are setting 16byte alignment in bmalloc in AudioArray. But luckily, in many cases, it was getting 32byte
alignment. So we are always taking AVX2 implementation and the result can be identical if the input is the same.
However, by switching to libpas, AudioArray can get 16byte aligned (but 32byte aligned) memory actually, and in that
case, we use different implementation in vDSP_conv. So the result now depends on what alignment the allocated AudioArray gets.
The test is running the same kernel to the same input independently, and comparing the outputs. It should be identical,
however, if one gets 16byte aligned array while the other gets 32byte aligned array, then the result will be different,
which is the observed failure.
We use 32byte alignment, which is our vectorized math's maximum alignment requirement to ensure the result is deterministic
and not depending on the allocated array's alignment.
[1]: https://bugs.webkit.org/show_bug.cgi?id=231815
- platform/audio/AudioArray.h:
(WebCore::AudioArray::resize):
- 8:20 AM Changeset in webkit [284534] by
-
- 54 edits in trunk/Source/WebCore
Make ScrollingStateTreeAsTextBehavior an enum class for use with OptionSet<>
https://bugs.webkit.org/show_bug.cgi?id=232002
Reviewed by Alan Bujtas.
Make ScrollingStateTreeAsTextBehavior an enum class, and replace ScrollingStateTreeAsTextBehavior
with OptionSet<ScrollingStateTreeAsTextBehavior>.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText const):
(WebCore::AsyncScrollingCoordinator::scrollingTreeAsText const):
- page/scrolling/AsyncScrollingCoordinator.h:
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):
(WebCore::AsyncScrollingCoordinator::scrollingTreeAsText):
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::scrollingStateTreeAsText const):
(WebCore::ScrollingCoordinator::scrollingTreeAsText const):
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
(WebCore::ScrollingCoordinator::scrollingTreeAsText):
- page/scrolling/ScrollingCoordinatorTypes.h:
- page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::dumpProperties const):
- page/scrolling/ScrollingStateFixedNode.h:
- page/scrolling/ScrollingStateFrameHostingNode.cpp:
(WebCore::ScrollingStateFrameHostingNode::dumpProperties const):
- page/scrolling/ScrollingStateFrameHostingNode.h:
- page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):
- page/scrolling/ScrollingStateFrameScrollingNode.h:
- page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::dumpProperties const):
(WebCore::ScrollingStateNode::dump const):
(WebCore::ScrollingStateNode::scrollingStateTreeAsText const):
- page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::scrollingStateTreeAsText):
- page/scrolling/ScrollingStateOverflowScrollProxyNode.cpp:
(WebCore::ScrollingStateOverflowScrollProxyNode::dumpProperties const):
- page/scrolling/ScrollingStateOverflowScrollProxyNode.h:
- page/scrolling/ScrollingStateOverflowScrollingNode.cpp:
(WebCore::ScrollingStateOverflowScrollingNode::dumpProperties const):
- page/scrolling/ScrollingStateOverflowScrollingNode.h:
- page/scrolling/ScrollingStatePositionedNode.cpp:
(WebCore::ScrollingStatePositionedNode::dumpProperties const):
- page/scrolling/ScrollingStatePositionedNode.h:
- page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::dumpProperties const):
- page/scrolling/ScrollingStateScrollingNode.h:
- page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::dumpProperties const):
- page/scrolling/ScrollingStateStickyNode.h:
- page/scrolling/ScrollingStateTree.cpp:
(showScrollingStateTree):
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::scrollingTreeAsText):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::scrollingTreeAsText):
- page/scrolling/ScrollingTreeFrameHostingNode.cpp:
(WebCore::ScrollingTreeFrameHostingNode::dumpProperties const):
- page/scrolling/ScrollingTreeFrameHostingNode.h:
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::dumpProperties const):
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
- page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::dumpProperties const):
(WebCore::ScrollingTreeNode::dump const):
- page/scrolling/ScrollingTreeNode.h:
- page/scrolling/ScrollingTreeOverflowScrollingNode.cpp:
(WebCore::ScrollingTreeOverflowScrollingNode::dumpProperties const):
- page/scrolling/ScrollingTreeOverflowScrollingNode.h:
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::dumpProperties const):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/cocoa/ScrollingTreeFixedNode.h:
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::dumpProperties const):
- page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNode.h:
- page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNode.mm:
(WebCore::ScrollingTreeOverflowScrollProxyNode::dumpProperties const):
- page/scrolling/cocoa/ScrollingTreePositionedNode.h:
- page/scrolling/cocoa/ScrollingTreePositionedNode.mm:
(WebCore::ScrollingTreePositionedNode::dumpProperties const):
- page/scrolling/cocoa/ScrollingTreeStickyNode.h:
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::dumpProperties const):
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
- page/scrolling/nicosia/ScrollingTreeFixedNode.cpp:
(WebCore::ScrollingTreeFixedNode::dumpProperties const):
- page/scrolling/nicosia/ScrollingTreeFixedNode.h:
- page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNode.cpp:
(WebCore::ScrollingTreeOverflowScrollProxyNode::dumpProperties const):
- page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNode.h:
- page/scrolling/nicosia/ScrollingTreePositionedNode.cpp:
(WebCore::ScrollingTreePositionedNode::dumpProperties const):
- page/scrolling/nicosia/ScrollingTreePositionedNode.h:
- page/scrolling/nicosia/ScrollingTreeStickyNode.cpp:
(WebCore::ScrollingTreeStickyNode::dumpProperties const):
- page/scrolling/nicosia/ScrollingTreeStickyNode.h:
- 8:04 AM Changeset in webkit [284533] by
-
- 24 edits1 copy2 adds in trunk
Do not use strerror()
https://bugs.webkit.org/show_bug.cgi?id=231913
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-20
Reviewed by Chris Dumez.
Source/bmalloc:
- libpas/src/libpas/pas_page_malloc.c:
(pas_page_malloc_commit):
Source/JavaScriptCore:
- API/JSScript.mm:
(-[JSScript writeCache:]):
- API/tests/testapi.mm:
(resolvePathToScripts):
- jsc.cpp:
- runtime/BytecodeCacheError.cpp:
(JSC::BytecodeCacheError::StandardError::message const):
- tools/FunctionAllowlist.cpp:
(JSC::FunctionAllowlist::FunctionAllowlist):
- tools/FunctionOverrides.cpp:
(JSC::FunctionOverrides::parseOverridesInFile):
- wasm/WasmMemory.cpp:
(JSC::Wasm::MemoryHandle::~MemoryHandle):
(JSC::Wasm::Memory::tryCreate):
(JSC::Wasm::Memory::growShared):
(JSC::Wasm::Memory::grow):
Source/WebKit:
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::readyReadHandler):
(IPC::Connection::sendOutputMessage):
- Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::allocate):
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::setAndSerializeSandboxParameters):
(WebKit::sandboxDataVaultParentDirectory):
(WebKit::ensureSandboxCacheDirectory):
(WebKit::tryApplyCachedSandbox):
(WebKit::applySandbox):
Source/WTF:
Add a new safeStrerror function that we can use without worrying about thread safety.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/SafeStrerror.cpp: Added.
(WTF::safeStrerror):
- wtf/SafeStrerror.h: Added.
- wtf/linux/RealTimeThreads.cpp:
(WTF::RealTimeThreads::promoteThreadToRealTime):
- wtf/playstation/FileSystemPlayStation.cpp:
(WTF::FileSystemImpl::deleteFile):
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::deleteFile):
- wtf/posix/ThreadingPOSIX.cpp:
(WTF::Thread::establishHandle):
- wtf/threads/Signals.cpp:
(WTF::jscSignalHandler):
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/Tests/WTF/SafeStrerror.cpp: Added.
(TestWebKitAPI::TEST):
- 8:01 AM Changeset in webkit [284532] by
-
- 7 edits in trunk
Source/WebKit:
[WebAuthn] Obtain consent to create new credential when platform authenticator in excludedCredentials
https://bugs.webkit.org/show_bug.cgi?id=219813
<rdar://problem/72484635>
Patch by John Pascoe <J Pascoe> on 2021-10-20
Reviewed by Brent Fulgham.
Currently, whenever the platform authenticator is within excludedCredentials during makeCredential we
always return NotAllowedError and merely flash a consent screen. This does not match the spec per Step 3.1
of makeCredential (https://w3c.github.io/webauthn/#sctn-op-make-cred). Instead, we should always obtain consent
and return a different error depending on consent was obtained.
A fixme to add this was inadvertently removed in https://bugs.webkit.org/attachment.cgi?id=393180&action=prettypatch
Added api test TestWebKitAPI.WebAuthenticationPanel.LADuplicateCredentialWithConsent
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
Tools:
[WebAuthn] Obtain consent to create new credential when platform authenticator in excludedCredentials
https://bugs.webkit.org/show_bug.cgi?id=219813
<rdar://problem/72484635>
Patch by John Pascoe <J Pascoe> on 2021-10-20
Reviewed by Brent Fulgham.
Currently, whenever the platform authenticator is within excludedCredentials during makeCredential we
always return NotAllowedError and merely flash a consent screen. This does not match the spec per Step 3.1
of makeCredential (https://w3c.github.io/webauthn/#sctn-op-make-cred). Instead, we should always obtain consent
and return a different error depending on consent was obtained.
This adds a test to confirm a different path is taken whenever consent is obtained.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
LayoutTests:
WebAuthn] Obtain consent to create new credential when platform authenticator in excludedCredentials
https://bugs.webkit.org/show_bug.cgi?id=219813
<rdar://problem/72484635>
Patch by John Pascoe <J Pascoe> on 2021-10-20
Reviewed by Brent Fulgham.
Modify layout tests to reflect different exception returned when consent is provided
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
- http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
- 7:49 AM Changeset in webkit [284531] by
-
- 2 edits in trunk/Source/JavaScriptCore
Suppress a -Wreturn-type warning
https://bugs.webkit.org/show_bug.cgi?id=229681
<rdar://81603387>
Unreviewed.
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-20
- wasm/WasmFormat.h:
(JSC::Wasm::typeToString):
- 6:52 AM Changeset in webkit [284530] by
-
- 4 edits in trunk
[LFC][IFC] Sometimes "arbitrary mid work break" does not mean "any position"
https://bugs.webkit.org/show_bug.cgi?id=232001
Reviewed by Antti Koivisto.
Source/WebCore:
Add a partial (and oversimplified) (XB/XA) type of line breaking for word-break: break-all.
This is governed by https://unicode.org/reports/tr14/.
We should really implement something similar to Blink's kBreakAllLineBreakClassTable (which is based on WebKit's lineBreakTable).
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::midWordBreak):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):
LayoutTests:
- 6:34 AM Changeset in webkit [284529] by
-
- 8 edits in trunk/Source/WebCore
AX: Build with isolated tree enable is broken since r284075
https://bugs.webkit.org/show_bug.cgi?id=231667
<rdar://problem/84191590>
Reviewed by Andres Gonzalez.
The problem seems to be that AXPropertyValueVariant contains the same type twice (in 64 bit systems) AXID
(size_t -> long unsigned int) and uint64_t -> long unsigned int. That's actually allowed but makes the access
ambiguous. Since uint64_t is only used for SessionID, we can explicitly use SessionID instead.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::sessionID const):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::sessionID const):
(WebCore::AXIsolatedObject::sessionIDAttributeValue const):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- 6:26 AM Changeset in webkit [284528] by
-
- 34 edits30 adds in trunk
Add support for requestVideoFrameCallback API and MediaStreamTrack-based backend support
https://bugs.webkit.org/show_bug.cgi?id=231803
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- web-platform-tests/video-rvfc/META.yml: Added.
- web-platform-tests/video-rvfc/README.md: Added.
- web-platform-tests/video-rvfc/idlharness.window-expected.txt: Added.
- web-platform-tests/video-rvfc/idlharness.window.html: Added.
- web-platform-tests/video-rvfc/idlharness.window.js: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-before-xr-session.https-expected.txt: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-before-xr-session.https.html: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-dom-expected.txt: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-dom.html: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-during-xr-session.https-expected.txt: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-during-xr-session.https.html: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-expected.txt: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-parallel-expected.txt: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-parallel.html: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-repeating-expected.txt: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-repeating.html: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-webrtc.https-expected.txt: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback-webrtc.https.html: Added.
- web-platform-tests/video-rvfc/request-video-frame-callback.html: Added.
- web-platform-tests/video-rvfc/w3c-import.log: Added.
Source/WebCore:
Update WebIDL to expose https://wicg.github.io/video-rvfc/ API.
Put them behind a runtime flag.
Add support for the algorithms, including the integration with the 'update the rendering' algorithm.
Add initial support for video elements backed by MediaStream content.
We expose a limited set of metadata currently, follow-up patches should add support for other video backends and more metadata.
This support should still enable to optimize a bit MediaStreamTrack -> canvas pipelines.
Tests: fast/mediastream/getUserMedia-rvfc.html
imported/w3c/web-platform-tests/video-rvfc/idlharness.window.html
imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-before-xr-session.https.html
imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-dom.html
imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-during-xr-session.https.html
imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-parallel.html
imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-repeating.html
imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-webrtc.https.html
imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback.html
webrtc/peerConnection-rvfc.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
- dom/Document.h:
- html/HTMLMediaElement.h:
- html/HTMLVideoElement+RequestVideoFrameCallback.idl: Added.
- html/HTMLVideoElement.cpp:
- html/HTMLVideoElement.h:
- html/VideoFrameMetadata.idl: Added.
- html/VideoFrameRequestCallback.h: Added.
- html/VideoFrameRequestCallback.idl: Added.
- page/Page.cpp:
- page/Page.h:
- platform/VideoFrameMetadata.h: Added.
- platform/graphics/MediaPlayer.cpp:
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
Source/WebKit:
Add temporary getter/setter of rvfc feature flag.
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetRequestVideoFrameCallbackEnabled):
(WKPreferencesGetRequestVideoFrameCallbackEnabled):
- UIProcess/API/C/WKPreferencesRef.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Tools:
Disable rvfc on tests by default until we implement rvfc for usual video streaming.
WebRTC tests enable rvfc themselves.
- DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
- TestExpectations:
- fast/mediastream/getUserMedia-rvfc-expected.txt: Added.
- fast/mediastream/getUserMedia-rvfc.html: Added.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- webrtc/peerConnection-rvfc-expected.txt: Added.
- webrtc/peerConnection-rvfc.html: Added.
- 6:14 AM Changeset in webkit [284527] by
-
- 14 edits in trunk
[WPE] Reenable -fvisibility=hidden and -fvisibility-inlines-hidden
https://bugs.webkit.org/show_bug.cgi?id=222860
Reviewed by Don Olmstead.
.:
- Source/cmake/OptionsWPE.cmake:
Source/bmalloc:
- bmalloc/AvailableMemory.h: Export memoryStatus.
Source/WebKit:
- PlatformWPE.cmake:
Tools:
- TestRunnerShared/CMakeLists.txt:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/glib/CMakeLists.txt:
- WebKitTestRunner/CMakeLists.txt:
- WebKitTestRunner/PlatformWPE.cmake:
- 3:18 AM Changeset in webkit [284526] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit
Merge r284521 - REGRESSION(r276635): [GTK] local HTML file is downloaded instead of displayed if any application has ever called g_desktop_app_info_set_as_default_for_extension(info, "html")
https://bugs.webkit.org/show_bug.cgi?id=230797
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-20
Reviewed by Carlos Garcia Campos.
Let's revert this change. Disabling content sniffing prevents WebKit from distinguishing
between different content types with the same file extension, which is something it needs
to be able to do. In this bug report, it is conflating text/html with
application/x-extension-html, but it could just as well confuse text/html with
application/xhtml+xml, causing rendering issues. I don't think we can remove the content
sniffing.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::didGetFileInfo):
- 1:26 AM Changeset in webkit [284525] by
-
- 12 edits2 adds in trunk/Source
[GTK][WPE] UserInteractive threads are not Real-time in Linux
https://bugs.webkit.org/show_bug.cgi?id=220115
Reviewed by Michael Catanzaro.
Source/WebKit:
Enable real time threads in the web process only when there's a visible page.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::pageActivityStateDidChange):
(WebKit::WebProcess::platformInitializeProcess): Deleted.
- WebProcess/glib/WebProcessGLib.cpp:
(WebKit::WebProcess::platformInitializeProcess):
- WebProcess/playstation/WebProcessPlayStation.cpp:
(WebKit::WebProcess::platformInitializeProcess):
- WebProcess/win/WebProcessWin.cpp:
(WebKit::WebProcess::platformInitializeProcess):
Source/WTF:
Add RealTimeThreads singleton to register real time threads.
- wtf/PlatformGTK.cmake:
- wtf/PlatformJSCOnly.cmake:
- wtf/PlatformWPE.cmake:
- wtf/Threading.cpp:
(WTF::Thread::setCurrentThreadIsUserInteractive):
- wtf/generic/WorkQueueGeneric.cpp:
(WTF::WorkQueueBase::platformInitialize):
- wtf/linux/RealTimeThreads.cpp: Added.
(WTF::RealTimeThreads::singleton):
(WTF::RealTimeThreads::RealTimeThreads):
(WTF::RealTimeThreads::registerThread):
(WTF::RealTimeThreads::setEnabled):
(WTF::RealTimeThreads::promoteThreadToRealTime):
(WTF::RealTimeThreads::demoteThreadFromRealTime):
(WTF::RealTimeThreads::demoteAllThreadsFromRealTime):
(WTF::isRunningInSandbox):
(WTF::realTimeKitGetProperty):
(WTF::RealTimeThreads::realTimeKitMakeThreadRealTime):
(WTF::RealTimeThreads::scheduleDiscardRealTimeKitProxy):
(WTF::RealTimeThreads::discardRealTimeKitProxyTimerFired):
- wtf/linux/RealTimeThreads.h: Added.
- wtf/posix/ThreadingPOSIX.cpp:
(WTF::schedPolicy):
(WTF::Thread::establishHandle):
- 1:24 AM Changeset in webkit [284524] by
-
- 3 edits in trunk/Source/WebCore
AX: Make indexForVisiblePosition consistent with visiblePositionForIndex
https://bugs.webkit.org/show_bug.cgi?id=231950
Reviewed by Andres Gonzalez.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::indexForVisiblePosition const): Use the same early return checks of
visiblePositionForIndex and remove the requirement of node being the highest editable root.
- editing/Editing.cpp:
(WebCore::indexForVisiblePosition): Return early if given position is null.
- 1:13 AM Changeset in webkit [284523] by
-
- 16 edits2 adds in trunk
WebRTC p2p call, VP9-SVC only low layer decoded on receiver side
https://bugs.webkit.org/show_bug.cgi?id=231071
<rdar://problem/83763291>
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
In case VP9 SVC is used, fallback to software decoder for now.
- Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
Source/WebCore:
Add Internals API to check whether VP9 VTB is used or not.
Test: webrtc/vp9-svc.html
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
- Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:
- Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- webrtc/vp9-svc-expected.txt: Added.
- webrtc/vp9-svc.html: Added.
- 1:08 AM Changeset in webkit [284522] by
-
- 4 edits2 adds in trunk
Avoid null pointer dereference when creating ImageBitmap from a null image.
https://bugs.webkit.org/show_bug.cgi?id=231794
Patch by John Cunningham <johncunningham@apple.com> on 2021-10-20
Reviewed by Said Abou-Hallawa.
If the image is null, we can reject the promise earlier. Default to sRGB when a
BitmapImage's nativeImage is null.
Source/WebCore:
Test: fast/canvas/createImageBitmap-invalid-image-blob-crash.html
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createFromBuffer):
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::colorSpace):
LayoutTests:
- fast/canvas/createImageBitmap-invalid-image-blob-crash-expected.txt: Added.
- fast/canvas/createImageBitmap-invalid-image-blob-crash.html: Added.
- 12:54 AM Changeset in webkit [284521] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r276635): [GTK] local HTML file is downloaded instead of displayed if any application has ever called g_desktop_app_info_set_as_default_for_extension(info, "html")
https://bugs.webkit.org/show_bug.cgi?id=230797
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-20
Reviewed by Carlos Garcia Campos.
Let's revert this change. Disabling content sniffing prevents WebKit from distinguishing
between different content types with the same file extension, which is something it needs
to be able to do. In this bug report, it is conflating text/html with
application/x-extension-html, but it could just as well confuse text/html with
application/xhtml+xml, causing rendering issues. I don't think we can remove the content
sniffing.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::didGetFileInfo):
- 12:37 AM WebKitGTK/DependenciesPolicy edited by
- (diff)
- 12:23 AM Changeset in webkit [284520] by
-
- 4 edits2 adds in trunk/Tools
It should be possible to format C++ code to project style with WebKit tools
https://bugs.webkit.org/show_bug.cgi?id=230397
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-20
Reviewed by Jonathan Bedard.
Add capability to run clang-format for lines changed by
a patch.
Supports workflow of:
webkit-patch format -g HEAD
git commit -a --amend --no-edit
- Scripts/webkitpy/tool/commands/init.py:
- Scripts/webkitpy/tool/commands/format.py: Added.
(Format):
- Scripts/webkitpy/tool/steps/init.py:
- Scripts/webkitpy/tool/steps/formatcppfiles.py: Added.
(_is_formatted):
(_ranges):
(FormatCppFiles):
(FormatCppFiles.options):
(FormatCppFiles.init):
(FormatCppFiles.run):
- Scripts/webkitpy/tool/steps/options.py:
(Options):
Oct 19, 2021:
- 11:41 PM Changeset in webkit [284519] by
-
- 7 edits in trunk
Support more CSS properties for ::marker
https://bugs.webkit.org/show_bug.cgi?id=231972
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-pseudo/marker-computed-content-expected.txt:
- web-platform-tests/css/css-pseudo/marker-default-styles-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
Source/WebCore:
Support additional text properties for ::marker.
- style/PropertyAllowlist.cpp:
(WebCore::Style::isValidMarkerStyleProperty):
- 10:16 PM Changeset in webkit [284518] by
-
- 31 edits2 copies1 move in trunk
Add NetworkProcess stubs for push subscriptions
https://bugs.webkit.org/show_bug.cgi?id=231922
Reviewed by Youenn Fablet.
Source/WebCore:
Both PushManager and PushSubscription now send their subscription requests to NetworkProcess
via ServiceWorkerRegistration => ServiceWorkerContainer => SWClientConnection.
- Headers.cmake:
- Modules/push-api/PushManager.cpp:
(WebCore::PushManager::subscribe):
(WebCore::PushManager::getSubscription):
(WebCore::PushManager::permissionState):
- Modules/push-api/PushPermissionState.h:
- Modules/push-api/PushSubscription.cpp:
(WebCore::PushSubscription::PushSubscription):
(WebCore::PushSubscription::unsubscribe):
- Modules/push-api/PushSubscription.h:
- Modules/push-api/PushSubscriptionData.cpp:
(WebCore::PushSubscriptionData::isolatedCopy const):
- Modules/push-api/PushSubscriptionData.h:
(WebCore::PushSubscriptionData::encode const):
(WebCore::PushSubscriptionData::decode):
- Modules/push-api/PushSubscriptionOptions.cpp:
(WebCore::PushSubscriptionOptions::PushSubscriptionOptions):
(WebCore::PushSubscriptionOptions::userVisibleOnly const):
- Modules/push-api/PushSubscriptionOptions.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- testing/Internals.cpp:
(WebCore::Internals::createPushSubscription):
- testing/Internals.h:
- testing/Internals.idl:
- workers/service/SWClientConnection.h:
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::createPushSubscriptionFromData):
(WebCore::ServiceWorkerContainer::subscribeToPushService):
(WebCore::ServiceWorkerContainer::unsubscribeFromPushService):
(WebCore::ServiceWorkerContainer::getPushSubscription):
(WebCore::ServiceWorkerContainer::getPushPermissionState):
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::subscribeToPushService):
(WebCore::ServiceWorkerRegistration::unsubscribeFromPushService):
(WebCore::ServiceWorkerRegistration::getPushSubscription):
(WebCore::ServiceWorkerRegistration::getPushPermissionState):
- workers/service/ServiceWorkerRegistration.h:
- workers/service/ServiceWorkerRegistration.idl:
- workers/service/WorkerSWClientConnection.cpp:
(WebCore::WorkerSWClientConnection::~WorkerSWClientConnection):
(WebCore::WorkerSWClientConnection::subscribeToPushService):
(WebCore::WorkerSWClientConnection::unsubscribeFromPushService):
(WebCore::WorkerSWClientConnection::getPushSubscription):
(WebCore::WorkerSWClientConnection::getPushPermissionState):
- workers/service/WorkerSWClientConnection.h:
Source/WebKit:
Added stubs in NetworkProcess for push subscription-related IPC. Currently the stubs return
that subscribing is unsupported and that there are no active push subscriptions.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::subscribeToPushService):
(WebKit::WebSWServerConnection::unsubscribeFromPushService):
(WebKit::WebSWServerConnection::getPushSubscription):
(WebKit::WebSWServerConnection::getPushPermissionState):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::subscribeToPushService):
(WebKit::WebSWClientConnection::unsubscribeFromPushService):
(WebKit::WebSWClientConnection::getPushSubscription):
(WebKit::WebSWClientConnection::getPushPermissionState):
- WebProcess/Storage/WebSWClientConnection.h:
LayoutTests:
Modify PushSubscription tests to pass in a ServiceWorkerRegistration.
- http/wpt/push-api/emptyWorker.js: Renamed from LayoutTests/http/wpt/push-api/pushManager-worker.js.
- http/wpt/push-api/pushManager.any.js:
(else.promise_test.async test):
- http/wpt/push-api/pushSubscription.https.any-expected.txt:
- http/wpt/push-api/pushSubscription.https.any.js:
(promise_test.async test):
(promise_test):
(test): Deleted.
- 9:49 PM Changeset in webkit [284517] by
-
- 3 edits in trunk/Source/WebKit
Fix build break after r284406 if ENABLE_SERVICE_WORKER=OFF
https://bugs.webkit.org/show_bug.cgi?id=231968
Patch by Jigen Zhou <jigen.zhou@sony.com> on 2021-10-19
Reviewed by Don Olmstead.
r284406 made m_isServiceWorkerPage of WebPageProxy not available if !ENABLE(SERVICE_WORKER),
but the change was incomplete and can cause build failure if ENABLE_SERVICE_WORKER=OFF.
This patch avoids accessing m_isServiceWorkerPage if !ENABLE(SERVICE_WORKER) in WebPageProxy
methods isServiceWorkerPage, loadDataWithNavigationShared, and resetStateAfterProcessExited.
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- 8:25 PM Changeset in webkit [284516] by
-
- 14 edits in trunk/Source
Non-unified build fixes, mid October 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=231915
Unreviewed non-unified build fixes.
Source/WebCore:
- animation/KeyframeEffectStack.cpp:
- bindings/js/JSDOMWindowBase.cpp:
- dom/ActiveDOMObject.cpp:
- html/DOMFormData.cpp:
- html/HTMLDialogElement.cpp:
- html/HTMLOutputElement.cpp:
- html/ResetInputType.cpp:
- page/DragController.cpp:
- page/EventHandler.cpp:
- rendering/updating/RenderTreeBuilderFirstLetter.cpp:
Source/WebKit:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.cpp:
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
- 8:03 PM Changeset in webkit [284515] by
-
- 2 edits in trunk/Source/WebCore
r284315 can cause build break.
https://bugs.webkit.org/show_bug.cgi?id=231923
Patch by Jigen Zhou <jigen.zhou@sony.com> on 2021-10-19
Reviewed by Michael Catanzaro.
Class 'WebCore::RenderBlockFlow' was forward declared in header file
InlineIteratorLogicalOrderTraversal.h, but template
leafBoxesInLogicalOrder that was added by r284315 has access to RenderBlockFLow's method
style() and can cause build break in our local webkit build.
The build can be fixed when the concreate declaration of class
RenderBlockFlow is included in InlineIteratorLogicalOrderTraversal.h.
- layout/integration/InlineIteratorLogicalOrderTraversal.h:
- 5:58 PM Changeset in webkit [284514] by
-
- 1 copy in tags/Safari-612.3.1
Tag Safari-612.3.1.
- 5:40 PM Changeset in webkit [284513] by
-
- 10 edits in trunk/Source/JavaScriptCore
Address post-landing feedback to wasm exceptions
https://bugs.webkit.org/show_bug.cgi?id=231973
Reviewed by Saam Barati.
Address comments left by Saam in https://bugs.webkit.org/show_bug.cgi?id=229681
after the patch landed. This includes deleting some unused code, and renaming a
couple variables and methods, but the biggest change is copying the callee saves
to VMEntry in the llint rethrow.
- interpreter/Interpreter.cpp:
(JSC::CatchInfo::CatchInfo):
(JSC::UnwindFunctor::operator() const):
- interpreter/Interpreter.h:
(JSC::CatchInfo::CatchInfo): Deleted.
- jit/JSInterfaceJIT.h:
(JSC::JSInterfaceJIT::convertCalleeToVM): Deleted.
- llint/WebAssembly.asm:
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::ControlData::ControlData):
(JSC::Wasm::B3IRGenerator::ControlData::tryDepth const):
(JSC::Wasm::B3IRGenerator::connectControlAtEntrypoint):
(JSC::Wasm::B3IRGenerator::addLoop):
(JSC::Wasm::B3IRGenerator::addTry):
(JSC::Wasm::B3IRGenerator::preparePatchpointForExceptions):
(JSC::Wasm::B3IRGenerator::emitCatchImpl):
(JSC::Wasm::B3IRGenerator::addDelegateToUnreachable):
(JSC::Wasm::B3IRGenerator::addThrow):
(JSC::Wasm::B3IRGenerator::addRethrow):
(JSC::Wasm::B3IRGenerator::addEndToUnreachable):
(JSC::Wasm::B3IRGenerator::connectControlEntry): Deleted.
- wasm/WasmCallee.h:
(JSC::Wasm::Callee::llintFunctionCodeBlock const):
(JSC::Wasm::Callee::functionCodeBlock const): Deleted.
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::unifyValuesWithBlock):
(JSC::Wasm::LLIntGenerator::addTry):
(JSC::Wasm::LLIntGenerator::addThrow):
(JSC::Wasm::LLIntGenerator::repatch): Deleted.
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- wasm/WasmOperations.h:
- 5:30 PM Changeset in webkit [284512] by
-
- 8 edits in trunk
[CMake] Align OptionsMac with Xcode build
https://bugs.webkit.org/show_bug.cgi?id=231982
Reviewed by Don Olmstead.
.:
- Source/cmake/OptionsMac.cmake:
Ensure that the listed options (1) are not redundant with the defaults in WebKitFeatures.cmake and
(2) match the options for the Xcode build as closely as possible.
- Source/cmake/WebKitFeatures.cmake:
Remove an outdated feature, ENABLE_APPLE_PAY_SESSION_V9,
and let ENABLE_MAC_GESTURE_EVENTS be handled by PlatformEnable, since it depends on USE_APPLE_INTERNAL_SDK.
Source/WebCore:
- PlatformMac.cmake:
Add support for new files.
- platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
Fix for r284295 -- ReplayKit is iOS and its headers shouldn't be included on Mac.
Source/WebKit:
- CMakeLists.txt:
Enable -fobjc-weak to support r284329.
- 5:16 PM Changeset in webkit [284511] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix for non-unified build.
- Modules/webaudio/RealtimeAnalyser.h:
- 4:56 PM Changeset in webkit [284510] by
-
- 98 edits12 adds11 deletes in trunk/LayoutTests
Resync COOP /COEP WPT tests from upstream WPT
https://bugs.webkit.org/show_bug.cgi?id=231746
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
Resync COOP /COEP WPT tests from upstream WPT 207e223d74fdc1f1.
- web-platform-tests/html/cross-origin-embedder-policy/*: Updated.
- web-platform-tests/html/cross-origin-opener-policy/*: Updated.
LayoutTests:
Resync COOP /COEP WPT tests from upstream WPT 6ccfe6fafab233e.
- TestExpectations:
- tests-options.json:
- 4:54 PM Changeset in webkit [284509] by
-
- 2 edits in branches/safari-613.1.6-branch/Source/WebCore/PAL
Cherry-pick r284494. rdar://problem/84439983
REGRESSION (r284220): [PAL] TCCSPI.h should be a project header, not a private header
<https://webkit.org/b/231977>
<rdar://problem/84425384>
Reviewed by Wenson Hsieh.
- PAL.xcodeproj/project.pbxproj:
- Change TCCSPI.h from a private header to a project header. PAL uses a build phase script to install its headers.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284494 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:34 PM Changeset in webkit [284508] by
-
- 2 edits in branches/safari-613.1.6-branch/Source/WebKit
Cherry-pick r284489. rdar://problem/84439180
WebAuthn Platform UI callbacks are not guaranteed to happen on the main thread
https://bugs.webkit.org/show_bug.cgi?id=231963
<rdar://84420452>
Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-10-19
Reviewed by Brent Fulgham.
- The clearanceHandler is not guaranteed to happen on the main thread, but weakThis.get() needs to happen there.
proxy
needs to stay alive for the whole transaction, otherwise it will tear down the connection and cancel the request, so explicitly capture it everywhere.
- Start logging if we get an error from clearanceHandler.
Covered by existing tests.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::WebAuthenticatorCoordinatorProxy::performRequest):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:14 PM Changeset in webkit [284507] by
-
- 6 edits in trunk/Source
Eagerly resolve python3 path in Makefiles
https://bugs.webkit.org/show_bug.cgi?id=231979
Reviewed by Jonathan Bedard.
- DerivedSources.make:
- 3:48 PM Changeset in webkit [284506] by
-
- 2 edits in trunk/Source/JavaScriptCore
canDoFastSpread should also check that the Structure is from the global object we're watching
https://bugs.webkit.org/show_bug.cgi?id=231976
<rdar://84340372>
Reviewed by Keith Miller.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::canDoFastSpread):
- 3:37 PM Changeset in webkit [284505] by
-
- 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r284239 - [WPE][GTK] Update user agent browser versions
https://bugs.webkit.org/show_bug.cgi?id=231772
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-15
Reviewed by Carlos Garcia Campos.
- platform/UserAgentQuirks.cpp:
(WebCore::UserAgentQuirks::stringForQuirk):
- platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):
- 3:37 PM Changeset in webkit [284504] by
-
- 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r284091 - [GStreamer] Crash in WebCore::MediaPlayerPrivateGStreamer::sourceSetup when loading reddit video
https://bugs.webkit.org/show_bug.cgi?id=231519
Patch by Philippe Normand <pnormand@igalia.com> on 2021-10-13
Reviewed by Xabier Rodriguez-Calvar.
Since this GStreamer commit:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/52bca104e447309898ca8904b3914211ec7d4114
and starting from GStreamer 1.20, the playbin::source-setup signal is emitted before the
source element is added to the pipeline, so this gave us the opportunity to refactor our
code handling the downloadbuffer configuration, using the existing deep-element-added signal
handler.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::configureDownloadBuffer):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::uriDecodeBinElementAddedCallback): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- 3:37 PM Changeset in webkit [284503] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34/Source
Merge r284132 - [GTK] Opening emoji chooser crashes UI process with GTK 3.24.30
https://bugs.webkit.org/show_bug.cgi?id=228664
Reviewed by Michael Catanzaro.
Instead of providing a copy of the emoji chooser widget, use GLib's
introspection features and a little sprinkle of knowledge about how
GTK works in order to obtain the type code of the GtkEmojiChooser
widget included with GTK. This ensures that a working widget is
always used, regardless of the current GTK version.
No new tests needed.
- UIProcess/API/gtk/WebKitEmojiChooser.cpp:
(webkitEmojiChooserNew):
(): Deleted.
(webkitEmojiChooserAddEmoji): Deleted.
(webkitEmojiChooserAddRecentItem): Deleted.
(emojiActivated): Deleted.
(emojiDataHasVariations): Deleted.
(webkitEmojiChooserShowVariations): Deleted.
(emojiLongPressed): Deleted.
(emojiPressed): Deleted.
(emojiPopupMenu): Deleted.
(verticalAdjustmentChanged): Deleted.
(webkitEmojiChooserSetupSectionBox): Deleted.
(scrollToSection): Deleted.
(webkitEmojiChooserSetupSectionButton): Deleted.
(webkitEmojiChooserSetupRecent): Deleted.
(webkitEmojiChooserEnsureEmptyResult): Deleted.
(webkitEmojiChooserSearchChanged): Deleted.
(webkitEmojiChooserSetupFilters): Deleted.
(webkitEmojiChooserSetupEmojiSections): Deleted.
(webkitEmojiChooserInitializeEmojiMaxWidth): Deleted.
(webkitEmojiChooserConstructed): Deleted.
(webkitEmojiChooserShow): Deleted.
(webkit_emoji_chooser_class_init): Deleted.
- UIProcess/API/gtk/WebKitEmojiChooser.h:
- 3:37 PM Changeset in webkit [284502] by
-
- 2 edits1 add in releases/WebKitGTK/webkit-2.34/Source/WebKit
Merge r284451 - Update seccomp filters with latest changes from flatpak
https://bugs.webkit.org/show_bug.cgi?id=231479
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-19
Reviewed by Adrian Perez de Castro.
Additionally, let's fix a minor inconsistency in our error-handling code: all but one of
our codepaths carefully free and close resources, but the process is about to crash so
there's not really any reason to do so. The code is slightly simpler if we don't bother.
The seemingly-extraneous include order changes are required to placate the style checker.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::seccompStrerror):
(WebKit::setupSeccomp):
- UIProcess/Launcher/glib/Syscalls.h: Added.
- 3:35 PM WebKitGTK/2.34.x edited by
- (diff)
- 2:53 PM Changeset in webkit [284501] by
-
- 2 edits in trunk/Source/WTF
Remove old GCC workaround for Allocator
https://bugs.webkit.org/show_bug.cgi?id=231978
Reviewed by Darin Adler.
This is for old GCC. Since our GCC baseline is 8.3.0, this is no longer necessary.
- wtf/FastMalloc.h:
(WTF::FastAllocator::deallocate):
(WTF::FastAllocator::construct): Deleted.
(WTF::FastAllocator::destroy): Deleted.
(WTF::FastAllocator::max_size const): Deleted.
(WTF::FastAllocator::select_on_container_copy_construction const): Deleted.
- 2:46 PM Changeset in webkit [284500] by
-
- 1 copy in tags/Safari-613.1.5.2
Tag Safari-613.1.5.2.
- 2:46 PM Changeset in webkit [284499] by
-
- 5 edits4 adds in branches/safari-613.1.6-branch
Cherry-pick r284490. rdar://problem/84434069
Regression(r284336): [ iOS 15 ] system-preview/badge.html is image failing
https://bugs.webkit.org/show_bug.cgi?id=231916
Reviewed by Antti Koivisto.
Source/WebCore:
In r284336 I made clip-path not apply to non-RenderBoxes, which disabled it on inlines,
breaking the system-preview/badge.html test.
The spec says it applies to all elements, so this behavior change was incorrect.
Revert back to using calculateLayerBounds() as the fallback rect to use for inlines, and add
tests for this. This rectangle is obviously incorrect (for example, it's affected by text
shadow), but leave it for now until https://github.com/w3c/csswg-drafts/issues/6383 is
resolved.
I also failed to see that computeClipPath() was already computing the reference box
internally, so clean up the code with some comments to make it more clear that the result of
calculateLayerBounds() is used only as the fallback for inlines, as well as for the buffer
bounds for the applyClippingToContext() code path.
Tests: css3/masking/clip-path-on-inline.html
css3/masking/clip-path-on-split-inline.html
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::computeClipPath const): (WebCore::RenderLayer::setupClipPath):
- rendering/RenderLayer.h:
- rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateMaskingLayerGeometry):
LayoutTests:
Tests for clip-path on a single-box inline, and a split inline.
- css3/masking/clip-path-on-inline-expected.html: Added.
- css3/masking/clip-path-on-inline.html: Added.
- css3/masking/clip-path-on-split-inline-expected.html: Added.
- css3/masking/clip-path-on-split-inline.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:44 PM Changeset in webkit [284498] by
-
- 6 edits in trunk/Tools
[webkitscmpy] Override http url with ssh url
https://bugs.webkit.org/show_bug.cgi?id=231965
<rdar://problem/84422393>
Reviewed by Ryan Haddad.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git): Exclude / from hostname.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.git): Prompt user to switch to ssh checkout.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
Canonical link: https://commits.webkit.org/243250@main
- 2:41 PM Changeset in webkit [284497] by
-
- 2 edits1 delete in branches/safari-613.1.6-branch/Source/WebKit
Cherry-pick r284495. rdar://problem/84433820
Unreviewed, reverting r284099.
https://bugs.webkit.org/show_bug.cgi?id=231984
Introduced build failure
Reverted changeset:
"[iOS] Stop including 'util.sb' in the WebContent process'
sandbox"
https://bugs.webkit.org/show_bug.cgi?id=231570
https://commits.webkit.org/r284099
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284495 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:40 PM Changeset in webkit [284496] by
-
- 8 edits in branches/safari-613.1.5-branch/Source
Versioning.
WebKit-7613.1.5.2
- 2:37 PM Changeset in webkit [284495] by
-
- 2 edits1 delete in trunk/Source/WebKit
Unreviewed, reverting r284099.
https://bugs.webkit.org/show_bug.cgi?id=231984
Introduced build failure
Reverted changeset:
"[iOS] Stop including 'util.sb' in the WebContent process'
sandbox"
https://bugs.webkit.org/show_bug.cgi?id=231570
https://commits.webkit.org/r284099
- 2:10 PM Changeset in webkit [284494] by
-
- 2 edits in trunk/Source/WebCore/PAL
REGRESSION (r284220): [PAL] TCCSPI.h should be a project header, not a private header
<https://webkit.org/b/231977>
<rdar://problem/84425384>
Reviewed by Wenson Hsieh.
- PAL.xcodeproj/project.pbxproj:
- Change TCCSPI.h from a private header to a project header. PAL uses a build phase script to install its headers.
- 1:58 PM Changeset in webkit [284493] by
-
- 2 edits in trunk/LayoutTests
Regression(r283935 - r283938): [ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-multiple-times.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231918
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 1:46 PM Changeset in webkit [284492] by
-
- 3 edits in trunk/Tools
[EWS] Move EWS bots to iOS 15 / watchOS 8 / tvOS 15
https://bugs.webkit.org/show_bug.cgi?id=231925
Reviewed by Jonathan Bedard.
- CISupport/ews-build/config.json:
- CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps):
- 1:36 PM Changeset in webkit [284491] by
-
- 2 edits in trunk/Tools
[webkitscmpy] Generate commit message template (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=231023
<rdar://problem/83722871>
Unreviewed follow-up fix.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: MarkupSafe is imported as markupsafe.
- 1:34 PM Changeset in webkit [284490] by
-
- 5 edits4 adds in trunk
Regression(r284336): [ iOS 15 ] system-preview/badge.html is image failing
https://bugs.webkit.org/show_bug.cgi?id=231916
Reviewed by Antti Koivisto.
Source/WebCore:
In r284336 I made clip-path not apply to non-RenderBoxes, which disabled it on inlines,
breaking the system-preview/badge.html test.
The spec says it applies to all elements, so this behavior change was incorrect.
Revert back to using calculateLayerBounds() as the fallback rect to use for inlines, and add
tests for this. This rectangle is obviously incorrect (for example, it's affected by text
shadow), but leave it for now until https://github.com/w3c/csswg-drafts/issues/6383 is
resolved.
I also failed to see that computeClipPath() was already computing the reference box
internally, so clean up the code with some comments to make it more clear that the result of
calculateLayerBounds() is used only as the fallback for inlines, as well as for the buffer
bounds for the applyClippingToContext() code path.
Tests: css3/masking/clip-path-on-inline.html
css3/masking/clip-path-on-split-inline.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeClipPath const):
(WebCore::RenderLayer::setupClipPath):
- rendering/RenderLayer.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateMaskingLayerGeometry):
LayoutTests:
Tests for clip-path on a single-box inline, and a split inline.
- css3/masking/clip-path-on-inline-expected.html: Added.
- css3/masking/clip-path-on-inline.html: Added.
- css3/masking/clip-path-on-split-inline-expected.html: Added.
- css3/masking/clip-path-on-split-inline.html: Added.
- 1:32 PM Changeset in webkit [284489] by
-
- 2 edits in trunk/Source/WebKit
WebAuthn Platform UI callbacks are not guaranteed to happen on the main thread
https://bugs.webkit.org/show_bug.cgi?id=231963
<rdar://84420452>
Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-10-19
Reviewed by Brent Fulgham.
- The clearanceHandler is not guaranteed to happen on the main thread, but
weakThis.get() needs to happen there.
proxy
needs to stay alive for the whole transaction, otherwise it will tear
down the connection and cancel the request, so explicitly capture it everywhere.
- Start logging if we get an error from clearanceHandler.
Covered by existing tests.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::WebAuthenticatorCoordinatorProxy::performRequest):
- 1:15 PM Changeset in webkit [284488] by
-
- 1 copy in tags/Safari-612.2.9.1.22
Tag Safari-612.2.9.1.22.
- 1:11 PM Changeset in webkit [284487] by
-
- 2 edits in branches/safari-612.2.9.1-branch/Source/WebKit
Cherry-pick r283430. rdar://problem/84428809
Use DYLD_FRAMEWORK_PATH instead of DYLD_VERSIONED_FRAMEWORK_PATH on Safari Big Sur
https://bugs.webkit.org/show_bug.cgi?id=231058
Patch by Remy Demarest <rdemarest@apple.com> on 2021-10-01
Reviewed by David Kilzer.
Modify the DYLD environment variable that is used when compiling with staged frameworks.
We want to use DYLD_VERSIONED_FRAMEWORK_PATH to define the search path of the frameworks
for DYLD because this makes launching Safari and its child processes faster. However,
on Apple Silicon Big Sur using that environment variable does not work and results in Safari
loading frameworks from the System folder rather than from the StagedFrameworks/Safari
folder, this is because dyld on M1 does not look up that variable properly. To make sure
we actually load the frameworks from the desired location, we need to use DYLD_FRAMEWORK_PATH
instead, this makes dyld perform more stat() calls than usual to link the frameworks hence
why we prefer the other variable, but this is the only way to workaround the issue in
Big Sur on M1. In Monterey and above, this bug will be fixed in dyld so we only need this
variable before macOS 11.
Override OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH_YES based on SDK and architecture to use
DYLD_FRAMEWORK_PATH instead of DYLD_VERSIONED_FRAMEWORK_PATH when building for macOS 11 and arm64.
- Configurations/BaseTarget.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283430 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:08 PM Changeset in webkit [284486] by
-
- 8 edits in branches/safari-612.2.9.1-branch/Source
Versioning.
WebKit-7612.2.9.1.22
- 1:07 PM Changeset in webkit [284485] by
-
- 8 edits4 adds in trunk/Tools
[webkitscmpy] Generate commit message template
https://bugs.webkit.org/show_bug.cgi?id=231023
<rdar://problem/83722871>
Reviewed by Dewei Zhu.
- Tools/Scripts/git-webkit: Use prepare-ChangeLog to generate commit messages.
- Tools/Scripts/hooks/prepare-commit-msg: Added.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version, add jinja.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git.init): Add unbound status mock.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:
(main): Pass hooks to sub-programs.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.git): iterate through the directory of provided hooks and render with jinja2.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/hooks/prepare-commit-msg: Added.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
(TestSetup.test_commit_message):
Canonical link: https://commits.webkit.org/243242@main
- 1:05 PM Changeset in webkit [284484] by
-
- 12 edits2 copies2 moves1 delete in branches/safari-613.1.6-branch
Cherry-pick r284483. rdar://problem/84428759
LayoutTests/imported/w3c:
Origin of opaque blob: URLs ends up as empty string
https://bugs.webkit.org/show_bug.cgi?id=231942
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-19
Reviewed by Tim Horton.
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-constructor.any-expected.txt:
- web-platform-tests/url/url-constructor.any.worker-expected.txt:
- web-platform-tests/url/url-origin.any-expected.txt:
- web-platform-tests/url/url-origin.any.worker-expected.txt:
Source/WebCore:
Fix leak of CGColorSpaceRef in FilterEffectRendererCoreImage::sharedCIContext()
<https://webkit.org/b/231902>
<rdar://problem/84375203>
Patch by David Kilzer <ddkilzer@apple.com> on 2021-10-19
Reviewed by Wenson Hsieh.
- platform/graphics/coreimage/FilterEffectRendererCoreImage.mm: (WebCore::FilterEffectRendererCoreImage::sharedCIContext):
- Use adoptCF() to fix the leak.
Source/WebKit:
REGRESSION (r284079): fast/canvas/gradient-with-clip.html and fast/canvas/gradient-text-with-shadow.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=231681
rdar://84202478
Patch by Wenson Hsieh <Wenson Hsieh> on 2021-10-19
Reviewed by Kimmo Kinnunen.
These tests occasionally fail when we time out while waiting for the pixel buffer to be populated underneath
RemoteImageBufferProxy::getPixelBuffer
; this happens because the GPU process sometimes halts (and never
resumes) while processing stream messages, and consequently never ends up processing the GetPixelBuffer IPC
stream message that's necessary to populate the shared memory buffer for GetPixelBuffer.
This, in turn, happens when the IPC stream buffer is about to exhaust all available capacity (i.e. the write
cursor is nearing the end of the 2MB buffer), and as a result, we send messages that would normally be encoded
in the IPC stream as out-of-line IPC messages instead, which are received in the GPU process on the IPC thread
and appended to the receive queue corresponding to the destination ID inConnection::processIncomingMessage()
.
If we happen to have sent
RemoteRenderingBackend::CreateImageBuffer(a)
right before exhausting capacity and
sending out-of-line messages targeting the RemoteDisplayListRecorder corresponding to the newly created image
buffera
, we'll end up with a race condition where the IPC thread may receive the out-of-line messages meant
for the new remote display list destination *before* the new remote display list has added itself as an IPC
receive queue by calling intoStreamServerConnection::startReceivingMessages()
.
In this particular scenario (where we "lose" the race),
Connection::processIncomingMessage
will skip past the
early return where it would normally find its corresponding receive queue viam_receiveQueues.get(*message)
,
and instead falls through toConnection::SyncMessageState::processIncomingMessage()
, which will attempt to
dispatch the incoming message to the Connection's client (GPUConnectionToWebProcess). Of course, the
GPUConnectionToWebProcess isn't aware of how to process this incoming message, so it simply gets dropped. By the
time the receive queue is added for the new RemoteDisplayListRecorder, we'll observe a ProcessOutOfStreamMessage
and end up waiting forever for this out-of-line message to be added to the receive queue, but this never ends up
happening because it has already been received and dropped by GPUConnectionToWebProcess.
To address the flaky tests in the short term, we work around this issue by making
CreateImageBuffer
a sync
message, so we guarantee that any subsequent messages sent to the image buffer's RemoteDisplayListRecorder will
not be dropped. In the (slightly) longer term, we should turn this back into an async stream message, and add a
mechanism to redirect all receiver-less RemoteDisplayListRecorder messages to a separate queue.
- GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::createImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
Make
CreateImageBuffer
a synchronous stream message for now.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
LayoutTests:
Resync web-platform-tests/reporting from upstream
https://bugs.webkit.org/show_bug.cgi?id=231957
Reviewed by Alex Christensen.
Resync web-platform-tests/reporting from upstream 207e223d74fdc1f1.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284483 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [284483] by
-
- 12 edits2 copies2 moves1 delete in trunk
LayoutTests/imported/w3c:
Origin of opaque blob: URLs ends up as empty string
https://bugs.webkit.org/show_bug.cgi?id=231942
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-19
Reviewed by Tim Horton.
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-constructor.any-expected.txt:
- web-platform-tests/url/url-constructor.any.worker-expected.txt:
- web-platform-tests/url/url-origin.any-expected.txt:
- web-platform-tests/url/url-origin.any.worker-expected.txt:
Source/WebCore:
Fix leak of CGColorSpaceRef in FilterEffectRendererCoreImage::sharedCIContext()
<https://webkit.org/b/231902>
<rdar://problem/84375203>
Patch by David Kilzer <ddkilzer@apple.com> on 2021-10-19
Reviewed by Wenson Hsieh.
- platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:
(WebCore::FilterEffectRendererCoreImage::sharedCIContext):
- Use adoptCF() to fix the leak.
Source/WebKit:
REGRESSION (r284079): fast/canvas/gradient-with-clip.html and fast/canvas/gradient-text-with-shadow.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=231681
rdar://84202478
Patch by Wenson Hsieh <Wenson Hsieh> on 2021-10-19
Reviewed by Kimmo Kinnunen.
These tests occasionally fail when we time out while waiting for the pixel buffer to be populated underneath
RemoteImageBufferProxy::getPixelBuffer
; this happens because the GPU process sometimes halts (and never
resumes) while processing stream messages, and consequently never ends up processing the GetPixelBuffer IPC
stream message that's necessary to populate the shared memory buffer for GetPixelBuffer.
This, in turn, happens when the IPC stream buffer is about to exhaust all available capacity (i.e. the write
cursor is nearing the end of the 2MB buffer), and as a result, we send messages that would normally be encoded
in the IPC stream as out-of-line IPC messages instead, which are received in the GPU process on the IPC thread
and appended to the receive queue corresponding to the destination ID inConnection::processIncomingMessage()
.
If we happen to have sent
RemoteRenderingBackend::CreateImageBuffer(a)
right before exhausting capacity and
sending out-of-line messages targeting the RemoteDisplayListRecorder corresponding to the newly created image
buffera
, we'll end up with a race condition where the IPC thread may receive the out-of-line messages meant
for the new remote display list destination *before* the new remote display list has added itself as an IPC
receive queue by calling intoStreamServerConnection::startReceivingMessages()
.
In this particular scenario (where we "lose" the race),
Connection::processIncomingMessage
will skip past the
early return where it would normally find its corresponding receive queue viam_receiveQueues.get(*message)
,
and instead falls through toConnection::SyncMessageState::processIncomingMessage()
, which will attempt to
dispatch the incoming message to the Connection's client (GPUConnectionToWebProcess). Of course, the
GPUConnectionToWebProcess isn't aware of how to process this incoming message, so it simply gets dropped. By the
time the receive queue is added for the new RemoteDisplayListRecorder, we'll observe a ProcessOutOfStreamMessage
and end up waiting forever for this out-of-line message to be added to the receive queue, but this never ends up
happening because it has already been received and dropped by GPUConnectionToWebProcess.
To address the flaky tests in the short term, we work around this issue by making
CreateImageBuffer
a sync
message, so we guarantee that any subsequent messages sent to the image buffer's RemoteDisplayListRecorder will
not be dropped. In the (slightly) longer term, we should turn this back into an async stream message, and add a
mechanism to redirect all receiver-less RemoteDisplayListRecorder messages to a separate queue.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
Make
CreateImageBuffer
a synchronous stream message for now.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
LayoutTests:
Resync web-platform-tests/reporting from upstream
https://bugs.webkit.org/show_bug.cgi?id=231957
Reviewed by Alex Christensen.
Resync web-platform-tests/reporting from upstream 207e223d74fdc1f1.
- 12:59 PM Changeset in webkit [284482] by
-
- 12 edits2 copies2 moves1 delete in branches/safari-612-branch
Revert r283931. rdar://problem/83953710
- 12:56 PM Changeset in webkit [284481] by
-
- 2 edits in trunk/Source/WebCore
Fix leak of CGColorSpaceRef in FilterEffectRendererCoreImage::sharedCIContext()
<https://webkit.org/b/231902>
<rdar://problem/84375203>
Reviewed by Wenson Hsieh.
- platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:
(WebCore::FilterEffectRendererCoreImage::sharedCIContext):
- Use adoptCF() to fix the leak.
- 12:49 PM Changeset in webkit [284480] by
-
- 2 edits in trunk/Source/JavaScriptCore
[clang 13] Suppress sign comparison warnings
https://bugs.webkit.org/show_bug.cgi?id=231188
<rdar://problem/84110570>
Reviewed by Alex Christensen.
- inspector/remote/socket/RemoteInspectorSocket.cpp:
(Inspector::RemoteInspector::backendCommands const):
- 12:39 PM Changeset in webkit [284479] by
-
- 7 edits in trunk/Tools
[webkitscmpy] Filter approvers by status
https://bugs.webkit.org/show_bug.cgi?id=231843
<rdar://problem/84320934>
Reviewed by Dewei Zhu.
If a project defines statuses for it's contributors, we only want
to allow reviewers to approve changes.
- Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:
(Contributor): Add reviewer status.
(Contributor.Mapping.load): Keep track of possible statuses.
(Contributor.Mapping.init): Ditto.
(Contributor.Mapping.add): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:
(BitBucket.PRGenerator.PullRequest): If a project defines a reviewer status, enforce it.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.PRGenerator._contributor): Handle case where no name is defined.
(GitHub.PRGenerator.reviewers): If a project defines a reviewer status, enforce it.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
- 12:28 PM Changeset in webkit [284478] by
-
- 12 edits in trunk
Origin of opaque blob: URLs ends up as empty string
https://bugs.webkit.org/show_bug.cgi?id=231942
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-19
Reviewed by Tim Horton.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-constructor.any-expected.txt:
- web-platform-tests/url/url-constructor.any.worker-expected.txt:
- web-platform-tests/url/url-origin.any-expected.txt:
- web-platform-tests/url/url-origin.any.worker-expected.txt:
Source/WebCore:
It should be "null" instead of "".
This matches Chrome and Firefox.
Covered by a PR to WPT included in this patch.
- page/SecurityOrigin.cpp:
(WebCore::shouldTreatAsUniqueOrigin):
- 12:16 PM Changeset in webkit [284477] by
-
- 12 edits49 adds in trunk/LayoutTests
Resync web-platform-tests/reporting from upstream
https://bugs.webkit.org/show_bug.cgi?id=231957
Reviewed by Alex Christensen.
Resync web-platform-tests/reporting from upstream 207e223d74fdc1f1.
LayoutTests/imported/w3c:
- web-platform-tests/reporting/*: Updated.
LayoutTests:
- 12:09 PM Changeset in webkit [284476] by
-
- 8 edits in trunk
REGRESSION (r284079): fast/canvas/gradient-with-clip.html and fast/canvas/gradient-text-with-shadow.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=231681
rdar://84202478
Reviewed by Kimmo Kinnunen.
Source/WebKit:
These tests occasionally fail when we time out while waiting for the pixel buffer to be populated underneath
RemoteImageBufferProxy::getPixelBuffer
; this happens because the GPU process sometimes halts (and never
resumes) while processing stream messages, and consequently never ends up processing the GetPixelBuffer IPC
stream message that's necessary to populate the shared memory buffer for GetPixelBuffer.
This, in turn, happens when the IPC stream buffer is about to exhaust all available capacity (i.e. the write
cursor is nearing the end of the 2MB buffer), and as a result, we send messages that would normally be encoded
in the IPC stream as out-of-line IPC messages instead, which are received in the GPU process on the IPC thread
and appended to the receive queue corresponding to the destination ID inConnection::processIncomingMessage()
.
If we happen to have sent
RemoteRenderingBackend::CreateImageBuffer(a)
right before exhausting capacity and
sending out-of-line messages targeting the RemoteDisplayListRecorder corresponding to the newly created image
buffera
, we'll end up with a race condition where the IPC thread may receive the out-of-line messages meant
for the new remote display list destination *before* the new remote display list has added itself as an IPC
receive queue by calling intoStreamServerConnection::startReceivingMessages()
.
In this particular scenario (where we "lose" the race),
Connection::processIncomingMessage
will skip past the
early return where it would normally find its corresponding receive queue viam_receiveQueues.get(*message)
,
and instead falls through toConnection::SyncMessageState::processIncomingMessage()
, which will attempt to
dispatch the incoming message to the Connection's client (GPUConnectionToWebProcess). Of course, the
GPUConnectionToWebProcess isn't aware of how to process this incoming message, so it simply gets dropped. By the
time the receive queue is added for the new RemoteDisplayListRecorder, we'll observe a ProcessOutOfStreamMessage
and end up waiting forever for this out-of-line message to be added to the receive queue, but this never ends up
happening because it has already been received and dropped by GPUConnectionToWebProcess.
To address the flaky tests in the short term, we work around this issue by making
CreateImageBuffer
a sync
message, so we guarantee that any subsequent messages sent to the image buffer's RemoteDisplayListRecorder will
not be dropped. In the (slightly) longer term, we should turn this back into an async stream message, and add a
mechanism to redirect all receiver-less RemoteDisplayListRecorder messages to a separate queue.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
Make
CreateImageBuffer
a synchronous stream message for now.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
LayoutTests:
Remove the flaky failure entries in test expectations. See WebKit2 ChangeLog for more details.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 11:56 AM Changeset in webkit [284475] by
-
- 2 edits in trunk/LayoutTests
[GTK] Update test expectations for still-failing CSS web platform tests
https://bugs.webkit.org/show_bug.cgi?id=231964
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-19
- platform/gtk/TestExpectations:
- 11:54 AM Changeset in webkit [284474] by
-
- 3 edits in trunk/Tools
Fix iOS API tests after r284304
https://bugs.webkit.org/show_bug.cgi?id=231829
Part of the original commit that told the tests to continue doing what they were doing before was omitted.
This commits that.
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(webViewWithResourceLoadStatisticsEnabledInNetworkProcess):
- 11:43 AM Changeset in webkit [284473] by
-
- 3 edits in trunk/LayoutTests
http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231379
<rdar://problem/83991245>
Reviewed by Chris Dumez.
- http/tests/resourceLoadStatistics/resources/redirect.py:
Added the response header 'Cache-Control: no-cache, no-store'.
Historically, we've had problems with redirects getting cached
so that they don't hit the network. In this particular case,
the same redirect is being done in different orders and might
fall into the cache trap.
- platform/mac-wk2/TestExpectations:
Removed [Pass Failure] expectation for sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html.
- 11:41 AM Changeset in webkit [284472] by
-
- 13 edits in trunk
Guarantee order of WebSocket events in case of being resumed
https://bugs.webkit.org/show_bug.cgi?id=231664
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/websockets/interfaces/WebSocket/close/close-nested-expected.txt:
- web-platform-tests/websockets/interfaces/WebSocket/readyState/003-expected.txt:
Source/WebCore:
Introduce a WebSocket task source as per spec.
This aligns with https://html.spec.whatwg.org/multipage/web-sockets.html where the user agent is expected to a queue task
when closing handshake is started and so on.
By queuing an event loop task to fire WebSocket events, we ensure ordering of events even in case of resuming, while simplifying the implementation.
This makes it use the event loop which is extra nice if we resolve promises in event listeners.
A follow-up patch should refactor code so that WebSocket::didReceiveMessageError can directly fire the close event without having to wait for a didClose call.
Covered by existing tests.
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::suspend):
(WebCore::WebSocket::resume):
(WebCore::WebSocket::stop):
(WebCore::WebSocket::dispatchOrQueueEvent):
(WebCore::WebSocket::resumeTimerFired): Deleted.
- Modules/websockets/WebSocket.h:
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::send):
- dom/TaskSource.h:
Source/WebKit:
We no longer need to handle resume/suspend in WebSocketChannel layer since WebSocket will deal with itself by enqueuing a task in the event loop.
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::disconnect):
(WebKit::WebSocketChannel::didConnect):
(WebKit::WebSocketChannel::didReceiveText):
(WebKit::WebSocketChannel::didReceiveBinaryData):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::didReceiveMessageError):
(WebKit::WebSocketChannel::suspend):
(WebKit::WebSocketChannel::resume):
(WebKit::WebSocketChannel::didSendHandshakeRequest):
(WebKit::WebSocketChannel::didReceiveHandshakeResponse):
(WebKit::WebSocketChannel::enqueueTask): Deleted.
- WebProcess/Network/WebSocketChannel.h:
LayoutTests:
- http/tests/websocket/tests/hybi/inspector/send-and-receive.html:
The WebSocket server was racing to close the connection with the User Agent.
The patch queueing a task to fire events is further amplifying this race.
To make the test non flaky, we use an echo server that waits for User Agent to close the connection.
- 11:40 AM Changeset in webkit [284471] by
-
- 2 edits in trunk
Add AX team GitHub usernames to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231966
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-19
Reviewed by Chris Fleizach.
- metadata/contributors.json:
Add Chris Fleizach's and Andres Gonzalez's GitHub usernames. Add Tyler
Wilcock as a contributor. Run validate-committer-lists --canonicalize
to fix some style issues.
- 11:37 AM Changeset in webkit [284470] by
-
- 15 edits4 adds in branches/safari-613.1.6-branch
Cherry-pick r284466. rdar://problem/84424869
REGRESSION(r284313): ::marker accelerated animations are broken
https://bugs.webkit.org/show_bug.cgi?id=231906
<rdar://problem/84383279>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
WPT now reflect that we correctly do not animate the opacity property and correctly account for
other ineffective properties on ::marker, such as line-height.
- web-platform-tests/css/css-pseudo/marker-animate-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
Source/WebCore:
Test: webanimations/marker-opacity-animation-no-effect.html
We incorrectly supported animations for all known CSS properties on a ::marker since we added
support for animation of ::marker, and with r284313 we started returning the correct renderer
for ::marker pseudo-elements which meant that accelerated opacity animations started running
for the first time.
We now correctly ignore disallowed properties for ::marker when animating with those changes.
First, in Style::Resolver::styleForKeyframe(), we pass the relevant allowlist to the MatchResult's
authorDeclarations when adding the keyframe properties.
Then, in KeyframeEffect::isCurrentlyAffectingProperty() we call isValidMarkerStyleProperty() in
case we're being called for a ::marker pseudo-element.
To be able to obtain the allowlist and call isValidMarkerStyleProperty() in those two questions,
we had to refactor the related code into a dedicated PropertyAllowlist file and enum.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::isCurrentlyAffectingProperty const):
- style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::transferMatchedRules):
- style/ElementRuleCollector.h:
- style/PropertyAllowlist.cpp: Added. (WebCore::Style::propertyAllowlistForPseudoId): (WebCore::Style::isValidMarkerStyleProperty): (WebCore::Style::isValidCueStyleProperty):
- style/PropertyAllowlist.h: Added.
- style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::addMatch): (WebCore::Style::isValidMarkerStyleProperty): Deleted. (WebCore::Style::isValidCueStyleProperty): Deleted.
- style/RuleData.cpp: (WebCore::Style::determinePropertyAllowlist): (WebCore::Style::RuleData::RuleData): (WebCore::Style::determinePropertyAllowlistType): Deleted.
- style/RuleData.h: (WebCore::Style::RuleData::propertyAllowlist const): (): Deleted. (WebCore::Style::RuleData::propertyAllowlistType const): Deleted.
- style/StyleResolver.cpp: (WebCore::Style::Resolver::styleForKeyframe):
LayoutTests:
Add a new test that checks we do not visually account for an opacity animation on a ::marker
pseudo-element.
- webanimations/marker-opacity-animation-no-effect-expected.html: Added.
- webanimations/marker-opacity-animation-no-effect.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284466 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:15 AM WebKitGTK/Debugging edited by
- WebKitGTK+ -> WebKitGTK (diff)
- 11:14 AM WebKitGTK/Releasing edited by
- WebKitGTK+ -> WebKitGTK (diff)
- 11:14 AM EnvironmentVariables edited by
- WebKitGTK+ -> WebKitGTK (diff)
- 11:13 AM WebKitGtkLayoutTests edited by
- WebKitGTK+ -> WebKitGTK (diff)
- 11:04 AM Changeset in webkit [284469] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/tests/cache/disk-cache/redirect-chain-limits.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=231630
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 11:00 AM Changeset in webkit [284468] by
-
- 3 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/html/canvas/element/manual tests, fast/canvas/canvas-createPattern-video-modify.html and media/video-canvas-createPattern.html are failing.
https://bugs.webkit.org/show_bug.cgi?id=231959
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- platform/mac/TestExpectations:
- 10:36 AM Changeset in webkit [284467] by
-
- 2 edits in trunk/Source/JavaScriptCore
Wasm Table can take arbitrary default value
https://bugs.webkit.org/show_bug.cgi?id=231933
rdar://84327812
Reviewed by Robin Morisset.
- wasm/WasmTable.cpp:
(JSC::Wasm::Table::grow):
- 10:18 AM Changeset in webkit [284466] by
-
- 15 edits4 adds in trunk
REGRESSION(r284313): ::marker accelerated animations are broken
https://bugs.webkit.org/show_bug.cgi?id=231906
<rdar://problem/84383279>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
WPT now reflect that we correctly do not animate the opacity property and correctly account for
other ineffective properties on ::marker, such as line-height.
- web-platform-tests/css/css-pseudo/marker-animate-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
Source/WebCore:
Test: webanimations/marker-opacity-animation-no-effect.html
We incorrectly supported animations for all known CSS properties on a ::marker since we added
support for animation of ::marker, and with r284313 we started returning the correct renderer
for ::marker pseudo-elements which meant that accelerated opacity animations started running
for the first time.
We now correctly ignore disallowed properties for ::marker when animating with those changes.
First, in Style::Resolver::styleForKeyframe(), we pass the relevant allowlist to the MatchResult's
authorDeclarations when adding the keyframe properties.
Then, in KeyframeEffect::isCurrentlyAffectingProperty() we call isValidMarkerStyleProperty() in
case we're being called for a ::marker pseudo-element.
To be able to obtain the allowlist and call isValidMarkerStyleProperty() in those two questions,
we had to refactor the related code into a dedicated PropertyAllowlist file and enum.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::isCurrentlyAffectingProperty const):
- style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::transferMatchedRules):
- style/ElementRuleCollector.h:
- style/PropertyAllowlist.cpp: Added.
(WebCore::Style::propertyAllowlistForPseudoId):
(WebCore::Style::isValidMarkerStyleProperty):
(WebCore::Style::isValidCueStyleProperty):
- style/PropertyAllowlist.h: Added.
- style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::addMatch):
(WebCore::Style::isValidMarkerStyleProperty): Deleted.
(WebCore::Style::isValidCueStyleProperty): Deleted.
- style/RuleData.cpp:
(WebCore::Style::determinePropertyAllowlist):
(WebCore::Style::RuleData::RuleData):
(WebCore::Style::determinePropertyAllowlistType): Deleted.
- style/RuleData.h:
(WebCore::Style::RuleData::propertyAllowlist const):
(): Deleted.
(WebCore::Style::RuleData::propertyAllowlistType const): Deleted.
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::styleForKeyframe):
LayoutTests:
Add a new test that checks we do not visually account for an opacity animation on a ::marker
pseudo-element.
- webanimations/marker-opacity-animation-no-effect-expected.html: Added.
- webanimations/marker-opacity-animation-no-effect.html: Added.
- 10:01 AM Changeset in webkit [284465] by
-
- 6 edits in trunk
Use JSONValues instead of a JSC::VM to parse WKContentRuleLists
https://bugs.webkit.org/show_bug.cgi?id=231704
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-19
Reviewed by Brady Eidson.
Source/WebCore:
This makes the parser much simpler and easier to see what is going on.
It probably also saves some memory because we don't need to make a VM just to parse JSON.
Covered by existing tests. There are extensive tests for invalid input, and there is only
one change in the error reported: we used to say the top level has to be an object, then
we would say that it has to be an array. JavaScript arrays are objects, but JSON arrays aren't.
Valid input continues to parse the same, and invalid input continues to fail to parse, but the
error is more accurate now.
- contentextensions/ContentExtensionError.cpp:
(WebCore::ContentExtensions::contentExtensionErrorCategory):
- contentextensions/ContentExtensionError.h:
- contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::getStringList):
(WebCore::ContentExtensions::getDomainList):
(WebCore::ContentExtensions::getTypeFlags):
(WebCore::ContentExtensions::loadTrigger):
(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):
(WebCore::ContentExtensions::loadEncodedRules):
(WebCore::ContentExtensions::parseRuleList):
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
- 9:54 AM Changeset in webkit [284464] by
-
- 3 edits in trunk/LayoutTests
[ iOS Win ] editing/selection/modal-dialog-select-paragraph.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=231962
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/win/TestExpectations:
- 9:44 AM Changeset in webkit [284463] by
-
- 2 edits in trunk/Tools
Re-disable WebKit.HTTPSProxy API test on iOS
https://bugs.webkit.org/show_bug.cgi?id=231396
Yesterday's attempt at making it not time out does not appear to have worked.
- TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:
- 9:41 AM Changeset in webkit [284462] by
-
- 2 edits in trunk/Tools
DumpRenderTree should not use WK methods
https://bugs.webkit.org/show_bug.cgi?id=231910
Reviewed by Alex Christensen.
DumpRenderTree functions can be called on WebThread if ios simulator is used.
If we first use WK functions on that, it causes WebKit initialization on non
main thread. We should not mix WK functions with DumpRenderTree.
- DumpRenderTree/mac/DumpRenderTree.mm:
(dumpFramesAsText):
- 9:39 AM Changeset in webkit [284461] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/inline/inline-background-clip-text-multiline.html is image failing.
https://bugs.webkit.org/show_bug.cgi?id=231961
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:37 AM Changeset in webkit [284460] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed build fix.
- DerivedSources-input.xcfilelist:
- 9:30 AM Changeset in webkit [284459] by
-
- 2 edits in trunk/Source/WebCore
Drop assertion in RegistrationDatabase::importRecords()
https://bugs.webkit.org/show_bug.cgi?id=231960
Reviewed by Alex Christensen.
Drop assertion in RegistrationDatabase::importRecords(). This can happen when deleting service
worker scripts on disk but not clearing the service worker database.
The code properly deal with this so there is no need to crash in debug builds.
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::importRecords):
- 9:24 AM Changeset in webkit [284458] by
-
- 2 edits in trunk/Source/WebKit
Follow-up #2: WebKit::LocalConnection::createCredentialPrivateKey leaks an NSMutableDictionary
<https://webkit.org/b/231814>
<rdar://problem/84307054>
Unreviewed follow-up to address Darin's comment.
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::createCredentialPrivateKey const):
- Use WTFMove() to avoid ref count churn.
- 9:23 AM Changeset in webkit [284457] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage- tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=231959
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:00 AM Changeset in webkit [284456] by
-
- 2 edits in trunk/Source/WTF
StringBuffer should really know that strings might be 8-bit
https://bugs.webkit.org/show_bug.cgi?id=231937
Reviewed by Yusuke Suzuki.
We somehow forgot to change this to use CharType instead of UChar.
- wtf/text/StringBuffer.h:
(WTF::StringBuffer::resize):
- 8:38 AM Changeset in webkit [284455] by
-
- 3 edits in trunk/Source/WebCore
AX: Fix broken spec links in AccessibilityObject.cpp and AccessibilityTree.cpp
https://bugs.webkit.org/show_bug.cgi?id=231932
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-19
Reviewed by Chris Fleizach.
Fix broken spec links.
- accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
(WebCore::AccessibilityObject::buttonRoleType const):
- accessibility/AccessibilityTree.cpp:
(WebCore::AccessibilityTree::isTreeValid const):
- 8:17 AM Changeset in webkit [284454] by
-
- 3 edits in trunk/Source/WebCore
Fix leak of object returned from MTLCreateSystemDefaultDevice()
<https://webkit.org/b/231899>
<rdar://problem/84373621>
Reviewed by Anders Carlsson.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::platformSupportsMetal):
- testing/Internals.mm:
(WebCore::Internals::platformSupportsMetal):
- Use adoptNS() to fix the leak.
- 8:05 AM WebKitGTK/2.34.x edited by
- (diff)
- 8:05 AM WebKitGTK/2.32.x edited by
- (diff)
- 7:51 AM Changeset in webkit [284453] by
-
- 62 edits in trunk/Source
cachedCGColor() and nsColor() should return smart pointers
https://bugs.webkit.org/show_bug.cgi?id=231909
Reviewed by Tim Horton.
r276283 attempted to make cachedCGColor() and nsColor() thread-safe but the fix was incomplete
since those functions return unretained objects that can be released from the cache on any
other thread. This patch updates cachedCGColor() and nsColor() to return a RetainPtr to address
the issue.
Source/WebCore:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetStyle):
- editing/cocoa/FontAttributesCocoa.mm:
(WebCore::FontAttributes::createDictionary const):
- editing/cocoa/FontShadowCocoa.mm:
(WebCore::FontShadow::createShadow const):
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::convert):
(HTMLConverter::_colorForElement):
(HTMLConverter::computedAttributesForElement):
(HTMLConverter::_fillInBlock):
(HTMLConverter::_processElement):
(WebCore::editingAttributedString):
- platform/graphics/Color.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(WebCore::LocalSampleBufferDisplayLayer::initialize):
- platform/graphics/ca/PlatformCALayer.cpp:
(WebCore::PlatformCALayer::drawTextAtPoint const):
- platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
(WebCore::PlatformCAFilters::setFiltersOnLayer):
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::setBackgroundColor):
(WebCore::PlatformCALayerCocoa::setBorderColor):
- platform/graphics/cg/ColorCG.cpp:
(WebCore::cachedCGColor):
- platform/graphics/cg/GradientCG.cpp:
(WebCore::Gradient::createCGGradient):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::setCGFillColor):
(WebCore::setCGShadow):
(WebCore::GraphicsContextCG::didUpdateState):
- platform/graphics/cocoa/ColorCocoa.h:
- platform/graphics/cocoa/ColorCocoa.mm:
(WebCore::platformColor):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::addAttributesForCustomFontPalettes):
- platform/graphics/cocoa/GraphicsContextCocoa.mm:
(WebCore::drawFocusRingAtTime):
(WebCore::colorForMarkerLineStyle):
(WebCore::GraphicsContextCG::drawDotsForDocumentMarker):
- platform/graphics/mac/ColorMac.h:
- platform/graphics/mac/ColorMac.mm:
(WTF::RetainPtr<NSColor>>::createValueForKey):
(WebCore::nsColor):
- platform/mac/LocalDefaultSystemAppearance.mm:
(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
- platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::setColor):
- platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::setUpOverhangAreaBackground):
- platform/mac/ThemeMac.mm:
(WebCore::drawCellFocusRingWithFrameAtTime):
- rendering/RenderThemeMac.mm:
(WebCore::AttachmentLayout::layOutTitle):
(WebCore::AttachmentLayout::layOutSubtitle):
- testing/cocoa/WebViewVisualIdentificationOverlay.mm:
(-[WebViewVisualIdentificationOverlay initWithWebView:kind:deprecated:]):
(drawPattern):
Source/WebKit:
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::cgColorFromColor):
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView themeColor]):
(-[WKWebView underPageBackgroundColor]):
(-[WKWebView _pageExtendedBackgroundColor]):
(-[WKWebView _sampledPageTopColor]):
- UIProcess/API/Cocoa/_WKApplicationManifest.mm:
(-[_WKApplicationManifest themeColor]):
- UIProcess/API/mac/WKView.mm:
(-[WKView underlayColor]):
(-[WKView _pageExtendedBackgroundColor]):
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _underlayColor]):
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateTextTouchBar):
(WebKit::WebViewImpl::underlayColor const):
(WebKit::WebViewImpl::pageExtendedBackgroundColor const):
- UIProcess/PDF/WKPDFHUDView.mm:
(-[WKPDFHUDView _setupLayer:]):
- UIProcess/mac/WebColorPickerMac.mm:
(WebKit::WebColorPickerMac::setSelectedColor):
(WebKit::WebColorPickerMac::showColorPicker):
(-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setAccentColor):
- WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
Source/WebKitLegacy/mac:
- DOM/DOMRGBColor.mm:
(-[DOMRGBColor color]):
- WebView/WebFrame.mm:
(-[WebFrame _bodyBackgroundColor]):
- WebView/WebView.mm:
(-[WebView updateTextTouchBar]):
- 7:45 AM Changeset in webkit [284452] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Rename Line::removeCollapsibleContent to removeTrimmableContent
https://bugs.webkit.org/show_bug.cgi?id=231930
Reviewed by Antti Koivisto.
"Trimming" is closer to spec language.
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::removeTrimmableContent):
(WebCore::Layout::Line::removeCollapsibleContent): Deleted.
- layout/formattingContexts/inline/InlineLine.h:
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::close):
- 7:27 AM Changeset in webkit [284451] by
-
- 2 edits1 add in trunk/Source/WebKit
Update seccomp filters with latest changes from flatpak
https://bugs.webkit.org/show_bug.cgi?id=231479
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-19
Reviewed by Adrian Perez de Castro.
Additionally, let's fix a minor inconsistency in our error-handling code: all but one of
our codepaths carefully free and close resources, but the process is about to crash so
there's not really any reason to do so. The code is slightly simpler if we don't bother.
The seemingly-extraneous include order changes are required to placate the style checker.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::seccompStrerror):
(WebKit::setupSeccomp):
- UIProcess/Launcher/glib/Syscalls.h: Added.
- 7:25 AM Changeset in webkit [284450] by
-
- 2 edits in trunk/LayoutTests
Unskip passing flex-basis: content + aspect ratio WPT tests
https://bugs.webkit.org/show_bug.cgi?id=231947
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-19
Reviewed by Sergio Villar Senin.
Unskip passing flex-basis: content + aspect ratio WPT tests. These test cases did not work
before because there was no support for flex-basis: content, but since r284440 they pass.
- 7:17 AM Changeset in webkit [284449] by
-
- 7 edits in trunk
[ wk2 ] 2 page-cache layout-tests are flakey crashing
https://bugs.webkit.org/show_bug.cgi?id=224558
<rdar://problem/76652825>
Reviewed by Eric Carlson.
Source/WebCore:
Covered by updated test.
- Modules/mediastream/PeerConnectionBackend.cpp:
srflx candidates can be exposed even in case of filtering enabled.
- testing/MockLibWebRTCPeerConnection.cpp:
Backend should now handle the mDNS filtering itself.
LayoutTests:
- fast/mediastream/RTCPeerConnection-icecandidate-event-expected.txt: Rebasing after mock changes.
- platform/mac-wk2/TestExpectations:
- webrtc/peerconnection-new-candidate-page-cache.html:
- 6:46 AM Changeset in webkit [284448] by
-
- 5 edits4 adds in trunk
[css-scroll-snap] Triggering a layout during scroll causes jittery scrolling on iOS
https://bugs.webkit.org/show_bug.cgi?id=173887
<rdar://problem/67153673>
Patch by Martin Robinson <mrobinson@igalia.com> on 2021-10-19
Reviewed by Simon Fraser.
Source/WebKit:
Tests: fast/scrolling/ios/scroll-snap-with-relayouts-horizontal.html
fast/scrolling/ios/scroll-snap-with-relayouts-vertical.html
Ensure that when the root node is scrolling, it is added to the list of nodes
with an active user scroll. This prevents the web process from resnapping during
layout when the user is actively scrolling.
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView scrollViewWillBeginDragging:]): Call RemoteScrollingCoordinatorProxy::setRootNodeIsInUserScroll
when a scdroll starts and ends.
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: Added method declaration.
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::setRootNodeIsInUserScroll): Added setRootNodeIsInUserScroll method.
LayoutTests:
- fast/scrolling/ios/scroll-snap-with-relayouts-horizontal-expected.txt: Added.
- fast/scrolling/ios/scroll-snap-with-relayouts-horizontal.html: Added.
- fast/scrolling/ios/scroll-snap-with-relayouts-vertical-expected.txt: Added.
- fast/scrolling/ios/scroll-snap-with-relayouts-vertical.html: Added.
- 6:40 AM Changeset in webkit [284447] by
-
- 32 edits in trunk
Remove support for some SVG properties
https://bugs.webkit.org/show_bug.cgi?id=227897
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-19
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Adjust test expectations to removed properties.
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
Source/WebCore:
Remove support for the SVG properties color-profile, color-rendering
and enable-background. We never had support for these apart from parsing
them and they are removed from the SVG2 specification.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::svgPropertyValue):
- css/SVGCSSValueKeywords.in:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::diff const):
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setColorInterpolationFilters):
(WebCore::SVGRenderStyle::colorInterpolationFilters const):
(WebCore::SVGRenderStyle::setBitDefaults):
(WebCore::SVGRenderStyle::InheritedFlags::operator== const):
(WebCore::SVGRenderStyle::setColorRendering): Deleted.
(WebCore::SVGRenderStyle::colorRendering const): Deleted.
- svg/SVGElement.cpp:
(WebCore::createAttributeNameToCSSPropertyIDMap):
- svg/properties/SVGPropertyAnimatorFactory.h:
(WebCore::SVGPropertyAnimatorFactory::attributeAnimatorCreator):
- svg/svgattrs.in:
LayoutTests:
Adjust test expectations to removed properties.
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/glib/svg/css/getComputedStyle-basic-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/ios/svg/css/getComputedStyle-basic-expected.txt:
- platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/mac/svg/css/getComputedStyle-basic-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- svg/css/getComputedStyle-basic-expected.txt:
- 6:20 AM Changeset in webkit [284446] by
-
- 1 copy in releases/WPE WebKit/webkit-2.34.0
WPE WebKit 2.34.0
- 6:19 AM Changeset in webkit [284445] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.34.0 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.34.0.
- 4:52 AM Changeset in webkit [284444] by
-
- 12 edits2 copies2 adds in trunk
getDisplayMedia MediaStreamTrack.applyConstraints behavior regressed in Safari 15
https://bugs.webkit.org/show_bug.cgi?id=231286
<rdar://problem/83930865>
Reviewed by Eric Carlson.
Source/WebKit:
Display tracks are different in that they do not have presets.
Revert back to directly linking the WebProcess track with the remote display source without going through RealtimeVideoSource.
This restores past behavior.
Refactoring of UserMediaCaptureManager to use a single map.
We do not yet support cloning tracks to get different sizes, this should be done as a follow-up.
Covered by fast/mediastream/getDisplayMedia-size.html.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
- WebProcess/cocoa/RemoteRealtimeAudioSource.h:
- WebProcess/cocoa/RemoteRealtimeDisplaySource.cpp: Added.
- WebProcess/cocoa/RemoteRealtimeDisplaySource.h: Added.
- WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
- WebProcess/cocoa/UserMediaCaptureManager.h:
LayoutTests:
- fast/mediastream/getDisplayMedia-size-expected.txt: Added.
- fast/mediastream/getDisplayMedia-size.html: Added.
- platform/ios/TestExpectations: Added.
- 4:05 AM Changeset in webkit [284443] by
-
- 25 edits3 copies3 moves2 adds in trunk
Expose MediaCapabilities to Workers
https://bugs.webkit.org/show_bug.cgi?id=231574
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
Allow running encoding tests in workers as well as in window.
- web-platform-tests/media-capabilities/decodingInfo.any.worker-expected.txt:
- web-platform-tests/media-capabilities/encodingInfo.any-expected.txt: Added.
- web-platform-tests/media-capabilities/encodingInfo.any.html: Added.
- web-platform-tests/media-capabilities/encodingInfo.any.js: Added.
- web-platform-tests/media-capabilities/encodingInfo.any.worker-expected.txt: Added.
- web-platform-tests/media-capabilities/encodingInfo.any.worker.html: Added.
- web-platform-tests/media-capabilities/encodingInfo-expected: Removed.
- web-platform-tests/media-capabilities/encodingInfo.html: Removed.
- web-platform-tests/media-capabilities/idlharness.any.worker-expected.txt:
Source/WebCore:
Expose Media Capabilities to workers by hopping to main thread and using worker responsible document for gathering Media Capabilities, then hopping back to worker.
MediaCapabilities will store the promises when waiting for media capabilities gathering by document.
We remove CustomEnabled since it is not supported in Workers and we are now exposing encoding info for WebRTC anyway.
Tests: imported/w3c/web-platform-tests/media-capabilities/encodingInfo.any.html
imported/w3c/web-platform-tests/media-capabilities/encodingInfo.any.worker.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/mediacapabilities/MediaCapabilities.cpp:
- Modules/mediacapabilities/MediaCapabilities.h:
- Modules/mediacapabilities/MediaCapabilities.idl:
- Modules/mediacapabilities/NavigatorMediaCapabilities.cpp:
- Modules/mediacapabilities/NavigatorMediaCapabilities.h:
- Modules/mediacapabilities/WorkerNavigator+MediaCapabilities.idl: Added.
- Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.cpp: Added.
- Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.h: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/ScriptExecutionContext.cpp:
- dom/ScriptExecutionContext.h:
- platform/MediaCapabilitiesDecodingInfo.h:
- platform/MediaCapabilitiesEncodingInfo.h:
- platform/MediaCapabilitiesInfo.h:
- platform/mediacapabilities/AudioConfiguration.h:
- platform/mediacapabilities/MediaConfiguration.h:
- platform/mediacapabilities/MediaDecodingConfiguration.h:
- platform/mediacapabilities/MediaEncodingConfiguration.h:
- platform/mediacapabilities/VideoConfiguration.h:
- 4:03 AM Changeset in webkit [284442] by
-
- 6 edits in trunk
Close peer connection sockets when entering page cache
https://bugs.webkit.org/show_bug.cgi?id=231890
Reviewed by Eric Carlson.
Source/WebKit:
We proactively close all peer connection sockets when entering page cache.
This makes peer connection go to disconnected and then failed state.
Covered by updated tests.
- WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
LayoutTests:
- webrtc/peerconnection-page-cache-long.html:
- webrtc/peerconnection-page-cache.html:
- 3:21 AM Changeset in webkit [284441] by
-
- 2 edits in trunk
Add my github username to contributors.json
Unreviewed.
- metadata/contributors.json:
- 3:14 AM Changeset in webkit [284440] by
-
- 20 edits in trunk
[css-flexbox] Add flex-basis: content support
https://bugs.webkit.org/show_bug.cgi?id=221479
LayoutTests/imported/w3c:
Reviewed by Javier Fernandez.
Fixed 6 subtest expectations. All of them working fine now.
- web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt:
- web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt:
- web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt:
Source/WebCore:
Reviewed by Javier Fernandez.
Add support for the content keyword as a valid value for the flex-basis property.
It indicates an automated size based on the contents of the flex item. It's typically
equivalent to the max-content size but it has some adjustments for aspect ratios,
orthogonal flows and intrinsic sizing constraints.
Apart from adding the parsing support, it required very little adjustments in the
flexbox code after the refactoring in r284359.
This makes WebKit pass all of the flex-basis:content tests in WPT. We're talking
about 6 tests testing the feature and 6 subtests related to parsing.
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle Content in switch.
(WebCore::CSSPrimitiveValue::init): Initialization for content CSS value.
- css/CSSProperties.json:
- css/LengthFunctions.cpp: Replaced LengthOrAuto by LengthSizing.
(WebCore::valueForLength): Handle Content in switch.
(WebCore::floatValueForLength): Ditto.
- css/LengthFunctions.h:
(WebCore::minimumValueForLength): Ditto.
- css/calc/CSSCalcValue.cpp:
(WebCore::createCSS): Ditto.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFlexBasis): Consume CSSValueContent.
(WebCore::CSSPropertyParser::consumeFlex): Ditto.
- platform/Length.cpp:
(WebCore::operator<<): Added printing support for content.
- platform/Length.h:
(WebCore::Length::initialize): Added enum for content.
(WebCore::Length::isContent const): New method.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing const): Handle content in switch.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite): Treat content as indefinite lenght.
(WebCore::RenderFlexibleBox::childHasComputableAspectRatioAndCrossSizeIsConsideredDefinite):
Flex basis must be either auto or content.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Compute flex-basis using max-content
if flex-basis:content is specified.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertLengthSizing): Handle content in switch.
Source/WebKit:
<rdar://problem/74279369>
Reviewed by Javier Fernandez.
Handle LengthType::Content in encode/decode functions.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Length>::encode):
(IPC::ArgumentCoder<Length>::decode):
LayoutTests:
Reviewed by Javier Fernandez.
- TestExpectations: Unskipped 6 tests that are now passing.
- 1:35 AM Changeset in webkit [284439] by
-
- 66 edits22 adds2 deletes in trunk
Ensure CanvasRenderingContext2D.drawImage(video) uses the right color space
https://bugs.webkit.org/show_bug.cgi?id=229025
<rdar://problem/81828490>
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Add some new WPTs for drawImage(video).
- web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html:
- web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY.html:
Updated tests to check that video color space conversion is done
correctly.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video-expected.txt: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video-expected.txt: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js:
(pixelsApproximatelyEqual): Tweaked threshold to pass video tests on iOS.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-222000000.mp4: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-222000000.webm: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-3FF000000.mp4: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-3FF000000.webm: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.mp4: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.webm: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0100.mp4: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0100.webm: Added.
Source/WebCore:
When GPU process media handling is disabled (and in the GPU process
when it is handling a NativeImageForCurrentTime message),
MediaPlayer::nativeImageForCurrentTime is used to get the video frame
image. We make this return an image with the right color space on
Apple platforms in PixelBufferConformerCV::createImageFromPixelBuffer.
For now, we avoid using the correct color space when passing
HTMLVideoElements to WebGLRenderingContext.texImage2D. The
specification is unclear about what color space the texture data
should be in, and implementations are currently interoperable in not
converting the RGB color space of the video (such as Rec.601, Rec.709,
etc.) into sRGB. To avoid the conversion, and effectively reinterpret
the video RGB colors as sRGB, we make the ImageBuffer the video is
drawn into have a matching color space, as it's the raw RGB values
from the ImageBuffer that are uploade as the texture.
(An alternative to this could be passing an argument through
nativeImageForCurrentTime and paintCurrentFrameInContext, which says
to avoid doing the conversion from video RGB to sRGB, but that needs a
fair amount of plumbing.)
If https://github.com/KhronosGroup/WebGL/issues/2165 is resolved, the
changes to LRUImageBufferCache in this commit can be reverted, so that
video frames are drawn into sRGB ImageBuffers again. (We'd also need
something to make the copyToPlatformTexture() call in
texImageSourceHelper do the correct color conversion somehow.)
The now differing behavior between CanvasRenderingContext2D.drawImage
and WebGLRenderingContext.texImage2D means that the WebGL conformance
suite textures/misc/texture-corner-case-videos.html test fails, since
it checks for incorrect 2D canvas video frame color conversion.
Tests: imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::colorSpace const): New function that
exposes the color space of the current frame of the video.
- html/HTMLVideoElement.h:
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createPromise): Create the ImageBuffer in a
color space that matches the video, not always sRGB.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
(WebCore::WebGLRenderingContextBase::videoFrameToImage): Use an
ImageBuffer whose color space matches the video frame's color space.
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):
Add a DestinationColorSpace argument, so that the LRU cache is keyed
off both size and color space.
- html/canvas/WebGLRenderingContextBase.h:
- platform/cocoa/CoreVideoSoftLink.cpp:
- platform/cocoa/CoreVideoSoftLink.h: Add SPIs that let us get or
compute a CGColorSpace from a CVPixelBuffer. Remove
CVImageBufferGetColorSpace, which is unsused.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::colorSpace):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::colorSpace):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::colorSpace):
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::colorSpace): Expose the
color space of the current image. While we strictly only need the pixel
buffer to be up to date, we call updateLastImage() since it has the
UpdateSynchronously behavior, and the caller to colorSpace() will use
the image soon anyway.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::colorSpace):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::colorSpace):
- platform/graphics/cg/ColorSpaceCG.h:
- platform/graphics/cv/CVUtilities.h:
- platform/graphics/cv/CVUtilities.mm:
(WebCore::createCGColorSpaceForCVPixelBuffer): New function to produce
a CGColorSpace for a CVPixelBuffer. On macOS, this is stored as an
attachment on the CVPixelBuffer. On iOS, we must call SPI to create a
CGColorSpace based on the other color space information in the
attachments. (It's possible we should cache the results of this
function for a given set of color space attachments, since
CVImageBufferCreateColorSpaceFromAttachments can end up creating a new
CGColorSpace object every time it's called.)
- platform/graphics/cv/PixelBufferConformerCV.cpp:
(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer): Create
the CGImage in a color space matching the CVPixelBuffer.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::colorSpace):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
- platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::colorSpace):
- platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
- platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::colorSpace):
- platform/mock/mediasource/MockMediaPlayerMediaSource.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawInternal):
Source/WebKit:
When GPU process media handling is enabled, ctx.drawImage(video)
calls work by sending a NativeImageForCurrentTime message to the GPU
process, which returns an IOSurface around which a CGImage is created.
There's no good way to get the color space off the IOSurface, so we
add a second return argument to NativeImageForCurrentTime to indicate
the color space used.
ImageBitmap creates an ImageBuffer for that image to be painted into,
and for that we also need to know the color space of the video. The
code that sends NativeImageForCurrentTime and then paints the
resulting image into the GraphicsContext is further down. So we add
a separate IPC message that gets the color space of the video's
current frame. (It would be better if we could avoid a second
synchronous IPC message call, but either ImageBitmap's scaling and
cropping code, or the ImageBuffer creation call, would need to be moved
down into MediaPlayerPrivateRemote::paintCurrentFrameInContext, which
doesn't seem like the right place for it.)
- GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:
(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):
- GPUProcess/media/RemoteImageDecoderAVFProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
(WebKit::RemoteMediaPlayerProxy::nativeImageForCurrentTime):
(WebKit::RemoteMediaPlayerProxy::colorSpace):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::colorSpace):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:
(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime): Add a
second return argument to NativeImageForCurrentTime to indicate the
color space of the returned IOSurface.
(WebKit::MediaPlayerPrivateRemote::colorSpace): Add a new IPC message to
get the color space of a video's current frame.
Source/WTF:
- wtf/PlatformHave.h: Add HAVE_CVBUFFERCOPYATTACHMENTS.
LayoutTests:
texture-corner-case-videos.html relies on incorrect color space handling
with drawImage() on a 2D canvas and so now fails.
- platform/glib/TestExpectations:
- platform/ios-14/TestExpectations:
- platform/ios-device/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
New tests pass only on macOS Monterey+ and iOS 15+.
- fast/canvas/canvas-createPattern-video-loading-expected.txt:
- fast/canvas/canvas-createPattern-video-loading.html:
- fast/canvas/canvas-createPattern-video-modify-expected.txt:
- fast/canvas/canvas-createPattern-video-modify.html:
- media/video-canvas-createPattern-expected.txt:
- media/video-canvas-createPattern.html:
- media/video-canvas-drawing-output-expected.txt:
- media/video-canvas-drawing-output.html:
- media/video-orientation-canvas-expected.txt:
- media/video-orientation-canvas.html:
Update some tests to check for correctly converted color values.
- platform/mac/media/video-canvas-createPattern-expected.png: Removed.
- platform/wpe/media/video-canvas-createPattern-expected.png: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY-expected.txt:
An existing failure that changed a bit. This is
https://bugs.webkit.org/show_bug.cgi?id=231001.
- 1:06 AM Changeset in webkit [284438] by
-
- 5 edits in trunk/Source/WebCore
Query EGL_BIND_TO_TEXTURE_TARGET_ANGLE to determine 2D/rectangular texture usage
https://bugs.webkit.org/show_bug.cgi?id=231468
Refactor GraphicsContextGLCocoa to hold a reference to
BIND_TO_TEXTURE_TARGET. This refactor is neccesary to support dropping
TEXTURE_RECT support from the Metal backend, as support is incomplete, and unnecessary
Reviewed by Kenneth Russell.
- Modules/webxr/WebXROpaqueFramebuffer.cpp:
(WebCore::WebXROpaqueFramebuffer::startFrame):
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTarget):
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTargetQueryForDrawingTarget):
(WebCore::GraphicsContextGLOpenGL::EGLDrawingBufferTextureTargetForDrawingTarget):
(WebCore::GraphicsContextGLOpenGL::allocateAndBindDisplayBufferBacking):
(WebCore::GraphicsContextGLOpenGL::bindDisplayBufferBacking):
(WebCore::GraphicsContextGLOpenGL::readCompositedResults):
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTargetQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::EGLDrawingBufferTextureTarget): Deleted.
- platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:
(WebCore::GraphicsContextGLCVANGLE::GraphicsContextGLCVANGLE):
(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Oct 18, 2021:
- 11:45 PM Changeset in webkit [284437] by
-
- 23 edits2 adds in trunk
box-shadow and text-shadow do not yield float values while interpolating
https://bugs.webkit.org/show_bug.cgi?id=230347
<rdar://problem/83319111>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Add some new WPT tests for float and calc() values for box-shadow and text-shadow while
interpolating and update output for still-failing composite operations tests. The new tests
have already landed in WPT with https://github.com/web-platform-tests/wpt/pull/30823.
- web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation.html:
- web-platform-tests/css/css-backgrounds/box-shadow-calc-expected.html: Added.
- web-platform-tests/css/css-backgrounds/box-shadow-calc.html: Added.
- web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt:
- web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
- web-platform-tests/css/css-transitions/animations/text-shadow-interpolation.html:
Source/WebCore:
ShadowData members used integer values rather than floats and thus could not represent
float values while interpolating. We now use float values.
Test: imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow-calc.html
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::shadowForBlending):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForFilter):
- display/css/DisplayBoxDecorationPainter.cpp:
(WebCore::Display::BoxDecorationPainter::paintBoxShadow const):
- editing/Editor.cpp:
(WebCore::Editor::fontAttributesAtSelectionStart):
- platform/LengthPoint.h:
(WebCore::LengthPoint::isZero const):
- platform/mac/WebCoreNSFontManagerExtras.mm:
(WebCore::computedFontAttributeChanges):
- rendering/LegacyEllipsisBox.cpp:
(WebCore::LegacyEllipsisBox::paint):
- rendering/RenderBoxModelObject.cpp:
(WebCore::applyBoxShadowForBackground):
(WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground const):
(WebCore::RenderBoxModelObject::paintBoxShadow):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::debugTextShadow const):
- rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::paintTextDecoration):
- rendering/TextPainter.cpp:
(WebCore::ShadowApplier::shadowIsCompletelyCoveredByText):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setTextShadow):
(WebCore::RenderStyle::shadowExtent):
(WebCore::RenderStyle::shadowInsetExtent):
(WebCore::RenderStyle::getShadowHorizontalExtent):
(WebCore::RenderStyle::getShadowVerticalExtent):
- rendering/style/ShadowData.cpp:
(WebCore::ShadowData::ShadowData):
(WebCore::calculateShadowExtent):
- rendering/style/ShadowData.h:
(WebCore::ShadowData::ShadowData):
(WebCore::ShadowData::x const):
(WebCore::ShadowData::y const):
(WebCore::ShadowData::location const):
(WebCore::ShadowData::radius const):
(WebCore::ShadowData::paintingExtent const):
(WebCore::ShadowData::spread const):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyTextOrBoxShadowValue):
- 11:32 PM Changeset in webkit [284436] by
-
- 6 edits4 adds in trunk
Make createImageBitmap() take EXIF orientation into account correctly
https://bugs.webkit.org/show_bug.cgi?id=231063
<rdar://problem/83753956>
Reviewed by Myles Maxfield and Said Abou-Hallawa.
LayoutTests/imported/w3c:
- web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation-expected.txt: Added.
- web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html: Added.
- web-platform-tests/html/canvas/element/manual/imagebitmap/resources/squares.jpg: Added.
Source/WebCore:
Test: imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html
This makes us treat {imageOrientation:"none"} as meaning "apply EXIF
orientation without any additional transformation", and
{imageOrientation:"flipY"} as meaning "apply EXIF orientation and then
apply an additional vertical flip". This behavior matches Firefox;
https://github.com/whatwg/html/issues/7210 is open on clarifying this
behavior in the HTML spec.
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createFromBuffer):
(WebCore::imageOrientationForOrientation): Deleted.
- html/ImageBitmapOptions.h:
(WebCore::ImageBitmapOptions::resolvedImageOrientation const):
- html/ImageBitmapOptions.idl:
- platform/graphics/ImageOrientation.h:
(WebCore::ImageOrientation::withFlippedY const):
- 9:07 PM Changeset in webkit [284435] by
-
- 29 edits12 adds in trunk
JSTests:
Test coverage for JSC shadow realms implementation
https://bugs.webkit.org/show_bug.cgi?id=230602
Patch by Phillip Mates <Phillip Mates> on 2021-10-18
Reviewed by Yusuke Suzuki.
- modules/import-meta-syntax.js:
(shouldThrow):
- stress/eval-indirect.js: Added.
(shouldBe):
(shouldThrow):
- stress/import-syntax.js:
- stress/resources/shadow-realm-example-module.js: Added.
(putInGlobal):
(getFromGlobal):
(getAnObject):
(getCallCount):
- stress/shadow-realm-evaluate.js: Added.
(shouldBe):
(shouldThrow):
(assertionFn):
(shouldBe.String):
(shouldBe.globalObjectFor.doEval):
(shouldBe.globalObjectFor):
- stress/shadow-realm-import-value.js: Added.
(shouldBe):
(shouldThrow):
(async shouldThrowAsync):
(async const):
(doImport):
- stress/shadow-realm.js: Added.
(shouldBe):
(throw.new.Error):
- test262/config.yaml:
Source/JavaScriptCore:
shadow realms implementation
https://bugs.webkit.org/show_bug.cgi?id=230602
Patch by Phillip Mates <Phillip Mates> on 2021-10-18
Reviewed by Yusuke Suzuki.
Implementation of the Shadow Realms proposal (stage 3 in TC39) [1]
Main APIs added are
new ShadowRealm()
creates an object that has its own global object and module graph.- ShadowRealm.prototype.evaluate(sourceText) this allows for evaluating code in the context of the realm, which has its own module graph and global object.
- ShadowRealm.prototype.importValue(specifier, exportName) this allows importing module exports in the the context of the realm, which has its own module graph and global object.
The main detail of the Shadow Realm implementation is that values
passed between realms must be either primitives or wrapped callables.
Wrapped callables themselves are callables that check that their
arguments and return values are also either primitives or wrapped
callables. This detail is implemented via JS builtins + a few new
intrinsics.
Can be enabled using
--useShadowRealm=true
[1]: https://github.com/tc39/proposal-shadowrealm
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- builtins/BuiltinNames.h:
- builtins/ShadowRealmPrototype.js: Added.
(globalPrivate.wrap.wrapped):
(globalPrivate.wrap):
(evaluate):
(importValue):
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecode/LinkTimeConstant.h:
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitIsShadowRealm):
- bytecompiler/NodesCodegen.cpp:
- jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseMemberExpression):
- runtime/CommonIdentifiers.h:
- runtime/IndirectEvalExecutable.cpp:
(JSC::IndirectEvalExecutable::createImpl):
(JSC::IndirectEvalExecutable::create):
(JSC::IndirectEvalExecutable::tryCreate):
- runtime/IndirectEvalExecutable.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildrenImpl):
(JSC::JSGlobalObject::createWithCustomMethodTable):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::shadowRealmPrototype const):
(JSC::JSGlobalObject::shadowRealmStructure const):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSType.cpp:
(WTF::printInternal):
- runtime/JSType.h:
- runtime/OptionsList.h:
- runtime/ShadowRealmConstructor.cpp: Added.
(JSC::ShadowRealmConstructor::ShadowRealmConstructor):
(JSC::ShadowRealmConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/ShadowRealmConstructor.h: Added.
- runtime/ShadowRealmObject.cpp: Added.
(JSC::ShadowRealmObject::ShadowRealmObject):
(JSC::ShadowRealmObject::visitChildrenImpl):
(JSC::ShadowRealmObject::create):
(JSC::ShadowRealmObject::finishCreation):
- runtime/ShadowRealmObject.h: Added.
- runtime/ShadowRealmPrototype.cpp: Added.
(JSC::ShadowRealmPrototype::ShadowRealmPrototype):
(JSC::ShadowRealmPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/ShadowRealmPrototype.h: Added.
- runtime/VM.cpp:
- runtime/VM.h:
- 8:51 PM Changeset in webkit [284434] by
-
- 3 edits3 adds in trunk
WebM with invalid size should fail to load with error
https://bugs.webkit.org/show_bug.cgi?id=231886
rdar://77969801
Reviewed by Jer Noble.
Source/WebCore:
libwebm for some elements are using a std::string or a std::vector<uint8_t>
to store their content. Those have infallible memory allocators.
We limit the size we allow the parser to use to some reasonable values.
Test: media/media-webm-invalid-check.html
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::OnElementBegin):
LayoutTests:
- media/content/invalid-size.webm: Added.
- media/media-webm-invalid-check-expected.txt: Added.
- media/media-webm-invalid-check.html: Added.
- 8:43 PM Changeset in webkit [284433] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Always set color space for incoming H.264/265 streams
https://bugs.webkit.org/show_bug.cgi?id=231881
<rdar://problem/84350707>
Reviewed by Youenn Fablet.
Followup from https://bugs.webkit.org/show_bug.cgi?id=231353. In some
configurations, the "ColorInfoGuessedBy" attachment is not set on the
CVPixelBuffers coming out of the VTDecompressionSession, but the
guessed, incorrect color space attachments are still there. Since we
currently always have an sRGB stream, don't bother looking for
"ColorInfoGuessedBy".
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
(overrideColorSpaceAttachments):
(decompressionOutputCallback):
(overrideColorSpaceAttachmentsIfNeeded): Deleted.
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
(overrideColorSpaceAttachments):
(h265DecompressionOutputCallback):
(overrideColorSpaceAttachmentsIfNeeded): Deleted.
- 8:36 PM Changeset in webkit [284432] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Adjust the logical right side of the line when box-decoration-break: clone is present
https://bugs.webkit.org/show_bug.cgi?id=231873
Reviewed by Antti Koivisto.
This patch adds support for "box-decoration-break: clone" cases when the inline box is either not line spanning or
it shows up first on the line.
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendInlineBoxEnd):
(WebCore::Layout::Line::appendTextContent):
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::contentLogicalRight const):
(WebCore::Layout::Line::inlineBoxListWithClonedDecorationEnd const):
(WebCore::Layout::Line::lineSpanningInlineBoxRunEnds const): Deleted.
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleInlineContent):
- 8:31 PM Changeset in webkit [284431] by
-
- 1 edit in branches/safari-612-branch/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
Apply patch rdar://84349729
- 8:30 PM Changeset in webkit [284430] by
-
- 1 edit in branches/safari-612-branch/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
Apply patch rdar://84349729
- 8:16 PM Changeset in webkit [284429] by
-
- 10 edits in trunk
Unreviewed, reverting r284413.
https://bugs.webkit.org/show_bug.cgi?id=231936
BrokeSafariBuildByAddingANewEnum
Reverted changeset:
"[WebAuthn] Obtain consent to create new credential when
platform authenticator in excludedCredentials"
https://bugs.webkit.org/show_bug.cgi?id=219813
https://commits.webkit.org/r284413
- 7:55 PM Changeset in webkit [284428] by
-
- 16 edits1 delete in trunk/Source
Unreviewed, reverting r284240.
https://bugs.webkit.org/show_bug.cgi?id=231931
NeedDifferentArchitectureToWorkWithWebpushd
Reverted changeset:
"WebKit Managed Notifications: Skeleton NotificationProvider."
https://bugs.webkit.org/show_bug.cgi?id=231786
https://commits.webkit.org/r284240
- 7:44 PM Changeset in webkit [284427] by
-
- 5 edits in trunk/Source/WebKit
GPU process occasionally crashes under
StreamConnectionWorkQueue::processStreams()
in layout tests
https://bugs.webkit.org/show_bug.cgi?id=231897
Reviewed by Simon Fraser.
Certain layout tests (e.g. in
LayoutTests/compositing
) currently cause the GPU process to crash on the remote
rendering backend thread ("RemoteRenderingBackend work queue") inStreamConnectionWorkQueue::processStreams()
.
This happens because thedispatch()
call to delete cached resources underneath~RemoteRenderingBackend()
may fire after the destructor is finished running (thereby destroyingm_workQueue
itself). This leaves the
stream work queue in a bad state and causes various crashes when the function is eventually dispatched.
Since StreamConnectionWorkQueue is already ThreadSafeRefCounted, it doesn't make sense to directly store
StreamConnectionWorkQueue as a member of RemoteRenderingBackend; to fix these crashes, we makem_workQueue
on
RemoteRenderingBackend a strong Ref, and additionally makeStreamConnectionWorkQueue::processStreams()
protect
itself to avoid destroying the work queue in the middle of processing.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
Drive-by fix: remove an unnecessary header include.
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::~RemoteRenderingBackend):
Ensure that the work queue is protected through the final dispatch call that deletes cached resources, and also
explicitlystop()
the work queue when this is done to ensure that the thread permanently stops waiting for
additional work.
(WebKit::RemoteRenderingBackend::dispatch):
- GPUProcess/graphics/RemoteRenderingBackend.h:
Replace the IPC::StreamConnectionWorkQueue member with a Ref instead, so that it isn't immediately destroyed
when the rendering backend is destroyed, and can instead be protected by strong references on the stack.
- Platform/IPC/StreamConnectionWorkQueue.cpp:
(IPC::StreamConnectionWorkQueue::processStreams):
- Platform/IPC/StreamConnectionWorkQueue.h:
Add a boilerplate
StreamConnectionWorkQueue::create()
function that returns a Ref.
- 7:18 PM Changeset in webkit [284426] by
-
- 3 edits1 add in branches/safari-612-branch
Cherry-pick r284348. rdar://problem/84398090
[JSC] PutByVal's child5 should be KnownInt32Use / Int52RepUse in FTL
https://bugs.webkit.org/show_bug.cgi?id=231884
rdar://84357099
Reviewed by Robin Morisset.
JSTests:
- stress/put-by-val-known-int32.js: Added. (new.Uint8Array.1000000.map):
Source/JavaScriptCore:
The child5 of PutByVal should be KnownInt32Use or Int52RepUse.
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:55 PM Changeset in webkit [284425] by
-
- 14 edits5 adds in branches/safari-612-branch
Apply patch rdar://84349747
- 6:55 PM Changeset in webkit [284424] by
-
- 28 edits4 copies4 adds in branches/safari-612-branch
Apply patch rdar://84349752
- 6:54 PM Changeset in webkit [284423] by
-
- 65 edits2 copies8 adds in branches/safari-612-branch
Apply patch rdar://84349736
- 6:43 PM Changeset in webkit [284422] by
-
- 1 edit1 delete in trunk/Source/WebInspectorUI
Web Inspector: Remove Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js.orig
<https://webkit.org/b/231896>
Reviewed by BJ Burg.
- UserInterface/Controllers/WebInspectorExtensionController.js.orig: Remove.
- 5:51 PM Changeset in webkit [284421] by
-
- 5 edits in trunk/Source/WebCore
[macOS] Refactor CGDisplayStreamCaptureSource::createDisplayStream
https://bugs.webkit.org/show_bug.cgi?id=231920
<rdar://problem/84393654>
Reviewed by Jer Noble.
No new tests, no functional change.
- platform/mediastream/mac/CGDisplayStreamCaptureSource.cpp:
(WebCore::CGDisplayStreamCaptureSource::startDisplayStream): Don't pass the frame
available handler or capture queue to createDisplayStream.
(WebCore::CGDisplayStreamCaptureSource::frameAvailableHandler): Remove a blank line.
(WebCore::CGDisplayStreamCaptureSource::captureQueue): New accessor.
- platform/mediastream/mac/CGDisplayStreamCaptureSource.h:
- platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.h:
- platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.mm:
(WebCore::CGDisplayStreamScreenCaptureSource::createDisplayStream): Parameters removed.
- 5:49 PM Changeset in webkit [284420] by
-
- 3 edits in trunk/Source/WebCore
Remove "using namespace XPath;" from XPathGrammar.cpp
https://bugs.webkit.org/show_bug.cgi?id=231318
Reviewed by Chris Dumez.
I did this by editing XPathGrammar.y and re-running bison.
We have the output of bison checked in to our repo to not have bison as a build dependency of WebKit.
- xml/XPathGrammar.cpp:
(xpathyylex):
(xpathyyerror):
(yysyntax_error):
- xml/XPathGrammar.y:
- xml/XPathResult.cpp:
(WebCore::XPathResult::XPathResult):
- 5:48 PM Changeset in webkit [284419] by
-
- 14 edits1 add4 deletes in trunk/Tools
Unreviewed, reverting r284399.
Breaks commit message generation
Reverted changeset:
"[webkitperl] Stop using LoadAsModule.pm"
https://bugs.webkit.org/show_bug.cgi?id=231868
https://commits.webkit.org/r284399
- 5:44 PM Changeset in webkit [284418] by
-
- 11 edits2 deletes in trunk
Remove TCPServer
https://bugs.webkit.org/show_bug.cgi?id=231912
Reviewed by Chris Dumez.
Source/WTF:
- wtf/PlatformHave.h:
Tools:
It has been replaced by HTTPServer, which doesn't time out in its destructor when not everything is perfect,
and which does its logic on the main thread. It also doesn't use boringssl directly, so we can compile it on watchOS and tvOS.
- TestWebKitAPI/Sources.txt:
- TestWebKitAPI/TCPServer.cpp: Removed.
- TestWebKitAPI/TCPServer.h: Removed.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(testCertificate):
(testIdentity):
- TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm:
(TestWebKitAPI::hstsWebViewAndDelegate):
(TestWebKitAPI::hstsServer):
(TestWebKitAPI::TEST):
(TestWebKitAPI::hasRadar80550123): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerTCPServer.h:
(ServiceWorkerTCPServer::respondToRequests):
- TestWebKitAPI/cocoa/HTTPServer.h:
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::HTTPServer::testCertificate):
(TestWebKitAPI::HTTPServer::testPrivateKey):
- 5:35 PM Changeset in webkit [284417] by
-
- 2 edits in trunk/Tools
[Python-3] Invoke webkit-patch with Python 3 by default (Revert)
https://bugs.webkit.org/show_bug.cgi?id=231591
<rdar://problem/84153640>
Reverted to fix webkitbot.
- Scripts/webkit-patch:
- 5:14 PM Changeset in webkit [284416] by
-
- 1 copy in tags/Safari-613.1.5.1
Tag Safari-613.1.5.1.
- 5:14 PM Changeset in webkit [284415] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] inspector/css/modify-css-property.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231924.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 5:12 PM Changeset in webkit [284414] by
-
- 2 edits in trunk/LayoutTests
Regression(r283935 - r283938): [ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-multiple-times.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231918
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 5:07 PM Changeset in webkit [284413] by
-
- 9 edits in trunk
[WebAuthn] Obtain consent to create new credential when platform authenticator in excludedCredentials
https://bugs.webkit.org/show_bug.cgi?id=219813
<rdar://problem/72484635>
Currently, whenever the platform authenticator is within excludedCredentials during makeCredential we
always return NotAllowedError and merely flash a consent screen. This does not match the spec per Step 3.1
of makeCredential (https://w3c.github.io/webauthn/#sctn-op-make-cred). Instead, we should always obtain consent
and return a different error depending on consent was obtained.
Source/WebKit:
A fixme to add this was inadvertently removed in https://bugs.webkit.org/attachment.cgi?id=393180&action=prettypatch
Patch by John Pascoe <J Pascoe> on 2021-10-18
Reviewed by Brent Fulgham.
Added api test TestWebKitAPI.WebAuthenticationPanel.LADuplicateCredentialWithConsent
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:
(WebKit::wkWebAuthenticationPanelUpdate):
- UIProcess/WebAuthentication/WebAuthenticationFlags.h:
Tools:
This adds a test to confirm a different path is taken whenever consent is obtained.
Patch by John Pascoe <J Pascoe> on 2021-10-18
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(-[TestWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:]):
(TestWebKitAPI::TEST):
- 5:06 PM Changeset in webkit [284412] by
-
- 3 edits in branches/safari-612-branch/Source/JavaScriptCore
Cherry-pick r284369. rdar://problem/84394405
[JSC] Use USE(LARGE_TYPED_ARRAY)
https://bugs.webkit.org/show_bug.cgi?id=231885
Reviewed by Sam Weinig.
Fix USE(ADDRESS64) with USE(LARGE_TYPED_ARRAY). USE(ADDRESS64) is not correct (it should be CPU(ADDRESS64)).
It is coverted by JSTests/stress/typed-array-large-eventually-oob.js.
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:06 PM Changeset in webkit [284411] by
-
- 6 edits1 copy in branches/safari-612-branch/Source
Apply patch. rdar://problem/84351866
- 4:54 PM Changeset in webkit [284410] by
-
- 2 edits in trunk/LayoutTests
[ Windows EWS ] http/wpt/webxr/xrHandInput_gc.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=231921.
Unreviewed test gardening.
- platform/win/TestExpectations:
- 4:53 PM Changeset in webkit [284409] by
-
- 3 edits in trunk/Tools
[ iOS15 ] TestWebKitAPI.WebKit.HTTPSProxy is a flaky, but frequent, timeout
https://bugs.webkit.org/show_bug.cgi?id=231396
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-18
Reviewed by Chris Dumez.
Something was happening that was very timing dependent that was causing this test to time out.
I think it was because the proxy framer was receiving an incomplete HTTP request.
To fix this, I look at the bytes received and if it wasn't a complete HTTP request, wait for the rest of the message.
I was unable to reproduce the timeout after this change and only rarely reproduced the timeout without this change.
- TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::proxyDefinition):
- 4:50 PM Changeset in webkit [284408] by
-
- 2 edits in branches/safari-613.1.5-branch/Source/WebKit
Cherry-pick r284209. rdar://problem/84218823
[macOS] Crash on WP startup
https://bugs.webkit.org/show_bug.cgi?id=231773
<rdar://84218823>
Unreviewed partial revert of https://trac.webkit.org/r283375.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284209 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:41 PM Changeset in webkit [284407] by
-
- 8 edits in branches/safari-613.1.5-branch/Source
Versioning.
WebKit-7613.1.5.1
- 3:21 PM Changeset in webkit [284406] by
-
- 14 edits in trunk
Add a callback to know when the service worker loads via -[WKWebView _loadServiceWorker:]
https://bugs.webkit.org/show_bug.cgi?id=231771
<rdar://problem/84274364>
Reviewed by Alex Christensen.
Source/WebCore:
- loader/FrameLoaderClient.h:
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::willSettleRegistrationPromise):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
- workers/service/ServiceWorkerContainer.h:
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _loadServiceWorker:completionHandler:]):
(-[WKWebView _loadServiceWorker:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didFinishServiceWorkerPageRegistration):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
(WebKit::WebPageProxy::loadServiceWorker):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::didFinishServiceWorkerPageRegistration):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 3:21 PM Changeset in webkit [284405] by
-
- 4 edits in trunk/Tools
[webkitperl] Fix webkitperl on Windows
https://bugs.webkit.org/show_bug.cgi?id=231374
Patch by Basuke Suzuki <basuke@mac.com> on 2021-10-18
Reviewed by Fujii Hironori.
Set WEBKIT_LIBRARIES environment variable before run if it is not defined.
Shell-style environment variables settings are not available on Windows. Replace them by setting
%ENV directly.
- Scripts/test-webkitperl:
- Scripts/webkitperl/auto-version_unittest/autoVersionTests.pl:
- Scripts/webkitperl/auto-version_unittest/versionStampTests.pl:
- 3:20 PM Changeset in webkit [284404] by
-
- 39 edits3 adds1 delete in trunk/LayoutTests/imported/w3c
Resync web-platform-tests/tools from upstream
https://bugs.webkit.org/show_bug.cgi?id=231907
Reviewed by Alex Christensen.
Resync web-platform-tests/tools from upstream 4250f160c0cb9ef2caba63.
- web-platform-tests/tools/*: Updated.
- 2:45 PM Changeset in webkit [284403] by
-
- 83 edits8 copies40 adds in branches/safari-612-branch
Apply patch. rdar://problem/84351845
- 2:42 PM Changeset in webkit [284402] by
-
- 10 edits10 adds in trunk/LayoutTests/imported/w3c
Resync web-platform-tests/common from upstream
https://bugs.webkit.org/show_bug.cgi?id=231908
Reviewed by Alex Christensen.
Resync web-platform-tests/common from upstream 4250f160c0cb9ef2caba63.
- web-platform-tests/common/*: Updated.
- 2:38 PM Changeset in webkit [284401] by
-
- 91 edits4 adds in branches/safari-612-branch
Cherry-pick r284230. rdar://problem/84351866
Allow WASM to use up to 4GB
https://bugs.webkit.org/show_bug.cgi?id=229353
rdar://81603447
Reviewed by Yusuke Suzuki.
JSTests:
The big-wasm-memory/wasm-memory-requested... tests used to simply expect an OOM at 2GB.
They now expect success at 4GB, and failure at 4GB+1.
The exceptions they expect are now more specific, as previously there was a rounding issue that was causing the specific exceptions not to be thrown (resulting in the generic OOM exception later in the code).
Finally I made them only run on 64-bit platforms since we don't support typed arrays >=2GB on 32-bits, and I made them only run in one configuration since they can take a little bit of time.
I also added a few new tests, specifically checking our handling of large typed arrays, and especially of indices above INT32_MAX.
- stress/big-wasm-memory-grow-no-max.js: (test):
- stress/big-wasm-memory-grow.js: (test):
- stress/big-wasm-memory.js: (test):
- stress/typed-array-always-large.js: Added. (getArrayLength): (getByVal): (putByVal): (test):
- stress/typed-array-eventually-large.js: Added. (getArrayLength): (getByVal): (putByVal): (test):
- stress/typed-array-large-eventually-oob.js: Added. (getArrayLength): (getByVal): (putByVal): (test):
- wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
- wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:
Source/JavaScriptCore:
While increasing MAX_ARRAY_BUFFER_SIZE to 4GB was easy, it was not remotely the only thing required to get this to work:
- 4GB is not representable in a uint32_t, so I changed all length of ArrayBuffer/TypedArray/etc.. to being UCPURegister.
- This also required changing NewTypedArray in all of LLInt/Baseline/DFG/FTL to accept a non-int32 size.
In order to avoid performance regressions, I had to add speculation in the DFG/FTL, which now have two versions of NewTypedArray (one that takes an Int32 and one that takes a StrictInt52)
- Similarly, GetArrayLength and GetTypedArrayByteOffset now can either return an Int32 or a larger number.
I also had to split them in the DFG/FTL, see GetTypedArrayLengthAsInt52 and GetTypedArrayByteOffsetAsInt52 for examples
- In turns, I had to add CheckInBoundsInt52 since CheckInBounds could not accept the result of GetTypedArrayLengthAsInt52
- I modified the runtime functions for GetByVal/PutByVal/DataViewGet/DataViewSet/AtomicsXXX to accept non-Int32 indices, since for {Int8/UInt8/UInt8Clamped}Array, a maximum size of 4GB implies indices > 2B.
- I added a "mayBeLargeTypedArray" bit to ArrayProfile/UnlinkedArrayProfile/DFG::ArrayMode to track whether such a non-Int32 index was seen to allow proper speculation and specialization of fast paths in the DFG/FTL.
I then updated the runtime functions used by the slow paths to correctly update it.
Unfortunately I ran out of time to add all the speculations/update all the fast paths.
So the following will have to wait for a follow-up patch:
- Accepting large indices in the fast path of GetByVal in the LLInt
- Accepting large indices in the fast paths generated by AccessCase/PolymorphicAccess
- Accepting large indices in the fast paths generated by the DFG/FTL for each of GetByVal/PutByVal/DataViewGet/DataViewSet/AtomicsXXX
The current patch is functional, it will just have dreadful performance if trying to use indices >2B in a {Int8/UInt8/UInt8Clamped}Array.
Other minor changes in this patch:
- Fixed an undefined behavior in ArrayBuffer::createInternal where memcpy could be called on nullptr (the spec explicitly bans this even when length is 0)
- Replaced some repetitive and error-prone bounds checking by calls to WTF::isSumSmallerThanOrEqual, which is clearer, shorter, and reuse CheckedArithmetic facilities to avoid overflow issues.
- Fixed a variety of obsolete comments
- Added support for branch64(RelationalCondition cond, RegisterID left, Imm64 right)
(there was already support for the same but with TrustedImm64)
- Made various AbstractMacroAssembler function constexpr as part of the previous point
- assembler/AbstractMacroAssembler.cpp:
- assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr): (JSC::AbstractMacroAssembler::TrustedImmPtr::asIntptr): (JSC::AbstractMacroAssembler::TrustedImmPtr::asPtr): (JSC::AbstractMacroAssembler::ImmPtr::ImmPtr): (JSC::AbstractMacroAssembler::ImmPtr::asTrustedImmPtr): (JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32): (JSC::AbstractMacroAssembler::Imm32::Imm32): (JSC::AbstractMacroAssembler::Imm32::asTrustedImm32 const): (JSC::AbstractMacroAssembler::TrustedImm64::TrustedImm64): (JSC::AbstractMacroAssembler::Imm64::Imm64): (JSC::AbstractMacroAssembler::Imm64::asTrustedImm64 const): (JSC::AbstractMacroAssembler::canBlind): (JSC::AbstractMacroAssembler::shouldBlindForSpecificArch):
- assembler/MacroAssembler.h: (JSC::MacroAssembler::branch64):
- assembler/MacroAssemblerARM64.h: (JSC::MacroAssemblerARM64::shouldBlindForSpecificArch): (JSC::MacroAssemblerARM64::branch64):
- assembler/MacroAssemblerARM64E.h: (JSC::MacroAssemblerARM64E::untagArrayPtrLength64): (JSC::MacroAssemblerARM64E::untagArrayPtrLength32): Deleted.
- assembler/MacroAssemblerX86Common.h: (JSC::MacroAssemblerX86Common::canBlind): (JSC::MacroAssemblerX86Common::shouldBlindForSpecificArch):
- bytecode/AccessCase.cpp: (JSC::AccessCase::needsScratchFPR const): (JSC::AccessCase::generateWithGuard):
- bytecode/ArrayProfile.h: (JSC::ArrayProfile::setMayBeLargeTypedArray): (JSC::ArrayProfile::mayBeLargeTypedArray const): (JSC::UnlinkedArrayProfile::UnlinkedArrayProfile): (JSC::UnlinkedArrayProfile::update):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGArrayMode.cpp: (JSC::DFG::ArrayMode::refine const):
- dfg/DFGArrayMode.h: (JSC::DFG::ArrayMode::ArrayMode): (JSC::DFG::ArrayMode::mayBeLargeTypedArray const): (JSC::DFG::ArrayMode::withType const): (JSC::DFG::ArrayMode::withSpeculation const): (JSC::DFG::ArrayMode::withConversion const): (JSC::DFG::ArrayMode::withTypeAndConversion const): (JSC::DFG::ArrayMode::withArrayClassAndSpeculationAndMayBeLargeTypedArray const): (JSC::DFG::ArrayMode::speculationFromProfile): (JSC::DFG::ArrayMode::withSpeculationFromProfile const): (JSC::DFG::ArrayMode::withProfile const): (JSC::DFG::ArrayMode::operator== const): (JSC::DFG::ArrayMode::withArrayClass const): Deleted.
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGCommon.h: (JSC::DFG::enableInt52):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): (JSC::DFG::FixupPhase::convertToGetArrayLength): (JSC::DFG::FixupPhase::prependGetArrayLength): Deleted.
- dfg/DFGGenerationInfo.h:
- dfg/DFGHeapLocation.cpp: (WTF::printInternal):
- dfg/DFGHeapLocation.h:
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- dfg/DFGNode.h: (JSC::DFG::Node::hasStorageChild const): (JSC::DFG::Node::storageChildIndex): (JSC::DFG::Node::hasArrayMode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp: (JSC::DFG::putByVal): (JSC::DFG::newTypedArrayWithSize): (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSSALoweringPhase.cpp: (JSC::DFG::SSALoweringPhase::handleNode): (JSC::DFG::SSALoweringPhase::lowerBoundsCheck):
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds): (JSC::DFG::SpeculativeJIT::emitTypedArrayBoundsCheck): (JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray): (JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray): (JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray): (JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray): (JSC::DFG::SpeculativeJIT::cageTypedArrayStorage): (JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset): (JSC::DFG::SpeculativeJIT::compileGetArrayLength): (JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize): (JSC::DFG::SpeculativeJIT::emitNewTypedArrayWithSizeInRegister): (JSC::DFG::SpeculativeJIT::compileNewTypedArray):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compileGetByVal): (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithInt52Size): (JSC::DFG::SpeculativeJIT::compileGetTypedArrayLengthAsInt52): (JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffsetAsInt52): (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGTypeCheckHoistingPhase.cpp: (JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks): (JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGValidate.cpp:
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::validateAIState): (JSC::FTL::DFG::LowerDFGToB3::compileNode): (JSC::FTL::DFG::LowerDFGToB3::emitGetTypedArrayByteOffsetExceptSettingResult): (JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset): (JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffsetAsInt52): (JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength): (JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayLengthAsInt52): (JSC::FTL::DFG::LowerDFGToB3::compileCheckInBoundsInt52): (JSC::FTL::DFG::LowerDFGToB3::compilePutByVal): (JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray): (JSC::FTL::DFG::LowerDFGToB3::emitNewTypedArrayWithSize): (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOutput.h: (JSC::FTL::Output::load64NonNegative):
- jit/IntrinsicEmitter.cpp: (JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):
- jit/JITOperations.cpp: (JSC::putByVal): (JSC::getByVal):
- llint/LLIntOfflineAsmConfig.h:
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::getByVal): (JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/ArrayBuffer.cpp: (JSC::SharedArrayBufferContents::SharedArrayBufferContents): (JSC::ArrayBufferContents::ArrayBufferContents): (JSC::ArrayBufferContents::tryAllocate): (JSC::ArrayBuffer::create): (JSC::ArrayBuffer::createAdopted): (JSC::ArrayBuffer::createFromBytes): (JSC::ArrayBuffer::tryCreate): (JSC::ArrayBuffer::createUninitialized): (JSC::ArrayBuffer::tryCreateUninitialized): (JSC::ArrayBuffer::createInternal): (JSC::ArrayBuffer::clampValue): (JSC::ArrayBuffer::clampIndex const): (JSC::ArrayBuffer::sliceWithClampedIndex const):
- runtime/ArrayBuffer.h: (JSC::ArrayBufferContents::sizeInBytes const): (JSC::ArrayBuffer::byteLength const): (JSC::ArrayBuffer::gcSizeEstimateInBytes const):
- runtime/ArrayBufferView.cpp: (JSC::ArrayBufferView::ArrayBufferView):
- runtime/ArrayBufferView.h: (JSC::ArrayBufferView::byteOffset const): (JSC::ArrayBufferView::byteLength const): (JSC::ArrayBufferView::verifyByteOffsetAlignment): (JSC::ArrayBufferView::verifySubRangeLength): (JSC::ArrayBufferView::clampOffsetAndNumElements): (JSC::ArrayBufferView::setImpl): (JSC::ArrayBufferView::setRangeImpl): (JSC::ArrayBufferView::getRangeImpl): (JSC::ArrayBufferView::zeroRangeImpl): (JSC::ArrayBufferView::calculateOffsetAndLength): Deleted.
- runtime/AtomicsObject.cpp:
- runtime/DataView.cpp: (JSC::DataView::DataView): (JSC::DataView::create):
- runtime/DataView.h:
- runtime/GenericTypedArrayView.h:
- runtime/GenericTypedArrayViewInlines.h: (JSC::GenericTypedArrayView<Adaptor>::GenericTypedArrayView): (JSC::GenericTypedArrayView<Adaptor>::create): (JSC::GenericTypedArrayView<Adaptor>::tryCreate): (JSC::GenericTypedArrayView<Adaptor>::createUninitialized): (JSC::GenericTypedArrayView<Adaptor>::tryCreateUninitialized): (JSC::GenericTypedArrayView<Adaptor>::subarray const): Deleted.
- runtime/JSArrayBufferView.cpp: (JSC::JSArrayBufferView::ConstructionContext::ConstructionContext): (JSC::JSArrayBufferView::byteLength const): (JSC::JSArrayBufferView::slowDownAndWasteMemory): (JSC::JSArrayBufferView::possiblySharedImpl):
- runtime/JSArrayBufferView.h: (JSC::JSArrayBufferView::sizeOf): (JSC::JSArrayBufferView::ConstructionContext::length const): (JSC::JSArrayBufferView::length const):
- runtime/JSArrayBufferViewInlines.h: (JSC::JSArrayBufferView::byteOffsetImpl): (JSC::JSArrayBufferView::byteOffset): (JSC::JSArrayBufferView::byteOffsetConcurrently):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h: (JSC::JSValue::toIndex const): (JSC::JSValue::toTypedArrayIndex const):
- runtime/JSDataView.cpp: (JSC::JSDataView::create): (JSC::JSDataView::createUninitialized): (JSC::JSDataView::set): (JSC::JSDataView::setIndex):
- runtime/JSDataView.h:
- runtime/JSDataViewPrototype.cpp: (JSC::getData): (JSC::setData):
- runtime/JSGenericTypedArrayView.h:
- runtime/JSGenericTypedArrayViewConstructorInlines.h: (JSC::constructGenericTypedArrayViewWithArguments): (JSC::constructGenericTypedArrayViewImpl):
- runtime/JSGenericTypedArrayViewInlines.h: (JSC::JSGenericTypedArrayView<Adaptor>::create): (JSC::JSGenericTypedArrayView<Adaptor>::createWithFastVector): (JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized): (JSC::JSGenericTypedArrayView<Adaptor>::validateRange): (JSC::JSGenericTypedArrayView<Adaptor>::setWithSpecificType): (JSC::JSGenericTypedArrayView<Adaptor>::set):
- runtime/JSObject.h: (JSC::JSObject::putByIndexInline): (JSC::JSObject::tryGetIndexQuickly const): (JSC::JSObject::trySetIndexQuickly): (JSC::JSObject::canSetIndexQuickly): Deleted.
- runtime/JSObjectInlines.h: (JSC::JSObject::getIndexQuicklyForTypedArray const): (JSC::JSObject::setIndexQuicklyForArrayStorageIndexingType): (JSC::JSObject::trySetIndexQuicklyForTypedArray): (JSC::JSObject::canSetIndexQuicklyForTypedArray const): Deleted.
- runtime/Operations.h: (JSC::getByValWithIndex):
- wasm/WasmPageCount.h:
Source/WebCore:
Some parts of WebCore use TypedArrays, and would not build after I made the length() function on typed arrays return UCPURegister instead of uint32_t.
Most fixes were trivial, the only exception is SerializedScriptValue.cpp, where I had to increment the version number, as ArrayBuffer (and ArrayBufferViews) now write/read their length in a 64-bit field (and same for the byteOffset of ArrayBufferView).
I also had to add a test in PixelBuffer.cpp that the size of the ArrayBuffer it will try to allocate is < INT32_MAX.
Otherwise, the test LayoutTests/fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow.html which checks that very large images are properly rejected without crashing, would timeout.
No new tests, as the code is already extensively covered by existing tests, and I implemented no new features.
- Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::copyFromChannel): (WebCore::AudioBuffer::copyToChannel):
- Modules/webaudio/RealtimeAnalyser.cpp: (WebCore::RealtimeAnalyser::getByteFrequencyData): (WebCore::RealtimeAnalyser::getFloatTimeDomainData): (WebCore::RealtimeAnalyser::getByteTimeDomainData):
- bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpArrayBufferView): (WebCore::CloneSerializer::dumpImageBitmap): (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readArrayBufferImpl): (WebCore::CloneDeserializer::readArrayBuffer): (WebCore::CloneDeserializer::readArrayBufferViewImpl): (WebCore::CloneDeserializer::readArrayBufferView):
- bindings/js/SerializedScriptValue.h: (WebCore::SerializedScriptValue::encode const): (WebCore::SerializedScriptValue::decode):
- fileapi/NetworkSendQueue.cpp: (WebCore::NetworkSendQueue::enqueue):
- platform/graphics/PixelBuffer.cpp: (WebCore::PixelBuffer::tryCreate):
- platform/graphics/iso/ISOBox.h:
Source/WTF:
Made some of CheckedArithmetic constexpr, and added isSumSmallerThanOrEqual since it is a commonly used test in ArrayBuffer and easy to get wrong in terms of overflow.
- wtf/CheckedArithmetic.h: (WTF::isInBounds): (WTF::convertSafely): (WTF::isSumSmallerThanOrEqual):
LayoutTests:
Rebaselined three following tests as different or fewer error messages appear on the console.
Also changed currentVersion in serialized-script-value.html from 9 to 10.
- fast/canvas/canvas-getImageData-invalid-result-buffer-crash-expected.txt:
- fast/storage/serialized-script-value.html:
- webaudio/OfflineAudioContext-bad-buffer-crash-expected.txt:
- webaudio/OfflineAudioContext/bad-buffer-length-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:28 PM Changeset in webkit [284400] by
-
- 13 edits in branches/safari-612-branch
Apply patch. rdar://problem/84313358
- 2:17 PM Changeset in webkit [284399] by
-
- 14 edits2 copies3 adds1 delete in trunk/Tools
[webkitperl] Stop using LoadAsModule.pm
https://bugs.webkit.org/show_bug.cgi?id=231868
Reviewed by Jonathan Bedard.
This module load a script file as module with a bit tricky way. It prevents the proper
usage of package after all. The purpose of this module is to test routines defined in the
script. It just be wrong with such way. If you have something to test, it should be separated
as a module and be imported to the script. Then unit test can load the module and can test
without any sort of trouble.
- Scripts/filter-build-webkit:
(setOutputFormatOption):
(shouldShowSubsequentLine): Moved to webkitperl/build/output.pm.
(shouldIgnoreLine): Ditto.
- Scripts/prepare-ChangeLog:
(generateFunctionLists):
(fetchBugXMLData):
(openChangeLogs):
(method_decl_to_selector):
(diffCommand):
(statusCommand):
(propertyChangeDescription):
(normalizeLineEndings):
(actuallyGenerateFunctionLists): Moved to webkitperl/changelog.
(computeModifiedFunctions): Ditto.
(fetchBugDescriptionFromBugXMLData): Ditto.
(fetchRadarURLFromBugXMLData): Ditto.
(get_function_line_ranges): Ditto.
(get_function_line_ranges_for_cpp): Ditto.
(delete_namespaces_from_ranges_for_cpp): Ditto.
(is_function_in_namespace): Ditto.
(get_function_line_ranges_for_java): Ditto.
(get_function_line_ranges_for_javascript): Ditto.
(get_function_line_ranges_for_perl): Ditto.
(get_function_line_ranges_for_python): Ditto.
(get_selector_line_ranges_for_css): Ditto.
(get_function_line_ranges_for_swift): Ditto.
(parseSwiftFunctionArgs): Ditto.
(attributeCommand): Ditto.
(extractLineRangeAfterChange): Ditto.
(extractLineRangeBeforeChange): Ditto.
(decodeEntities): Ditto.
- Scripts/run-leaks:
(main):
(removeMatchingRecords):
(runLeaks): Moved to webkitperl/leaks.pm.
(parseLeaksOutput): Ditto.
(reportError): Deleted. Use Carp::croak instead.
- Scripts/webkitdirs.pm:
(determineBaseProductDir):
(determineCurrentSVNRevision):
(chdirWebKit):
(determineSourceDir): Moved to webkitperl/dirs.pm.
(setSourceDir): Ditto.
(sourceDir): Ditto.
- Scripts/webkitperl/LoadAsModule.pm: Removed.
- Scripts/webkitperl/build/output.pm: Extracted from Tools/Scripts/filter-build-webkit.
(shouldShowSubsequentLine):
(shouldIgnoreLine):
- Scripts/webkitperl/changelog.pm: Extracted from Tools/Scripts/prepare-ChangeLog.
(actuallyGenerateFunctionLists):
(extractLineRangeAfterChange):
(extractLineRangeBeforeChange):
(attributeCommand):
(fetchBugDescriptionFromBugXMLData):
(fetchRadarURLFromBugXMLData):
(computeModifiedFunctions):
(get_function_line_ranges):
(get_function_line_ranges_for_cpp):
(delete_namespaces_from_ranges_for_cpp):
(is_function_in_namespace):
(get_function_line_ranges_for_java):
(get_function_line_ranges_for_javascript):
(get_function_line_ranges_for_perl):
(get_function_line_ranges_for_python):
(get_selector_line_ranges_for_css):
(get_function_line_ranges_for_swift):
(parseSwiftFunctionArgs):
(decodeEntities):
- Scripts/webkitperl/dirs.pm: Extracted from Tools/Scripts/webkitdirs.
(sourceDir):
(setSourceDir):
(determineSourceDir):
- Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl:
- Scripts/webkitperl/leaks.pm: Copied from Tools/Scripts/run-leaks.
(runLeaks):
(parseLeaksOutput):
- Scripts/webkitperl/prepare-ChangeLog_unittest/extractLineRangeBeforeAndAfterChange.pl:
- Scripts/webkitperl/prepare-ChangeLog_unittest/fetchRadarURLFromBugXMLData.pl:
- Scripts/webkitperl/prepare-ChangeLog_unittest/filenameWithParentheses.pl:
- Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl:
- Scripts/webkitperl/prepare-ChangeLog_unittest/parser_unittests.pl:
(convertAbsolutePathToRelativeUnixPath):
- Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v1.0.pl:
- Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v2.0-new.pl:
- Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v2.0-old.pl:
- 1:51 PM Changeset in webkit [284398] by
-
- 4 edits in trunk/Tools
[run-api-tests] Use temporary symlink when listing tests
https://bugs.webkit.org/show_bug.cgi?id=230560
Reviewed by Dewei Zhu.
- Scripts/webkitpy/api_tests/manager.py:
(Manager._collect_tests): Copy binary when listing tests to make debuging easier.
- Scripts/webkitpy/common/system/filesystem.py:
(FileSystem.copyfile): Return copyfile result.
(FileSystem.copymode): Invoke shutil.copymode.
- Scripts/webkitpy/common/system/filesystem_mock.py:
(MockFileSystem.copymode):
- 1:50 PM Changeset in webkit [284397] by
-
- 4 edits in trunk
[css-flexbox] Do not clamp flex base size with {min|max}-{height|width}
https://bugs.webkit.org/show_bug.cgi?id=225590
<rdar://problem/78100329>
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
When computing flex base size we should not clamp it with neither min-{height|width}
nor max-{height|width}. That would be done later and will be called the hypothetical
main size.
For most of the cases we were already doing it, however there are some particular cases
in which we have to call the generic layout code which does clamp the sizes using min
and max sizes. In order to make those code paths work, we reset the min|max values to
their initial ones (so they effectively become inactive) and then we set the original
values back after computing the base size.
This is a reland of r279271 which was pretty similar but caused a visual regression in
GMail. After r284359 this is no longer a problem of this patch.
This fixes 3 WPT flexbox tests.
- rendering/RenderFlexibleBox.cpp:
(WebCore::ScopedUnboundedBoxWithFlexBasisAsChildMainSize::ScopedUnboundedBoxWithFlexBasisAsChildMainSize):
renamed from ScopedFlexBasisAsChildMainSize. Resets min|max-size to their initial values.
(WebCore::ScopedUnboundedBoxWithFlexBasisAsChildMainSize::~ScopedUnboundedBoxWithFlexBasisAsChildMainSize):
ditto. Restores min|max-size original values.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild):
(WebCore::ScopedFlexBasisAsChildMainSize::ScopedFlexBasisAsChildMainSize): Deleted.
(WebCore::ScopedFlexBasisAsChildMainSize::~ScopedFlexBasisAsChildMainSize): Deleted.
LayoutTests:
- TestExpectations: Unskipped 3 tests that are now passing.
- 1:41 PM Changeset in webkit [284396] by
-
- 2 edits in trunk/Source/JavaScriptCore
Don't load metadata base pointer in EXTRA_CTI_THUNKS
https://bugs.webkit.org/show_bug.cgi?id=231850
Reviewed by Yusuke Suzuki.
We were loading the metadata table base pointer dynamically. But in
unlinked baseline JIT, it's already pinned in a register. Let's just
use the register instead of recomputing what's already there. This is
a small speedup in throughput of unlinked baseline JIT code for scope
operations.
- jit/JITPropertyAccess.cpp:
(JSC::JIT::generateOpResolveScopeThunk):
(JSC::JIT::generateOpGetFromScopeThunk):
- 1:34 PM Changeset in webkit [284395] by
-
- 2 edits in trunk/Tools
Set isolated tree mode to secondary AX thread in LayoutTests.
https://bugs.webkit.org/show_bug.cgi?id=231763
Reviewed by Chris Fleizach.
Isolated tree mode was enabled for LayoutTests but set to run on the
main thread. Change it to run on the AX thread.
- WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:
(WTR::AccessibilityController::updateIsolatedTreeMode):
- 1:25 PM Changeset in webkit [284394] by
-
- 2 edits in branches/safari-613.1.6-branch/Source/WebKit
Cherry-pick r284382. rdar://problem/84384768
Web process occasionally crashes under
RemoteDisplayListRecorderProxy::recordRestore()
https://bugs.webkit.org/show_bug.cgi?id=231900
Reviewed by Tim Horton.
It's apparently possible for a RemoteImageBufferProxy in the web process to outlive RemoteRenderingBackendProxy.
Before the IPC stream refactoring in r284079, we were robust against this possibility because
RemoteImageBufferProxy checked for a null rendering backend incanAppendItemOfType
and returnedfalse
, which
prevented us from trying to call into the rendering backend. However, I accidentally omitted this null check
in the new RemoteDisplayListRecorderProxy, which currently assumes thatm_renderingBackend
is always non-null
when sending any IPC stream messages.
Fix this crash by restoring the null check for the weak
m_renderingBackend
pointer. I only observed this crash
once locally and, unfortunately, haven't been able to come up with a test case that consistently reproduces it.
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h: (WebKit::RemoteDisplayListRecorderProxy::send):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:08 PM Changeset in webkit [284393] by
-
- 21 edits1 add in branches/safari-612-branch
Cherry-pick r283238. rdar://problem/83955650
MediaStream canvas.captureStream() fails for WebGL
https://bugs.webkit.org/show_bug.cgi?id=230613
<rdar://82307293>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-29
Reviewed by Youenn Fablet.
.:
Add a manual test to interact with media stream
captureStream() behavior until the implementation is
testable.
- ManualTests/mediastream/mediastream-canvas-to-video.html: Added.
Source/WebCore:
Remove previous incorrect behavior of turning on "preservesDrawingBuffer"
and sampling the drawing buffer. The drawing buffer is not what should
ever be touched, rather it's the display buffer that should be available.
Implement sampling of WebGL display buffer for
media stream capture. The upon sampling, obtain a shared
reference to the
display buffer, passes it to media sample consuming process and mark
the WebGL context display buffer non-eligible for recycling as
new drawing buffer.
Currently the implementation is displayed correctly for
WebGL contents that is premultiplied. Unpremultiplied
content is fixed in the associated bugs.
Note: there are bugs preventing robust use of the API,
listed in the associated bugs. As such, testing is not expanded
in this bug.
Tested by
ManualTests/mediastream/mediastream-canvas-to-video.html (added)
https://webrtc.github.io/samples/src/content/capture/canvas-video/
(Refresh the page or hide the window until MediaPlayer initialization
flakyness lets rendering happen)
The test LayoutTests/fast/mediastream/captureStream/canvas3d.html
cannot yet be used to test the implementation as the rest of the
captureStream() and playback implementation is so flaky.
- Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):
- html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::toMediaSample):
- html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::paintCompositedResultsToMediaSample):
- html/canvas/WebGLRenderingContextBase.h: (WebCore::WebGLRenderingContextBase::isPreservingDrawingBuffer const):
- platform/graphics/GraphicsContextGL.cpp:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/RemoteGraphicsContextGLProxyBase.cpp: (WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample):
- platform/graphics/RemoteGraphicsContextGLProxyBase.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: (WebCore::MediaSampleAVFObjC::createImageSample):
- platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.cpp: (WebCore::GraphicsContextGLIOSurfaceSwapChain::present):
- platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.h:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample):
- platform/graphics/cocoa/RemoteGraphicsContextGLProxyBaseCocoa.mm: (WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample):
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: (WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
LayoutTests:
Add new expectations, a warning was removed.
CONSOLE MESSAGE: Turning drawing buffer preservation for the WebGL canvas being captured
- fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events-expected.txt:
- fast/mediastream/captureStream/canvas3d-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283238 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:59 PM Changeset in webkit [284392] by
-
- 14 edits2 adds1 delete in branches/safari-612-branch/Source
Apply patch. rdar://problem/84124701
- 12:59 PM Changeset in webkit [284391] by
-
- 12 edits in branches/safari-612-branch/Source
Apply patch. rdar://problem/84124706
- 12:33 PM Changeset in webkit [284390] by
-
- 32 edits3 copies4 adds in branches/safari-612-branch
Apply patch rdar://84349756
- 12:33 PM Changeset in webkit [284389] by
-
- 1 edit in branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/FileSystemStorageError.h
Apply patch rdar://84351861
- 12:29 PM Changeset in webkit [284388] by
-
- 4 edits in trunk
[ iOS15 Monterey ] TestWTF.WTF_URLExtras.URLExtras is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=231454
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-18
Reviewed by Chris Dumez.
Source/WTF:
- wtf/PlatformHave.h:
Tools:
The behavior of NSURL changed to disallow empty punycode in the host.
This is fine, but we need to update our test expectations.
- TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
- 11:55 AM Changeset in webkit [284387] by
-
- 7 edits4 adds in trunk
AX: Return AXEmptyGroup subrole for groups with no accessible content
https://bugs.webkit.org/show_bug.cgi?id=231528
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-18
Reviewed by Andres Gonzalez.
Source/WebCore:
Return a subrole of "AXEmptyGroup" for groups without any exposed
children. WebKit can calculate this more efficiently than AX clients,
so it makes more sense to do here.
Test: accessibility/mac/empty-group-computation.html
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):
LayoutTests:
- accessibility/mac/aria-divs-not-ignored-expected.txt:
- accessibility/mac/aria-divs-not-ignored.html:
Expect a subrole of AXEmptyGroup because this group has no content.
- accessibility/roles-exposed.html:
Changed some math testcases to use valid MathML markup. Otherwise
they'd be considered to have no children, and therefore be given
a subrole of AXEmptyGroup, which is not what this test is intended
to exercise.
- accessibility/mac/empty-group-computation-expected.txt: Added.
- accessibility/mac/empty-group-computation.html: Added.
- platform/mac/accessibility/lists-expected.txt: Added.
- platform/mac/accessibility/plugin-expected.txt: Added.
Add these Mac-specific expectations for these tests because this patch
only causes Mac to expose the AXEmptyGroup subrole.
- platform/mac/accessibility/svg-element-with-aria-role-expected.txt:
Add an expected subrole of AXEmptyGroup.
- 10:53 AM Changeset in webkit [284386] by
-
- 5 edits in trunk/LayoutTests
[ iOS 15 ] Rebaselining 4 fast tests.
https://bugs.webkit.org/show_bug.cgi?id=231901
Unreviewed test gardening.
- platform/ios/fast/backgrounds/border-radius-split-background-expected.txt:
- platform/ios/fast/backgrounds/border-radius-split-background-image-expected.txt:
- platform/ios/fast/borders/border-styles-split-expected.txt:
- platform/ios/fast/text/basic/015-expected.txt:
- 10:30 AM Changeset in webkit [284385] by
-
- 14 edits in branches/safari-613.1.6-branch/Source
Cherry-pick r284383. rdar://problem/84377173
Revert r284216
https://webkit.org/b/231523
<rdar://84342878>
Source/WebCore:
- CMakeLists.txt:
- Configurations/WebCore.xcconfig:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
There is an internal build configuration that doesn't know how to find libWebCoreStatic.a
and I have reason to believe that this is not necessary anyways.
- Configurations/adattributiond.xcconfig:
- Shared/API/Cocoa/WKMain.h:
- Shared/API/Cocoa/WKMain.mm: (WKAdAttributionDaemonMain):
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:29 AM Changeset in webkit [284384] by
-
- 1 edit4 deletes in trunk/LayoutTests
Unreviewed, reverting r284377.
Reverting because the expected.txt files are in the wrong
folders for rebaselining
Reverted changeset:
"[ iOS 15 ] Rebaselining 4 fast tests."
https://bugs.webkit.org/show_bug.cgi?id=231901
https://commits.webkit.org/r284377
- 10:25 AM Changeset in webkit [284383] by
-
- 14 edits in trunk/Source
Revert r284216
https://webkit.org/b/231523
<rdar://84342878>
Source/WebCore:
- CMakeLists.txt:
- Configurations/WebCore.xcconfig:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
There is an internal build configuration that doesn't know how to find libWebCoreStatic.a
and I have reason to believe that this is not necessary anyways.
- Configurations/adattributiond.xcconfig:
- Shared/API/Cocoa/WKMain.h:
- Shared/API/Cocoa/WKMain.mm:
(WKAdAttributionDaemonMain):
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- 10:19 AM Changeset in webkit [284382] by
-
- 2 edits in trunk/Source/WebKit
Web process occasionally crashes under
RemoteDisplayListRecorderProxy::recordRestore()
https://bugs.webkit.org/show_bug.cgi?id=231900
Reviewed by Tim Horton.
It's apparently possible for a RemoteImageBufferProxy in the web process to outlive RemoteRenderingBackendProxy.
Before the IPC stream refactoring in r284079, we were robust against this possibility because
RemoteImageBufferProxy checked for a null rendering backend incanAppendItemOfType
and returnedfalse
, which
prevented us from trying to call into the rendering backend. However, I accidentally omitted this null check
in the new RemoteDisplayListRecorderProxy, which currently assumes thatm_renderingBackend
is always non-null
when sending any IPC stream messages.
Fix this crash by restoring the null check for the weak
m_renderingBackend
pointer. I only observed this crash
once locally and, unfortunately, haven't been able to come up with a test case that consistently reproduces it.
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
(WebKit::RemoteDisplayListRecorderProxy::send):
- 10:18 AM Changeset in webkit [284381] by
-
- 1 copy in branches/safari-613.1.6-branch
New branch.
- 10:17 AM Changeset in webkit [284380] by
-
- 7 edits2 adds in trunk
background-clip:text doesn't paint correctly for inline box spanning multiple lines
https://bugs.webkit.org/show_bug.cgi?id=231891
Reviewed by Alan Bujtas.
Source/WebCore:
'background-clip: text' paints to a wrong position if the inline box spans multiple lines.
Test: fast/inline/inline-background-clip-text-multiline.html
- rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintFillLayer):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::paintFillLayer):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::getBackgroundRoundedRect const):
(WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance const):
No need to pass box size separately as it now always matches the passed in border rect.
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
The 'rect' parameter used to be either the border box rect of the box being painted or,
in the case of multiline inline box background image, the image strip being painted.
Make the 'rect' parameter to always be the border box and pass the background image strip
separately.
Use the background image strip only during background image painting.
- rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
LayoutTests:
- fast/inline/inline-background-clip-text-multiline-expected.html: Added.
- fast/inline/inline-background-clip-text-multiline.html: Added.
- 10:16 AM Changeset in webkit [284379] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7613.1.7
- 10:14 AM Changeset in webkit [284378] by
-
- 2 edits in trunk/Tools
[webkitscmpy] Allow repositories to define custom setup commands (Follow0-up)
https://bugs.webkit.org/show_bug.cgi?id=231345
<rdar://problem/83960249>
Unreviewed follow-up fix.
- Scripts/git-webkit: Do not specify OpenSource in Tools/Scripts path.
- 9:21 AM Changeset in webkit [284377] by
-
- 1 edit4 adds in trunk/LayoutTests
[ iOS 15 ] Rebaselining 4 fast tests.
https://bugs.webkit.org/show_bug.cgi?id=231901
Unreviewed test gardening.
- fast/backgrounds/border-radius-split-background-expected.txt: Added.
- fast/backgrounds/border-radius-split-background-image-expected.txt: Added.
- fast/borders/border-styles-split-expected.txt: Added.
- fast/text/basic/015-expected.txt: Added.
- 9:11 AM Changeset in webkit [284376] by
-
- 2 edits in trunk/Tools
Regression (r284304) : [ iOS 15 Release ] http/tests/privateClickMeasurement tests are failing
https://bugs.webkit.org/show_bug.cgi?id=231898
Use the SPI I made to keep the tests having old behavior of using the network process instead of the daemon.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):
- 9:07 AM Changeset in webkit [284375] by
-
- 30 edits2 copies5 adds in branches/safari-612-branch
Apply patch rdar://83954608
- 8:49 AM Changeset in webkit [284374] by
-
- 2 edits1 move4 deletes in trunk/LayoutTests
Cleanup css3/filters/backdrop/backdrop-filter-with-clip-path.html expected results
https://bugs.webkit.org/show_bug.cgi?id=217804
Reviewed by Alexey Proskuryakov.
Change the test to use invert() instead of blur() on backdrop-filter.
Test still fails on iOS; looks like some pixel snapping issues.
- css3/filters/backdrop/backdrop-filter-with-clip-path-expected.html: Renamed from LayoutTests/platform/ios/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.html.
- css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt: Removed.
- css3/filters/backdrop/backdrop-filter-with-clip-path.html:
- platform/glib/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt: Removed.
- platform/mac/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.png: Removed.
- platform/wpe/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt: Removed.
- 8:30 AM Changeset in webkit [284373] by
-
- 4 edits in trunk/Source
Bug 231882: WebKit::GPUConnectionToWebProcess::setTCCIdentity() leaks a tcc_identity_t
<https://webkit.org/b/231882>
<rdar://problem/84350854>
Reviewed by Chris Dumez.
Source/WebCore/PAL:
- pal/spi/cocoa/TCCSPI.h:
- Properly declare tcc_identity_t as an OSObject.
Source/WebKit:
- GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:
(WebKit::GPUConnectionToWebProcess::setTCCIdentity):
- Use WTF::adoptOSObject() to fix the leak.
- Expand the scope of !PLATFORM(MACCATALYST) since none of this code needs to run on the MacCatalyst platform.
- 7:57 AM Changeset in webkit [284372] by
-
- 2 edits in trunk
Add my github username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231893
Unreviewed.
- metadata/contributors.json:
- 7:57 AM Changeset in webkit [284371] by
-
- 23 edits3 adds in trunk/Source
Cocoa GraphicsContextGLOpenGL should not use WebGLLayer
https://bugs.webkit.org/show_bug.cgi?id=231804
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-18
Reviewed by Dean Jackson.
Source/WebCore:
Move the "swap chain", e.g. the display buffer IOSurface
from WebGLLayer to GraphicsContextGLOpenGL.
Instantiate WebGLLayer only in new class WebProcessGraphicsContextGLOpenGL,
which is used when WebGL is run in-process in WebContent process.
Simply set the CALayer.contents when new display buffer is ready and
call "setNeedsDisplay" directly.
No new tests, a refactor.
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/RemoteGraphicsContextGLProxyBase.h:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::isValid const):
(WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):
(WebCore::GraphicsContextGLOpenGL::readCompositedResults):
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample):
(WebCore::GraphicsContextGLOpenGL::create): Deleted.
(WebCore::GraphicsContextGLOpenGL::createForGPUProcess): Deleted.
GraphicsContextGLOpenGL for GPUProcess is now a new class, described
in WebKit ChangeLog.
- platform/graphics/cocoa/RemoteGraphicsContextGLProxyBaseCocoa.mm:
(WebCore::RemoteGraphicsContextGLProxyBase::platformInitialize):
(WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample):
(WebCore::RemoteGraphicsContextGLProxyBase::platformSwapChain): Deleted.
- platform/graphics/cocoa/WebGLLayer.h:
- platform/graphics/cocoa/WebGLLayer.mm:
(-[WebGLLayer initWithDevicePixelRatio:contentsOpaque:]):
(-[WebGLLayer display]):
(-[WebGLLayer swapChain]): Deleted.
(-[WebGLLayer prepareForDisplay]): Deleted.
(WebGLLayerSwapChain::present): Deleted.
CALayer.contents and setNeedsDisplay is called directly when
a graphics context has new display buffer.
- platform/graphics/cocoa/WebProcessGraphicsContextGLOpenGLCocoa.mm: Added.
(WebCore::GraphicsContextGLOpenGL::create):
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::isValid const):
Add a new function that checks if the constructor exited early.
Before, m_contextObj would be consulted but this is not protected
so it's not so useful. Also it wasn't very accurate, as some constructor
early exists ran after m_contextObj was set. Use m_texture to detect
fully constructed object for now.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::createForGPUProcess): Deleted.
GraphicsContextGLOpenGL for GPUProcess is now a new class, described
in WebKit ChangeLog. Remove the HostWindow arguments for
GraphicsContextGLOpenGL, it's not used.
Source/WebKit:
Implement changes so that GPU process side GraphicsContextGLOpenGL,
the new class GPUProcessGraphicsContextGL, does not use
WebGLLayer. Instead, the swap chain is in GraphicsContextGLOpenGL
and the GPUProcessGraphicsContextGL exposes a function to extract
the display buffer out to be sent to WebContent process.
- GPUProcess/graphics/GPUProcessGraphicsContextGL.h: Added.
Add a simpler class for GPUProcess side GraphicsContextGLOpenGL
instance, one that can get the display buffer from the instance.
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):
- GPUProcess/graphics/RemoteGraphicsContextGLWin.cpp:
(WebKit::RemoteGraphicsContextGLWin::platformWorkQueueInitialize):
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::~RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):
Move Cocoa implemenation to an Objective-C++ file.
- WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm: Added.
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):
Set the display buffer contents directly to the WebGLLayer after
prepare.
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
- WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.mm:
(WebKit::PlatformCALayerRemoteModelHosting::dumpAdditionalProperties):
Unified build fixes.
- 6:18 AM Changeset in webkit [284370] by
-
- 8 edits2 adds in trunk/Source
[GLIB] Simplify SleepDisabler by checking if we are under sandbox
https://bugs.webkit.org/show_bug.cgi?id=231670
Reviewed by Adrian Perez de Castro.
Source/WebCore/PAL:
Current implementation always tries to connect to ScreenSaver interface and if that fails tries with the portal
one. It's simpler to check if we are under sandbox and it avoids a connection that we know is always going to
fail.
- pal/system/glib/SleepDisablerGLib.cpp:
(PAL::SleepDisablerGLib::SleepDisablerGLib):
(PAL::SleepDisablerGLib::acquireInhibitor):
(PAL::SleepDisablerGLib::releaseInhibitor):
(PAL::SleepDisablerGLib::acquireInhibitorViaScreenSaverProxy): Deleted.
(PAL::SleepDisablerGLib::acquireInhibitorViaInhibitPortalProxy): Deleted.
(PAL::SleepDisablerGLib::releaseInhibitorViaScreenSaverProxy): Deleted.
(PAL::SleepDisablerGLib::releaseInhibitorViaInhibitPortalProxy): Deleted.
- pal/system/glib/SleepDisablerGLib.h:
Source/WebKit:
Move functions to check if running inside a sandbox to WTF.
- UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::isInsideDocker): Deleted.
(WebKit::isInsideFlatpak): Deleted.
(WebKit::isInsideSnap): Deleted.
Source/WTF:
Move function to check if running inside a sandbox and add shouldUsePortal() to check whether portal sandbox
should be used. WEBKIT_USE_PORTAL environment variable can be used to force the use of portals when not running
under the sandbox.
- wtf/PlatformGTK.cmake:
- wtf/PlatformWPE.cmake:
- wtf/glib/Sandbox.cpp: Added.
(WTF::isInsideFlatpak):
(WTF::isInsideDocker):
(WTF::isInsideSnap):
(WTF::shouldUsePortal):
- wtf/glib/Sandbox.h: Added.
- 6:17 AM Changeset in webkit [284369] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Use USE(LARGE_TYPED_ARRAY)
https://bugs.webkit.org/show_bug.cgi?id=231885
Reviewed by Sam Weinig.
Fix USE(ADDRESS64) with USE(LARGE_TYPED_ARRAY). USE(ADDRESS64) is not correct (it should be CPU(ADDRESS64)).
It is coverted by JSTests/stress/typed-array-large-eventually-oob.js.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- 6:07 AM Changeset in webkit [284368] by
-
- 21 edits in trunk
[GStreamer] fast/mediastream/video-rotation tests are failing due to missing TestController::takeViewPortSnapshot
https://bugs.webkit.org/show_bug.cgi?id=231059
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Add video orientation and mirroring support to the GStreamer mock video source, all the way
to the media player. The video sink had to be adapted, to catch tag events and trigger
orientation update in the player.
- platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkSetMediaPlayerPrivate):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::getVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoSizeAndOrientationFromCaps):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
(WebCore::MediaSampleGStreamer::createImageSample):
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
(WebCore::MediaSampleGStreamer::create):
(WebCore::MediaSampleGStreamer::createImageSample):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
Source/WebKit:
Implement setOrientationForMediaCapture for GStreamer ports. Because media capture runs in
the WebProcess for those ports, we need a new IPC message, sent from the UIProcess to the
WebProcess.
- UIProcess/API/C/WKPage.cpp:
(WKPageSetMockCameraOrientation):
(WKPageIsMockRealtimeMediaSourceCenterEnabled):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setOrientationForMediaCapture):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setOrientationForMediaCapture):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Implement takeViewPortSnapshot for WPE and GTK, the WebView snapshot is exported to PNG and
serialized as a data URL.
- WebKitTestRunner/TestController.cpp:
- WebKitTestRunner/gtk/TestControllerGtk.cpp:
(WTR::TestController::takeViewPortSnapshot):
- WebKitTestRunner/wpe/TestControllerWPE.cpp:
(WTR::TestController::takeViewPortSnapshot):
LayoutTests:
The video-rotation.html test was prone to flakyness in GStreamer ports, so a few changes were made:
- don't append canvas to the page, that can "poison" future viewport snapshots
- wait for a timeupdate before checking the first snapshot, that gives us some margin, so
the player might have repainted
- catch validation errors so they're not logged to the console, that would introduce result
diffs in case the first validation was not successful
- try at most 100 validations attempts. Ideally it would be nicer to rely on the
requestVideoFrameCallback API for this.
- fast/mediastream/video-rotation.html:
- platform/glib/TestExpectations:
- 5:43 AM Changeset in webkit [284367] by
-
- 10 edits1 add in trunk
[GTK][a11y] Add implementation of component interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=230257
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- SourcesGTK.txt:
- accessibility/atspi/AccessibilityAtspiEnums.h:
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):
- accessibility/atspi/AccessibilityObjectComponentAtspi.cpp: Added.
(WebCore::AccessibilityObjectAtspi::hitTest const):
(WebCore::AccessibilityObjectAtspi::elementRect const):
(WebCore::AccessibilityObjectAtspi::focus const):
(WebCore::AccessibilityObjectAtspi::opacity const):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::registerObject):
(WebCore::AccessibilityRootAtspi::serialize const):
(WebCore::AccessibilityRootAtspi::frameRect const):
- accessibility/atspi/AccessibilityRootAtspi.h:
- accessibility/atspi/xml/Component.xml:
Tools:
Add unit tests for component interface.
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(testComponentHitTest):
(testComponentScrollTo):
(beforeAll):
- 5:26 AM Changeset in webkit [284366] by
-
- 15 edits2 adds in trunk
Fix mouse selection on modal <dialog> text nodes
https://bugs.webkit.org/show_bug.cgi?id=231741
Reviewed by Antti Koivisto.
Tests:
- editing/selection/modal-dialog-select-paragraph.html (tests this bug)
- imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html (tests what
the canStartSelection check was supposed to fix)
The inert check in Node::canStartSelection() was too restrictive, which caused this bug to happen because
we set the root node as inert and then reset it for the modal <dialog> itself, causing the text in the
<dialog> to be unselectable. Instead, just mirror how -webkit-user-select: none; is implemented by
introducing RenderStyle::userSelectIncludingInert().
Source/WebCore:
- dom/Node.cpp:
(WebCore::computeEditabilityFromComputedStyle):
(WebCore::Node::canStartSelection const):
- dom/Position.cpp:
(WebCore::Position::nodeIsUserSelectNone):
(WebCore::Position::nodeIsUserSelectAll):
(WebCore::Position::isCandidate const):
(WebCore::Position::nodeIsInertOrUserSelectNone): Deleted.
- dom/Position.h:
- dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate const):
- page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
(WebCore::EventHandler::canMouseDownStartSelect):
(WebCore::EventHandler::selectCursor):
- page/Frame.cpp:
(WebCore::Frame::rangeForPoint):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::selectionColor const):
(WebCore::RenderElement::selectionBackgroundColor const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::collectSelectionGeometriesInternal):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::userSelectIncludingInert const):
Source/WebKit:
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::isSelectableTextNode const):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::selectionPositionInformation):
LayoutTests:
- editing/selection/modal-dialog-select-paragraph-expected.txt: Added.
- editing/selection/modal-dialog-select-paragraph.html: Added.
- 4:33 AM Changeset in webkit [284365] by
-
- 4 edits in trunk
[GLIB][GStreamer] test http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect.html is a flaky timeout since r278004
https://bugs.webkit.org/show_bug.cgi?id=229219
<rdar://problem/82059333>
Reviewed by Philippe Normand.
Source/WebCore:
Forward EOS from webaudio appsink to the main pipeline. For some reason, some intermediate
GstBin isn't forwarding the GST_MESSAGE_EOS emitted by the appsink added by webaudio, so
the code at MediaPlayerPrivateGStreamer::handleMessage() can't detect EOS properly and signal
it to the player and the HTMLMediaElement.
- platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad): Listen to the EOS signal of each created appsink and forward it to the main pipeline bus as GST_MESSAGE_EOS.
(WebCore::AudioSourceProviderGStreamer::handleRemovedDeinterleavePad): Remove the signal handler on pad destruction.
LayoutTests:
Give some more time to the frequency analyzer to detect activity.
- http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect.html:
- 3:47 AM Changeset in webkit [284364] by
-
- 4 edits in trunk
Remove AVOID_NATIVE_INT128_T
https://bugs.webkit.org/show_bug.cgi?id=231888
Reviewed by Mark Lam.
Source/WTF:
- wtf/Int128.h:
Tools:
We can test Int128 without AVOID_NATIVE_INT128_T.
- TestWebKitAPI/Tests/WTF/Int128.cpp:
(TestWebKitAPI::TestUnary):
(TestWebKitAPI::TestBinary):
(TestWebKitAPI::ToNative):
(TestWebKitAPI::FromNative):
(TestWebKitAPI::TestVsNative):
(TestWebKitAPI::TEST):
- 3:40 AM Changeset in webkit [284363] by
-
- 2 edits in trunk
Add my github username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231889
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-18
Reviewed by Manuel Rego Casasnovas.
- metadata/contributors.json:
- 3:23 AM Changeset in webkit [284362] by
-
- 2 edits in trunk
Add my github username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231887
Unreviewed.
Patch by Xan Lopez <Xan Lopez> on 2021-10-18
- metadata/contributors.json: add my github username.
- 3:16 AM Changeset in webkit [284361] by
-
- 44 edits in trunk
Implement parsing and animation support for offset-distance, offset-position, offset-anchor
https://bugs.webkit.org/show_bug.cgi?id=231491
Patch by Kiet Ho <Kiet Ho> on 2021-10-18
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
Updated relevant test expectations.
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- web-platform-tests/css/motion/animation/offset-anchor-composition-expected.txt:
- web-platform-tests/css/motion/animation/offset-anchor-interpolation-expected.txt:
- web-platform-tests/css/motion/animation/offset-distance-composition-expected.txt:
- web-platform-tests/css/motion/animation/offset-distance-interpolation-expected.txt:
- web-platform-tests/css/motion/animation/offset-position-composition-expected.txt:
- web-platform-tests/css/motion/animation/offset-position-interpolation-expected.txt:
- web-platform-tests/css/motion/animation/offset-position-interpolation.html: Fixed test to accept other length expressions as equivalent.
- web-platform-tests/css/motion/inheritance-expected.txt:
- web-platform-tests/css/motion/offset-supports-calc-expected.txt:
- web-platform-tests/css/motion/parsing/offset-anchor-computed-expected.txt:
- web-platform-tests/css/motion/parsing/offset-anchor-parsing-valid-expected.txt:
- web-platform-tests/css/motion/parsing/offset-anchor-parsing-valid.html: Fixed test to accept "center" as an alternative to "center center", "calc(20% + 10px) center" as an alternative to "calc(10px + 20%) center".
- web-platform-tests/css/motion/parsing/offset-distance-computed-expected.txt:
- web-platform-tests/css/motion/parsing/offset-distance-parsing-valid-expected.txt:
- web-platform-tests/css/motion/parsing/offset-position-computed-expected.txt:
- web-platform-tests/css/motion/parsing/offset-position-parsing-valid-expected.txt:
- web-platform-tests/css/motion/parsing/offset-position-parsing-valid.html: Fixed test to accept "center" as an alternative to "center center", "calc(20% + 10px) center" as an alternative to "calc(10px + 20%) center".
- web-platform-tests/css/motion/parsing/offset-shorthand-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/motion/animation/offset-anchor-composition.html
imported/w3c/web-platform-tests/css/motion/animation/offset-anchor-interpolation.html
imported/w3c/web-platform-tests/css/motion/animation/offset-distance-composition.html
imported/w3c/web-platform-tests/css/motion/animation/offset-distance-interpolation.html
imported/w3c/web-platform-tests/css/motion/animation/offset-position-composition.html
imported/w3c/web-platform-tests/css/motion/animation/offset-position-interpolation.html
imported/w3c/web-platform-tests/css/motion/inheritance.html
imported/w3c/web-platform-tests/css/motion/offset-supports-calc.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-anchor-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-anchor-parsing-valid.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-distance-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-distance-parsing-valid.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-position-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-position-parsing-valid.html
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForPosition):
(WebCore::valueForPositionOrAuto):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumePositionOrAuto):
(WebCore::CSSPropertyParser::parseSingleValue):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::offsetDistance const):
(WebCore::RenderStyle::setOffsetDistance):
(WebCore::RenderStyle::initialOffsetDistance):
(WebCore::RenderStyle::offsetPosition const):
(WebCore::RenderStyle::setOffsetPosition):
(WebCore::RenderStyle::initialOffsetPosition):
(WebCore::RenderStyle::offsetAnchor const):
(WebCore::RenderStyle::setOffsetAnchor):
(WebCore::RenderStyle::initialOffsetAnchor):
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- rendering/style/StyleRareNonInheritedData.h:
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertPosition):
(WebCore::Style::BuilderConverter::convertPositionOrAuto):
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml: Add new preference for CSS Motion Path support.
LayoutTests:
Update platform-specific test expectations to accommodate for newly added CSS properties.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- 3:11 AM Changeset in webkit [284360] by
-
- 8 edits6 adds2 deletes in trunk/LayoutTests/imported/w3c
Re-import shadow-dom WPT
https://bugs.webkit.org/show_bug.cgi?id=231845
Reviewed by Antoine Quint.
Upstream commit: https://github.com/web-platform-tests/wpt/commit/deaab24d4e359f4264ba8843fa87a558ed9e0b81
The flakiness of focus-pseudo-matches-on-shadow-host.html was due to not waiting for the "update rendering"
steps for autofocus to happen, which is flaky with the new autofocus behavior. This has been fixed by a Gecko
committer who had the issue on their side as well:
https://github.com/web-platform-tests/wpt/commit/7555902a6e5c2b2f285bc6d0e2e05b5f3229af6a
- resources/resource-files.json:
- web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment.tentative.html:
- web-platform-tests/shadow-dom/focus/blur-on-shadow-host-delegatesFocus-expected.txt: Added.
- web-platform-tests/shadow-dom/focus/blur-on-shadow-host-delegatesFocus.html: Added.
- web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-click-method-expected.txt: Removed.
- web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-click-method.html: Removed.
- web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-click-expected.txt: Added.
- web-platform-tests/shadow-dom/focus/click-focus-delegatesFocus-click.html: Added.
- web-platform-tests/shadow-dom/focus/focus-pseudo-matches-on-shadow-host.html:
- web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-2.html:
- web-platform-tests/shadow-dom/focus/focus-selector-delegatesFocus-expected.txt:
- web-platform-tests/shadow-dom/focus/focus-selector-delegatesFocus.html:
- web-platform-tests/shadow-dom/focus/focus-tab-on-shadow-host-expected.txt: Added.
- web-platform-tests/shadow-dom/focus/focus-tab-on-shadow-host.html: Added.
- web-platform-tests/shadow-dom/focus/w3c-import.log:
- 3:07 AM Changeset in webkit [284359] by
-
- 5 edits in trunk
[css-flexbox] Improve & simplify the flex-basis computation
https://bugs.webkit.org/show_bug.cgi?id=230755
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
The flex-basis computation code was a bit convoluted. It had some pre-computations for items
with intrinsic main size that were causing several issues due to reentrancy. Actually those
computations where not needed at all for the flex basis computation but for a later stage, the
computation of the hyphotetical main size in which we need to compute 'min-{width|height}: auto'.
That's why the code that was executed before the flex-basis computation is now part of
computeFlexItemMinMaxSizes(). As we are no longer doing a layout before computing the flex-basis,
a layout has to be added to those cases in which the main size is the block size of the child. Apart
from that the flex-basis computation uses a newly defined RAII class to set the main size of the item
to the value specified by flex-basis which is what the specs mandate.
Last but not least, the computeInnerFlexBaseSizeForChild() method was renamed to computeFlexBaseSizeForChild()
which fits better with the terminology used in the specs.
Flex basis computation is already covered by the WPT test suite, there is no need for extra tests. This patch
fixes the only flex-basis-* test case that was not passing.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild): Removed obsolete comment. Added
a layoutIfNeeded() as we cannot be sure that the item was already laid out any more.
(WebCore::ScopedFlexBasisAsMainSize::ScopedFlexBasisAsChildMainSize): New RAII class.
(WebCore::ScopedFlexBasisAsMainSize::~ScopedFlexBasisAsChildMainSize):
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Renamed from computeInnerFlexBaseSizeForChild.
(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes): Added relayoutChildren parameter.
(WebCore::RenderFlexibleBox::constructFlexItem): Moved code to computeFlexItemMinMaxSizes().
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Deleted.
- rendering/RenderFlexibleBox.h:
LayoutTests:
- TestExpectations: Unskipped flex-basis-011.html which is now working fine.
- 2:39 AM Changeset in webkit [284358] by
-
- 2 edits in trunk/Source/WebCore
[MediaStream] Mock video source background not fully filled for custom video resolution
https://bugs.webkit.org/show_bug.cgi?id=231863
Patch by Philippe Normand <pnormand@igalia.com> on 2021-10-18
Reviewed by Xabier Rodriguez-Calvar.
The video frame buffer matches the captureSize, so its background should do the same.
this->size() is the final size of the media source, applied to the frame buffer before
notification to observers.
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::generateFrame):
- 1:42 AM Changeset in webkit [284357] by
-
- 28 edits4 moves in branches/safari-612-branch/Source
Apply patch rdar://83956117
- 1:42 AM Changeset in webkit [284356] by
-
- 44 edits1 copy1 add in branches/safari-612-branch
Apply patch rdar://83953160
- 1:42 AM Changeset in webkit [284355] by
-
- 49 edits9 copies6 adds in branches/safari-612-branch
Apply patch rdar://83955623
- 1:41 AM Changeset in webkit [284354] by
-
- 37 edits10 copies1 add in branches/safari-612-branch
Apply patch rdar://83952929
- 1:41 AM Changeset in webkit [284353] by
-
- 8 edits in branches/safari-612-branch/Source
Apply patch rdar://83955481
- 1:41 AM Changeset in webkit [284352] by
-
- 16 edits in branches/safari-612-branch
Apply patch rdar://83953730
- 1:41 AM Changeset in webkit [284351] by
-
- 88 edits13 copies2 adds in branches/safari-612-branch
Apply patch rdar://83955868
- 1:25 AM Changeset in webkit [284350] by
-
- 2 edits in trunk
Add my github username to contributors.json
Unreviewed.
- metadata/contributors.json:
- 1:17 AM Changeset in webkit [284349] by
-
- 2 edits in trunk/Source/WebKit
Use-after-move of m_sockets in NetworkRTCProvider::close()
<https://webkit.org/b/231779>
<rdar://problem/84278026>
Reviewed by Youenn Fablet.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::close):
- Replace WTFMove() with std::exchange() to make it clear that
m_sockets will be emptied, then iterate on
sockets
to close them. Update ASSERT() to check that no sockets were added to m_sockets during the loop.
- 1:12 AM Changeset in webkit [284348] by
-
- 3 edits1 add in trunk
[JSC] PutByVal's child5 should be KnownInt32Use / Int52RepUse in FTL
https://bugs.webkit.org/show_bug.cgi?id=231884
rdar://84357099
Reviewed by Robin Morisset.
JSTests:
- stress/put-by-val-known-int32.js: Added.
(new.Uint8Array.1000000.map):
Source/JavaScriptCore:
The child5 of PutByVal should be KnownInt32Use or Int52RepUse.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
- 1:05 AM Changeset in webkit [284347] by
-
- 25 edits13 copies3 adds in trunk
[WebXR] Stubs for WebXR Hand Input Module
https://bugs.webkit.org/show_bug.cgi?id=231123
<rdar://problem/83802135>
Reviewed by Sam Weinig.
Source/WebCore:
Add the IDL and stub implementations for the WebXR
Hand Input module:
https://immersive-web.github.io/webxr-hand-input/
The important class is WebXRHand, which is owned by
and accessible from the WebXRInputSource, which
itself is owned by the WebXRSession.
Test: http/wpt/webxr/xrHandInput_gc.html
- CMakeLists.txt: Add new files.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- Modules/webxr/WebXRSession.idl: Add a custom mark function that creates an opaque root.
- bindings/js/JSWebXRSessionCustom.cpp:
- Modules/webxr/WebXRFrame+HandInput.idl: Add new hand-related methods.
- Modules/webxr/WebXRFrame.cpp:
(WebCore::WebXRFrame::getJointPose):
(WebCore::WebXRFrame::fillJointRadii):
(WebCore::WebXRFrame::fillPoses):
- Modules/webxr/WebXRFrame.h:
- Modules/webxr/WebXRHand.cpp: New files.
(WebCore::WebXRHand::create):
(WebCore::WebXRHand::WebXRHand):
(WebCore::WebXRHand::get):
(WebCore::WebXRHand::Iterator::Iterator):
(WebCore::WebXRHand::Iterator::next):
(WebCore::WebXRHand::session):
- Modules/webxr/WebXRHand.h:
(WebCore::WebXRHand::size):
(WebCore::WebXRHand::createIterator):
- Modules/webxr/WebXRHand.idl:
- Modules/webxr/WebXRInputSource+HandInput.idl: Add WebXRHand accessor.
- Modules/webxr/WebXRInputSource.cpp:
(WebCore::WebXRInputSource::update):
- Modules/webxr/WebXRInputSource.h:
(WebCore::WebXRInputSource::hand const):
- Modules/webxr/WebXRJointPose.cpp: New files.
(WebCore::WebXRJointPose::create):
(WebCore::WebXRJointPose::WebXRJointPose):
- Modules/webxr/WebXRJointPose.h:
(WebCore::WebXRJointPose::radius const):
- Modules/webxr/WebXRJointPose.idl:
- Modules/webxr/WebXRJointSpace.cpp: New files.
(WebCore::WebXRJointSpace::create):
(WebCore::WebXRJointSpace::WebXRJointSpace):
(WebCore::WebXRJointSpace::nativeOrigin const):
- Modules/webxr/WebXRJointSpace.h:
(WebCore::WebXRJointSpace::jointName const):
- Modules/webxr/WebXRJointSpace.idl:
- Modules/webxr/WebXRSpace.h: New virtual identifier for joint space subclass.
(WebCore::WebXRSpace::isJointSpace const):
- Modules/webxr/WebXRSystem.cpp: Add a comment regarding the testing of
optional features (where the "hand-tracking" feature should be checked).
(WebCore::WebXRSystem::resolveRequestedFeatures const):
- Modules/webxr/XRHandJoint.h: New file.
- Modules/webxr/XRHandJoint.idl:
- bindings/js/WebCoreBuiltinNames.h: Expose new mappings from published names
to internal names.
- platform/xr/PlatformXR.h: Add "simulateHands" field to frame data for testing.
- testing/FakeXRInputSourceInit.h: And similarly to the fake input source.
- testing/FakeXRInputSourceInit.idl:
- testing/WebFakeXRInputController.cpp: Allow the test system to fake a hand.
(WebCore::WebFakeXRInputController::WebFakeXRInputController):
(WebCore::WebFakeXRInputController::getFrameData):
- testing/WebFakeXRInputController.h:
Source/WTF:
Add an ENABLE_WEBXR_HANDS compile time flag and a WebXRHandsEnabled preference.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- wtf/PlatformEnable.h:
- wtf/PlatformEnableCocoa.h:
LayoutTests:
New test that checks an XRHand object can survive garbage collection.
- http/wpt/webxr/xrHandInput_gc-expected.txt: Added.
- http/wpt/webxr/xrHandInput_gc.html: Added.
Oct 17, 2021:
- 5:22 PM Changeset in webkit [284346] by
-
- 2 edits in branches/safari-612-branch/Source/JavaScriptCore
Cherry-pick r284212. rdar://problem/84351869
Wasm LLInt should zero bytecodeIndex before throwing
https://bugs.webkit.org/show_bug.cgi?id=231688
<rdar://84207898>
Reviewed by Yusuke Suzuki.
After r283852, the unwinder can now ask WebAssembly frames for their bytecodeIndex.
We do write to the bytecodeIndex when throwing from the wasmthrow
opcode, but we
failed to write when trapping (e.g. throwing an OOB or Unreachable). The value of
the bytecodeIndex in this is case is not interesting, since these exceptions can't be
caught from Wasm, all we need to know is ensure there isn't an invalid left-over
value in that stack slot, so we zero it.
- llint/WebAssembly.asm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:21 PM Changeset in webkit [284345] by
-
- 3 edits in branches/safari-612-branch/Source/ThirdParty/libwebrtc
Cherry-pick r284082. rdar://problem/84351872
Override guessed color space for incoming H.264/265 streams
https://bugs.webkit.org/show_bug.cgi?id=231353
<rdar://problem/83969311>
Reviewed by Youenn Fablet.
When the VTDecompressionSession decodes incoming H.264/H.265 samples,
it puts guessed color space attachments on the CVPixelBuffer, and the
guesses are based on video resolution. WebRTC streams however default
to being sRGB. So this patch overrides a guess with what we know the
stream will be. (Once we support different color spaces in WebRTC
video streams we'll need to adjust this.)
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm: (overrideColorSpaceAttachmentsIfNeeded): (decompressionOutputCallback):
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm: (overrideColorSpaceAttachmentsIfNeeded): (h265DecompressionOutputCallback):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284082 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:15 PM Changeset in webkit [284344] by
-
- 7 edits in trunk/Source
Build fix #3: Adopt attribution AVCaptureSession SPI for GPU process
https://bugs.webkit.org/show_bug.cgi?id=231621
<rdar://problem/80748535>
Unreviewed build fix.
Source/WebCore/PAL:
- pal/spi/cocoa/TCCSPI.h:
- Use HAVE(TCC_IOS_14_BIG_SUR_SPI).
Source/WebKit:
- Shared/Cocoa/TCCSoftLink.h:
(tcc_identity_create):
- Shared/Cocoa/TCCSoftLink.mm:
(tcc_identity_create):
- Use HAVE(TCC_IOS_14_BIG_SUR_SPI).
Source/WTF:
- wtf/PlatformHave.h:
(HAVE_TCC_IOS_14_BIG_SUR_SPI): Add.
- Used for TCC.framework SPI available in iOS 14 and macOS 11 Big Sur and later.
- 3:51 PM Changeset in webkit [284343] by
-
- 2 edits in trunk/LayoutTests
IFC progression (inline box borders).
Unreviewed.
- 2:19 PM Changeset in webkit [284342] by
-
- 2 edits in trunk/Source/WebKit
Follow-up: WebKit::LocalConnection::createCredentialPrivateKey leaks an NSMutableDictionary
<https://webkit.org/b/231814>
<rdar://problem/84307054>
Unreviewed follow-up to address Darin's comments.
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::createCredentialPrivateKey const):
- Remove need for C-style cast by using a local variable for the mutable copy of the NSDictionary.
- 1:47 PM Changeset in webkit [284341] by
-
- 6 edits in trunk/Source/JavaScriptCore
Make LLIntAssembly.h more readable.
https://bugs.webkit.org/show_bug.cgi?id=231876
Reviewed by Yusuki Suzuki.
In this patch, I did the following:
- Changed
CodeOrigin
to only dump the filename, and not the full path.
- Deferred printing the ".loc" metadata in
$asm.debugAnnotation
till we format the line to dump in$asm.formatDump
. This enabled the ".loc" metadata to be dumped on the same line as the asm instruction.
- Changed
$asm.codeOrigin
to not dump multiple codeOrigin comments. The only times when there appears to be "multiple" codeOrigins for any given instruction is if the instruction before it was elided, thereby leaving the elided instruction's codeOrigin to be mis-attributed to the subsequent instruction.
- Moved the MIPS
Assembler.putStr
method to asm.rb. This method was already commonly used in arm.rb and arm64.rb previously. Hence, it belongs in common code.
Also enhanced it to support indenting by the column width of ".loc" debug
annotations if$enableDebugAnnotations
is true. This keeps the ".loc" column
on the left clear of other content, thereby making it easy to visually filter
out that column when scanning through the generated asm code.
- Changed some code that called
outp.puts
directly to call$asm.putStr
instead. This yields the nice alignment for easy visual filtering described in (4).
- Changed
$preferredCommentStartColumn
to be at column 40 to make the generated asm code more compact. However, if the backend is the C_LOOP, then change it back to 60 because C_LOOP code is more verbose and need the extra space.
Demo time:
Before this patch, LLIntAssembly.h looks like this:
`
#if !OFFLINE_ASM_X86 && !OFFLINE_ASM_X86_WIN && !OFFLINE_ASM_X86_64 && !OFFLINE_ASM_X86_64_WIN && !OFFLINE_ASM_ARMv7 && !OFFLINE_ASM_ARM64 && OFFLINE_ASM_ARM64E && !OFFLINE_ASM_MIPS && !OFFLINE_ASM_RISCV64 && !OFFLINE_ASM_C_LOOP && !OFFLINE_ASM_C_LOOP_WIN && !OFFLINE_ASM_ARMv7k && !OFFLINE_ASM_ARMv7s && OFFLINE_ASM_JSVALUE64 && !OFFLINE_ASM_BIGINT32 && OFFLINE_ASM_GIGACAGE_ENABLED && !OFFLINE_ASM_ASSERT_ENABLED && !OFFLINE_ASM_TRACING && OFFLINE_ASM_ADDRESS64 && OFFLINE_ASM_JIT && OFFLINE_ASM_WEBASSEMBLY && OFFLINE_ASM_HAVE_FAST_TLS && OFFLINE_ASM_WEBASSEMBLY_B3JIT
OFFLINE_ASM_BEGIN
OFFLINE_ASM_GLOBAL_LABEL(llintPCRangeStart)
".file 1 \"/Users/mlam/ws1/OpenSource/Source/JavaScriptCore/llint/LowLevelInterpreter.asm\"\n"
".file 2 \"/Users/mlam/ws1/OpenSource/WebKitBuild/Release/DerivedSources/JavaScriptCore/InitBytecodes.asm\"\n"
".file 3 \"/Users/mlam/ws1/OpenSource/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm\"\n"
".file 4 \"/Users/mlam/ws1/OpenSource/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm\"\n"
".file 5 \"/Users/mlam/ws1/OpenSource/WebKitBuild/Release/DerivedSources/JavaScriptCore/InitWasm.asm\"\n"
".file 6 \"/Users/mlam/ws1/OpenSource/Source/JavaScriptCore/llint/WebAssembly.asm\"\n"
".file 7 \"/Users/mlam/ws1/OpenSource/WebKitBuild/Release/usr/local/include/WebKitAdditions/LowLevelInterpreterAdditions.asm\"\n"
".loc 1 1672\n"
"\tbrk #0xc471\n" JavaScriptCore/llint/LowLevelInterpreter.asm:1672
".loc 1 1681\n"
OFFLINE_ASM_GLOBAL_LABEL(vmEntryToJavaScript)
".loc 1 1066\n"
"\tpacibsp\n" JavaScriptCore/llint/LowLevelInterpreter.asm:1066
".loc 1 1070\n"
"\tstp x29, x30, [sp, #-16]!\n" JavaScriptCore/llint/LowLevelInterpreter.asm:1070
".loc 1 1075\n"
"\tmov x29, sp\n" JavaScriptCore/llint/LowLevelInterpreter.asm:1075
".loc 1 1090\n"
"\tsub sp, x29, #176\n" JavaScriptCore/llint/LowLevelInterpreter.asm:1090
".loc 3 169\n"
"\tmovz x13, #48040, lsl #0\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:169
".loc 3 169\n"
"\tadd x17, x1, x13, lsl #0\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:169
".loc 3 169\n"
"\tldr w4, [x17, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:169
".loc 3 170\n"
"\tcbnz w4, " LOCAL_LABEL_STRING(_offlineasm_doVMEntrycheckVMEntryPermission) "\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:170
".loc 3 172\n"
"\tstr x1, [sp, #0]\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:172
...
".loc 3 309\n"
"\tmov x3, x0\n" JavaScriptCore/llint/LowLevelInterpreter64.asm:309
".loc 1 1\n"
#if OS(DARWIN)
"\tL_offlineasm_loh_adrp_1:\n" JavaScriptCore/llint/LowLevelInterpreter.asm:1
"\tadrp x2, " LOCAL_REFERENCE(g_config) "@GOTPAGE\n"
"\tL_offlineasm_loh_ldr_1:\n"
"\tldr x2, [x2, " LOCAL_REFERENCE(g_config) "@GOTPAGEOFF]\n"
#elif OS(LINUX)
"\tadrp x2, :got:" LOCAL_REFERENCE(g_config) "\n"
"\tldr x2, [x2, :got_lo12:" LOCAL_REFERENCE(g_config) "]\n"
#else
#error Missing globaladdr implementation
#endif
".loc 1 1\n"
"\tadd x2, x2, #3072\n" JavaScriptCore/llint/LowLevelInterpreter.asm:1
`
After this patch, LLIntAssembly.h looks like this:
`
#if !OFFLINE_ASM_X86 && !OFFLINE_ASM_X86_WIN && !OFFLINE_ASM_X86_64 && !OFFLINE_ASM_X86_64_WIN && !OFFLINE_ASM_ARMv7 && !OFFLINE_ASM_ARM64 && OFFLINE_ASM_ARM64E && !OFFLINE_ASM_MIPS && !OFFLINE_ASM_RISCV64 && !OFFLINE_ASM_C_LOOP && !OFFLINE_ASM_C_LOOP_WIN && !OFFLINE_ASM_ARMv7k && !OFFLINE_ASM_ARMv7s && OFFLINE_ASM_JSVALUE64 && !OFFLINE_ASM_BIGINT32 && OFFLINE_ASM_GIGACAGE_ENABLED && !OFFLINE_ASM_ASSERT_ENABLED && !OFFLINE_ASM_TRACING && OFFLINE_ASM_ADDRESS64 && OFFLINE_ASM_JIT && OFFLINE_ASM_WEBASSEMBLY && OFFLINE_ASM_HAVE_FAST_TLS && OFFLINE_ASM_WEBASSEMBLY_B3JIT
OFFLINE_ASM_BEGIN
OFFLINE_ASM_GLOBAL_LABEL(llintPCRangeStart)
".file 1 \"/Users/mlam/ws1/OpenSource/Source/JavaScriptCore/llint/LowLevelInterpreter.asm\"\n"
".file 2 \"/Users/mlam/ws1/OpenSource/WebKitBuild/Release/DerivedSources/JavaScriptCore/InitBytecodes.asm\"\n"
".file 3 \"/Users/mlam/ws1/OpenSource/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm\"\n"
".file 4 \"/Users/mlam/ws1/OpenSource/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm\"\n"
".file 5 \"/Users/mlam/ws1/OpenSource/WebKitBuild/Release/DerivedSources/JavaScriptCore/InitWasm.asm\"\n"
".file 6 \"/Users/mlam/ws1/OpenSource/Source/JavaScriptCore/llint/WebAssembly.asm\"\n"
".file 7 \"/Users/mlam/ws1/OpenSource/WebKitBuild/Release/usr/local/include/WebKitAdditions/LowLevelInterpreterAdditions.asm\"\n"
".loc 1 1672\n" "brk #0xc471 \n" LowLevelInterpreter.asm:1672
".loc 1 1681\n" OFFLINE_ASM_GLOBAL_LABEL(vmEntryToJavaScript)
".loc 1 1066\n" "pacibsp \n" LowLevelInterpreter.asm:1066
".loc 1 1070\n" "stp x29, x30, [sp, #-16]! \n" LowLevelInterpreter.asm:1070
".loc 1 1075\n" "mov x29, sp \n" LowLevelInterpreter.asm:1075
".loc 1 1090\n" "sub sp, x29, #176 \n" LowLevelInterpreter.asm:1090
".loc 3 169\n" "movz x13, #48040, lsl #0 \n" LowLevelInterpreter64.asm:169
"add x17, x1, x13, lsl #0 \n"
"ldr w4, [x17, #0] \n"
".loc 3 170\n" "cbnz w4, " LOCAL_LABEL_STRING(_offlineasm_doVMEntrycheckVMEntryPermission) " \n" LowLevelInterpreter64.asm:170
".loc 3 172\n" "str x1, [sp, #0] \n" LowLevelInterpreter64.asm:172
...
".loc 3 309\n" "mov x3, x0 \n" LowLevelInterpreter64.asm:309
#if OS(DARWIN)
".loc 1 1\n" "L_offlineasm_loh_adrp_1: \n" LowLevelInterpreter.asm:1
"adrp x2, " LOCAL_REFERENCE(g_config) "@GOTPAGE \n"
"L_offlineasm_loh_ldr_1: \n"
"ldr x2, [x2, " LOCAL_REFERENCE(g_config) "@GOTPAGEOFF] \n"
#elif OS(LINUX)
"adrp x2, :got:" LOCAL_REFERENCE(g_config) " \n"
"ldr x2, [x2, :got_lo12:" LOCAL_REFERENCE(g_config) "] \n"
#else
#error Missing globaladdr implementation
#endif
".loc 1 1\n" "add x2, x2, #3072 \n"
`
- offlineasm/asm.rb:
- offlineasm/cloop.rb:
- offlineasm/config.rb:
- offlineasm/mips.rb:
- offlineasm/parser.rb:
- 1:46 PM Changeset in webkit [284340] by
-
- 5 edits2 copies in trunk
Add tests for WTF::OSObjectPtr/adoptOSObject in Cocoa with and without ARC
<https://webkit.org/b/231819>
<rdar://problem/84312692>
Reviewed by Darin Adler.
Source/WTF:
- wtf/OSObjectPtr.h:
(WTF::adoptOSObject):
- Rename when building with ARC enabled to prevent leaks or over-releases when linking ARC and non-ARC code.
- Add WARN_UNUSED_RETURN attribute to match WTF::adoptNS().
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- Add OSObjectPtrCocoa.mm and OSObjectPtrCocoaARC.mm source files to the project.
- TestWebKitAPI/Tests/WTF/darwin/OSObjectPtr.cpp:
(TestWebKitAPI::TEST):
- Make code work when compiled with ARC enabled.
- Fix a pre-existing leak of dispatch_queue_t in RetainRelease test.
- TestWebKitAPI/Tests/WTF/darwin/OSObjectPtrCocoa.mm: Add.
- TestWebKitAPI/Tests/WTF/darwin/OSObjectPtrCocoaARC.mm: Add.
- Add test files that #include OSObjectPtr.cpp.
- 1:19 PM Changeset in webkit [284339] by
-
- 11 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/fast/css/font-face-opentype-expected.txt:
- platform/wincairo/fast/text/basic/015-expected.txt:
- platform/wincairo/fast/text/whitespace/004-expected.txt:
- platform/wincairo/fast/text/whitespace/005-expected.txt:
- platform/wincairo/fast/text/whitespace/006-expected.txt:
- platform/wincairo/fast/text/whitespace/007-expected.txt:
- platform/wincairo/fast/text/whitespace/010-expected.txt:
- platform/wincairo/fast/text/whitespace/011-expected.txt:
- platform/wincairo/fast/text/whitespace/015-expected.txt:
- platform/wincairo/fast/text/whitespace/016-expected.txt:
- 12:30 PM Changeset in webkit [284338] by
-
- 92 edits26 deletes in branches/safari-612-branch
Restore state to r284288 due to build failures.
- 12:00 PM Changeset in webkit [284337] by
-
- 7 edits2 deletes in trunk
[Cocoa] Web Inspector: remove _WKInspectorExtensionPrivateForTesting
https://bugs.webkit.org/show_bug.cgi?id=231784
<rdar://problem/84280608>
Reviewed by Timothy Hatcher.
Source/WebKit:
Promote the only method to be API for _WKInspectorExtension. It is needed
to implement some parts of the devtools API.
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/_WKInspectorExtension.h:
- UIProcess/API/Cocoa/_WKInspectorExtension.mm:
(-[_WKInspectorExtension evaluateScript:inTabWithIdentifier:completionHandler:]):
- UIProcess/API/Cocoa/_WKInspectorExtensionPrivateForTesting.h: Removed.
- UIProcess/API/Cocoa/_WKInspectorExtensionTesting.mm: Removed.
- WebKit.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:
(TEST):
- 9:54 AM Changeset in webkit [284336] by
-
- 5 edits6 adds in trunk
REGRESSION (r270850): Reference clip path clips in the wrong place when inside non-visible overflow
https://bugs.webkit.org/show_bug.cgi?id=231852
<rdar://83186229>
Reviewed by Tim Horton.
Source/WebCore:
When clipping CSS boxes with reference clip paths we need to give RenderSVGResourceClipper two
different rectangles; the objectBoundingBox that is used to compute clip path geometry,
and the bounds of the clipped content, so that the buffer-based clipping code path
can create an ImageBuffer of the appropriate size.
Previously, we confounded these two rectangles, resulting in various bugs.
Tests: css3/masking/reference-clip-path-bounds.html
css3/masking/reference-clip-path-objectBoundingBox-buffer-clip.html
css3/masking/reference-clip-path-objectBoundingBox-path-clip.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyResource):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
- rendering/svg/RenderSVGResourceClipper.h:
LayoutTests:
Tests for reference clip-path with box-shadows and enclosing oveflow:hidden.
- css3/masking/reference-clip-path-bounds-expected.html: Added.
- css3/masking/reference-clip-path-bounds.html: Added.
- css3/masking/reference-clip-path-objectBoundingBox-buffer-clip-expected.html: Added.
- css3/masking/reference-clip-path-objectBoundingBox-buffer-clip.html: Added.
- css3/masking/reference-clip-path-objectBoundingBox-path-clip-expected.html: Added.
- css3/masking/reference-clip-path-objectBoundingBox-path-clip.html: Added.
- 9:38 AM Changeset in webkit [284335] by
-
- 4 edits2 adds in trunk
AX: WebKit should not expose redundant AXGroups with missing role when the label is the same as the contents
https://bugs.webkit.org/show_bug.cgi?id=169924
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-17
Reviewed by Chris Fleizach.
Source/WebCore:
Don't expose groups with redundant accessibility text on the Mac.
Here's an example of one such group:
<div aria-label="1">1</div>
This group is not useful to accessibility clients. Instead, we
expose the text contents directly.
Test: accessibility/ignore-redundant-accessibility-text-groups.html
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement const):
Instead of asserting when we try to get the text of an element in a
document that needs a style update, return an empty string.
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::shouldIgnoreGroup): Added.
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
LayoutTests:
Add a test ensuring WebKit appropriately does and doesn't expose
groups with redundant accessibility text.
- accessibility/mac/ignore-redundant-accessibility-text-groups-expected.txt: Added.
- accessibility/mac/ignore-redundant-accessibility-text-groups.html: Added.
- 7:45 AM Changeset in webkit [284334] by
-
- 13 edits2 adds in trunk
[LFC][Integration] Support background-clip:text on inline boxes
https://bugs.webkit.org/show_bug.cgi?id=231877
Reviewed by Alan Bujtas.
Source/WebCore:
Implement text mask painting.
Test: fast/inline/inline-background-clip-text.html
- layout/integration/InlineIteratorBoxLegacyPath.h:
(WebCore::InlineIterator::BoxLegacyPath::firstLeafBoxForInlineBox const):
(WebCore::InlineIterator::BoxLegacyPath::lastLeafBoxForInlineBox const):
- layout/integration/InlineIteratorBoxModernPath.h:
(WebCore::InlineIterator::BoxModernPath::firstLeafBoxForInlineBox const):
(WebCore::InlineIterator::BoxModernPath::lastLeafBoxForInlineBox const):
(WebCore::InlineIterator::BoxModernPath::isWithinInlineBox):
- layout/integration/InlineIteratorInlineBox.cpp:
(WebCore::InlineIterator::InlineBox::firstLeafBox const):
(WebCore::InlineIterator::InlineBox::lastLeafBox const):
(WebCore::InlineIterator::InlineBox::endLeafBox const):
Add iterator support for getting leaf boxes of an inline box.
- layout/integration/InlineIteratorInlineBox.h:
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForRenderInlineChild):
- layout/integration/LayoutIntegrationCoverage.h:
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
Paint the mask directly using TextBoxPainter instead of recursing to the general painting code.
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::TextBoxPainter):
- rendering/TextBoxPainter.h:
LayoutTests:
- fast/inline/inline-background-clip-text-expected.html: Added.
- fast/inline/inline-background-clip-text.html: Added.
Oct 16, 2021:
- 10:58 PM Changeset in webkit [284333] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Adjust the logical right side of the line with line spanning inline boxes
https://bugs.webkit.org/show_bug.cgi?id=231862
Reviewed by Antti Koivisto.
This patch is in preparation for supporting "box-decoration-break: clone".
- The line spanning inline box takes up space on the line (see line logical width)
- The inline box may be getting closed on the line (do not double account for the end width, see handleInlineContent )
- When we commit the inline box closing, turn the ending into just a normal run (see appendInlineBoxEnd )
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendInlineBoxEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
(WebCore::Layout::Line::appendLineBreak):
(WebCore::Layout::Line::appendWordBreakOpportunity):
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::contentLogicalRight const):
(WebCore::Layout::Line::lineSpanningInlineBoxRunEnds const):
(WebCore::Layout::Line::lastRunLogicalRight const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):
- 9:52 PM Changeset in webkit [284332] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Use SourceID in SamplingProfiler
https://bugs.webkit.org/show_bug.cgi?id=231855
Reviewed by Mark Lam.
SamplingProfiler was still using intptr_t. We replace it with SourceID.
We also define internalSourceID and aggregatedExternalSourceID in SourceID.h.
They are special SourceID internally used in SamplingProfiler.
- bytecode/SourceID.h:
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::StackFrame::sourceID):
(JSC::SamplingProfiler::reportTopFunctions):
- runtime/SamplingProfiler.h:
- 9:03 PM Changeset in webkit [284331] by
-
- 9 edits in trunk/Source/WebKit
[WebAuthn] Many Objective-C classes leak their instance variables
<https://webkit.org/b/231834>
<rdar://problem/84317190>
Reviewed by Brent Fulgham.
- UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.mm:
(-[_WKAuthenticationExtensionsClientInputs dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialCreationOptions.mm:
(-[_WKPublicKeyCredentialCreationOptions dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialDescriptor.mm:
(-[_WKPublicKeyCredentialDescriptor dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialEntity.mm:
(-[_WKPublicKeyCredentialEntity dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialParameters.mm:
(-[_WKPublicKeyCredentialParameters dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialRelyingPartyEntity.mm:
(-[_WKPublicKeyCredentialRelyingPartyEntity dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialRequestOptions.mm:
(-[_WKPublicKeyCredentialRequestOptions dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialUserEntity.mm:
(-[_WKPublicKeyCredentialUserEntity dealloc]):
- Add -dealloc methods that release instance variables.
- 9:00 PM Changeset in webkit [284330] by
-
- 91 edits3 adds in trunk
Allow WASM to use up to 4GB
https://bugs.webkit.org/show_bug.cgi?id=229353
rdar://81603447
Reviewed by Yusuke Suzuki.
JSTests:
The big-wasm-memory/wasm-memory-requested... tests used to simply expect an OOM at 2GB.
They now expect success at 4GB, and failure at 4GB+1.
The exceptions they expect are now more specific, as previously there was a rounding issue that was causing the specific exceptions not to be thrown (resulting in the generic OOM exception later in the code).
Finally I made them only run on 64-bit platforms since we don't support typed arrays >=2GB on 32-bits, and I made them only run in one configuration since they can take a little bit of time.
I also added a few new tests, specifically checking our handling of large typed arrays, and especially of indices above INT32_MAX.
- stress/big-wasm-memory-grow-no-max.js:
(test):
- stress/big-wasm-memory-grow.js:
(test):
- stress/big-wasm-memory.js:
(test):
- stress/typed-array-always-large.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
- stress/typed-array-eventually-large.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
- stress/typed-array-large-eventually-oob.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
- wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
- wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:
Source/JavaScriptCore:
While increasing MAX_ARRAY_BUFFER_SIZE to 4GB was easy, it was not remotely the only thing required to get this to work:
- 4GB is not representable in a uint32_t, so I changed all length of ArrayBuffer/TypedArray/etc.. to being size_t.
- This also required changing NewTypedArray in all of LLInt/Baseline/DFG/FTL to accept a non-int32 size.
In order to avoid performance regressions, I had to add speculation in the DFG/FTL, which now have two versions of NewTypedArray (one that takes an Int32 and one that takes a StrictInt52)
- Similarly, GetArrayLength and GetTypedArrayByteOffset now can either return an Int32 or a larger number.
I also had to split them in the DFG/FTL, see GetTypedArrayLengthAsInt52 and GetTypedArrayByteOffsetAsInt52 for examples
- In turns, I had to add CheckInBoundsInt52 since CheckInBounds could not accept the result of GetTypedArrayLengthAsInt52
- I modified the runtime functions for GetByVal/PutByVal/DataViewGet/DataViewSet/AtomicsXXX to accept non-Int32 indices, since for {Int8/UInt8/UInt8Clamped}Array, a maximum size of 4GB implies indices > 2B.
- I added a "mayBeLargeTypedArray" bit to ArrayProfile/UnlinkedArrayProfile/DFG::ArrayMode to track whether such a non-Int32 index was seen to allow proper speculation and specialization of fast paths in the DFG/FTL.
I then updated the runtime functions used by the slow paths to correctly update it.
Unfortunately I ran out of time to add all the speculations/update all the fast paths.
So the following will have to wait for a follow-up patch:
- Accepting large indices in the fast path of GetByVal in the LLInt
- Accepting large indices in the fast paths generated by AccessCase/PolymorphicAccess
- Accepting large indices in the fast paths generated by the DFG/FTL for each of GetByVal/PutByVal/DataViewGet/DataViewSet/AtomicsXXX
The current patch is functional, it will just have dreadful performance if trying to use indices >2B in a {Int8/UInt8/UInt8Clamped}Array.
Other minor changes in this patch:
- Fixed an undefined behavior in ArrayBuffer::createInternal where memcpy could be called on nullptr (the spec explicitly bans this even when length is 0)
- Replaced some repetitive and error-prone bounds checking by calls to WTF::isSumSmallerThanOrEqual, which is clearer, shorter, and reuse CheckedArithmetic facilities to avoid overflow issues.
- Fixed a variety of obsolete comments
- Added support for branch64(RelationalCondition cond, RegisterID left, Imm64 right)
(there was already support for the same but with TrustedImm64)
- Made various AbstractMacroAssembler function constexpr as part of the previous point
- assembler/AbstractMacroAssembler.cpp:
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):
(JSC::AbstractMacroAssembler::TrustedImmPtr::asIntptr):
(JSC::AbstractMacroAssembler::TrustedImmPtr::asPtr):
(JSC::AbstractMacroAssembler::ImmPtr::ImmPtr):
(JSC::AbstractMacroAssembler::ImmPtr::asTrustedImmPtr):
(JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32):
(JSC::AbstractMacroAssembler::Imm32::Imm32):
(JSC::AbstractMacroAssembler::Imm32::asTrustedImm32 const):
(JSC::AbstractMacroAssembler::TrustedImm64::TrustedImm64):
(JSC::AbstractMacroAssembler::Imm64::Imm64):
(JSC::AbstractMacroAssembler::Imm64::asTrustedImm64 const):
(JSC::AbstractMacroAssembler::canBlind):
(JSC::AbstractMacroAssembler::shouldBlindForSpecificArch):
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::branch64):
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::shouldBlindForSpecificArch):
(JSC::MacroAssemblerARM64::branch64):
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagArrayPtrLength64):
(JSC::MacroAssemblerARM64E::untagArrayPtrLength32): Deleted.
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::canBlind):
(JSC::MacroAssemblerX86Common::shouldBlindForSpecificArch):
- bytecode/AccessCase.cpp:
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::generateWithGuard):
- bytecode/ArrayProfile.h:
(JSC::ArrayProfile::setMayBeLargeTypedArray):
(JSC::ArrayProfile::mayBeLargeTypedArray const):
(JSC::UnlinkedArrayProfile::UnlinkedArrayProfile):
(JSC::UnlinkedArrayProfile::update):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::refine const):
- dfg/DFGArrayMode.h:
(JSC::DFG::ArrayMode::ArrayMode):
(JSC::DFG::ArrayMode::mayBeLargeTypedArray const):
(JSC::DFG::ArrayMode::withType const):
(JSC::DFG::ArrayMode::withSpeculation const):
(JSC::DFG::ArrayMode::withConversion const):
(JSC::DFG::ArrayMode::withTypeAndConversion const):
(JSC::DFG::ArrayMode::withArrayClassAndSpeculationAndMayBeLargeTypedArray const):
(JSC::DFG::ArrayMode::speculationFromProfile):
(JSC::DFG::ArrayMode::withSpeculationFromProfile const):
(JSC::DFG::ArrayMode::withProfile const):
(JSC::DFG::ArrayMode::operator== const):
(JSC::DFG::ArrayMode::withArrayClass const): Deleted.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGCommon.h:
(JSC::DFG::enableInt52):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertToGetArrayLength):
(JSC::DFG::FixupPhase::prependGetArrayLength): Deleted.
- dfg/DFGGenerationInfo.h:
- dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
- dfg/DFGHeapLocation.h:
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasStorageChild const):
(JSC::DFG::Node::storageChildIndex):
(JSC::DFG::Node::hasArrayMode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
(JSC::DFG::putByVal):
(JSC::DFG::newTypedArrayWithSize):
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSSALoweringPhase.cpp:
(JSC::DFG::SSALoweringPhase::handleNode):
(JSC::DFG::SSALoweringPhase::lowerBoundsCheck):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):
(JSC::DFG::SpeculativeJIT::emitTypedArrayBoundsCheck):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
(JSC::DFG::SpeculativeJIT::emitNewTypedArrayWithSizeInRegister):
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithInt52Size):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayLengthAsInt52):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffsetAsInt52):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGValidate.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::validateAIState):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::emitGetTypedArrayByteOffsetExceptSettingResult):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffsetAsInt52):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayLengthAsInt52):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckInBoundsInt52):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::emitNewTypedArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOutput.h:
(JSC::FTL::Output::load64NonNegative):
- jit/IntrinsicEmitter.cpp:
(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):
- jit/JITOperations.cpp:
(JSC::putByVal):
(JSC::getByVal):
- llint/LLIntOfflineAsmConfig.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getByVal):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/ArrayBuffer.cpp:
(JSC::SharedArrayBufferContents::SharedArrayBufferContents):
(JSC::ArrayBufferContents::ArrayBufferContents):
(JSC::ArrayBufferContents::tryAllocate):
(JSC::ArrayBuffer::create):
(JSC::ArrayBuffer::createAdopted):
(JSC::ArrayBuffer::createFromBytes):
(JSC::ArrayBuffer::tryCreate):
(JSC::ArrayBuffer::createUninitialized):
(JSC::ArrayBuffer::tryCreateUninitialized):
(JSC::ArrayBuffer::createInternal):
(JSC::ArrayBuffer::clampValue):
(JSC::ArrayBuffer::clampIndex const):
(JSC::ArrayBuffer::sliceWithClampedIndex const):
- runtime/ArrayBuffer.h:
(JSC::ArrayBufferContents::sizeInBytes const):
(JSC::ArrayBuffer::byteLength const):
(JSC::ArrayBuffer::gcSizeEstimateInBytes const):
- runtime/ArrayBufferView.cpp:
(JSC::ArrayBufferView::ArrayBufferView):
- runtime/ArrayBufferView.h:
(JSC::ArrayBufferView::byteOffset const):
(JSC::ArrayBufferView::byteLength const):
(JSC::ArrayBufferView::verifyByteOffsetAlignment):
(JSC::ArrayBufferView::verifySubRangeLength):
(JSC::ArrayBufferView::clampOffsetAndNumElements):
(JSC::ArrayBufferView::setImpl):
(JSC::ArrayBufferView::setRangeImpl):
(JSC::ArrayBufferView::getRangeImpl):
(JSC::ArrayBufferView::zeroRangeImpl):
(JSC::ArrayBufferView::calculateOffsetAndLength): Deleted.
- runtime/AtomicsObject.cpp:
- runtime/DataView.cpp:
(JSC::DataView::DataView):
(JSC::DataView::create):
- runtime/DataView.h:
- runtime/GenericTypedArrayView.h:
- runtime/GenericTypedArrayViewInlines.h:
(JSC::GenericTypedArrayView<Adaptor>::GenericTypedArrayView):
(JSC::GenericTypedArrayView<Adaptor>::create):
(JSC::GenericTypedArrayView<Adaptor>::tryCreate):
(JSC::GenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::GenericTypedArrayView<Adaptor>::tryCreateUninitialized):
(JSC::GenericTypedArrayView<Adaptor>::subarray const): Deleted.
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
(JSC::JSArrayBufferView::byteLength const):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):
(JSC::JSArrayBufferView::possiblySharedImpl):
- runtime/JSArrayBufferView.h:
(JSC::JSArrayBufferView::sizeOf):
(JSC::JSArrayBufferView::ConstructionContext::length const):
(JSC::JSArrayBufferView::length const):
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::byteOffsetImpl):
(JSC::JSArrayBufferView::byteOffset):
(JSC::JSArrayBufferView::byteOffsetConcurrently):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::toIndex const):
(JSC::JSValue::toTypedArrayIndex const):
- runtime/JSDataView.cpp:
(JSC::JSDataView::create):
(JSC::JSDataView::createUninitialized):
(JSC::JSDataView::set):
(JSC::JSDataView::setIndex):
- runtime/JSDataView.h:
- runtime/JSDataViewPrototype.cpp:
(JSC::getData):
(JSC::setData):
- runtime/JSGenericTypedArrayView.h:
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayViewImpl):
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createWithFastVector):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::JSGenericTypedArrayView<Adaptor>::validateRange):
(JSC::JSGenericTypedArrayView<Adaptor>::setWithSpecificType):
(JSC::JSGenericTypedArrayView<Adaptor>::set):
- runtime/JSObject.h:
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::trySetIndexQuickly):
(JSC::JSObject::canSetIndexQuickly): Deleted.
- runtime/JSObjectInlines.h:
(JSC::JSObject::getIndexQuicklyForTypedArray const):
(JSC::JSObject::setIndexQuicklyForArrayStorageIndexingType):
(JSC::JSObject::trySetIndexQuicklyForTypedArray):
(JSC::JSObject::canSetIndexQuicklyForTypedArray const): Deleted.
- runtime/Operations.h:
(JSC::getByValWithIndex):
- wasm/WasmPageCount.h:
Source/WebCore:
Some parts of WebCore use TypedArrays, and would not build after I made the length() function on typed arrays return UCPURegister instead of uint32_t.
Most fixes were trivial, the only exception is SerializedScriptValue.cpp, where I had to increment the version number, as ArrayBuffer (and ArrayBufferViews) now write/read their length in a 64-bit field (and same for the byteOffset of ArrayBufferView).
I also had to add a test in PixelBuffer.cpp that the size of the ArrayBuffer it will try to allocate is < INT32_MAX.
Otherwise, the test LayoutTests/fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow.html which checks that very large images are properly rejected without crashing, would timeout.
No new tests, as the code is already extensively covered by existing tests, and I implemented no new features.
- Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::copyFromChannel):
(WebCore::AudioBuffer::copyToChannel):
- Modules/webaudio/RealtimeAnalyser.cpp:
(WebCore::RealtimeAnalyser::getByteFrequencyData):
(WebCore::RealtimeAnalyser::getFloatTimeDomainData):
(WebCore::RealtimeAnalyser::getByteTimeDomainData):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpArrayBufferView):
(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::readArrayBufferImpl):
(WebCore::CloneDeserializer::readArrayBuffer):
(WebCore::CloneDeserializer::readArrayBufferViewImpl):
(WebCore::CloneDeserializer::readArrayBufferView):
- bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::encode const):
(WebCore::SerializedScriptValue::decode):
- fileapi/NetworkSendQueue.cpp:
(WebCore::NetworkSendQueue::enqueue):
- platform/graphics/PixelBuffer.cpp:
(WebCore::PixelBuffer::tryCreate):
- platform/graphics/iso/ISOBox.h:
Source/WTF:
Made some of CheckedArithmetic constexpr, and added isSumSmallerThanOrEqual since it is a commonly used test in ArrayBuffer and easy to get wrong in terms of overflow.
- wtf/CheckedArithmetic.h:
(WTF::isInBounds):
(WTF::convertSafely):
(WTF::isSumSmallerThanOrEqual):
LayoutTests:
Rebaselined three following tests as different or fewer error messages appear on the console.
Also changed currentVersion in serialized-script-value.html from 9 to 10.
- fast/canvas/canvas-getImageData-invalid-result-buffer-crash-expected.txt:
- fast/storage/serialized-script-value.html:
- webaudio/OfflineAudioContext-bad-buffer-crash-expected.txt:
- webaudio/OfflineAudioContext/bad-buffer-length-expected.txt:
- 8:58 PM Changeset in webkit [284329] by
-
- 3 edits in trunk/Source/WebKit
_WKRemoteWebInspectorViewController leaks an instance variable and should use a weak delegate
<https://webkit.org/b/231830>
<rdar://problem/84316056>
Reviewed by Brent Fulgham.
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
- Use a weak reference for the delegate.
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController dealloc]): Add.
- Fix leak by releasing _configuration instance variable.
- 4:41 PM Changeset in webkit [284328] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, revert r284181
No longer needed because the root cause was reverted.
- platform/mac-wk2/TestExpectations:
- 4:36 PM Changeset in webkit [284327] by
-
- 4 edits2 adds in trunk
[LFC][IFC] Adjust the logical left side of the line with line spanning inline boxes
https://bugs.webkit.org/show_bug.cgi?id=231851
Reviewed by Antti Koivisto.
Source/WebCore:
This is in preparation for supporting "box-decoration-break: clone", where the
line spanning inline boxes do take up some space on the line with their horizontal margin, border and padding.
Test: fast/inline/inline-box-with-left-decoration-clone.html
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::Run::Run):
- layout/formattingContexts/inline/InlineLine.h:
LayoutTests:
- fast/inline/inline-box-with-left-decoration-clone-expected.html: Added.
- fast/inline/inline-box-with-left-decoration-clone.html: Added.
- 4:35 PM Changeset in webkit [284326] by
-
- 8 edits2 deletes in trunk/Source
Unreviewed, reverting r284143.
Caused a series of assertions in layout tests in EWS
Reverted changeset:
"Scroll To Text Fragment directive parsing"
https://bugs.webkit.org/show_bug.cgi?id=231410
https://commits.webkit.org/r284143
- 3:32 PM Changeset in webkit [284325] by
-
- 2 edits in trunk/Source/WebKit
WebKit ignores inherited GCC_PREPROCESSOR_DEFINITIONS
https://bugs.webkit.org/show_bug.cgi?id=231867
Reviewed by Sam Weinig.
- Configurations/BaseTarget.xcconfig:
Add a $(inherited) here like in every other project, so that we don't
just drop defines that come from above.
- 3:18 PM Changeset in webkit [284324] by
-
- 2 edits in trunk
Add github username for tetsuharuohzeki to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231864
Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2021-10-16
Reviewed by Fujii Hironori.
- metadata/contributors.json:
- 2:14 PM Changeset in webkit [284323] by
-
- 9 edits in trunk/Source/WebCore
[LFC][IFC] Add "line spanning line box start items" to Line
https://bugs.webkit.org/show_bug.cgi?id=231551
Reviewed by Antti Koivisto.
This patch is in preparation for supporting box-decoration-break: clone, where the line spanning
inline boxes may take up space on the line (border/padding).
This patch moves the construction of the spanning inline boxes to an earlier step, from LineBox to Line.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
- 1:32 PM Changeset in webkit [284322] by
-
- 4 edits in trunk
Page zoom is messed up after navigating back from a PDF
https://bugs.webkit.org/show_bug.cgi?id=231841
<rdar://72666365>
Reviewed by Tim Horton.
Source/WebKit:
A navigation back from a PDF is a FrameLoadType::Back, so resetting
m_mainFramePluginHandlesPageScaleGesture only for FrameLoadType::Standard is wrong.
For all navigations, the plugins seem to call
pluginScaleFactorDidChange/pluginZoomFactorDidChange/
mainFramePluginHandlesPageScaleGestureDidChange so it's safe to reset them for all
navigation types.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/PageZoom.mm:
(TestWebKitAPI::TEST):
- 1:16 PM Changeset in webkit [284321] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r284300.
https://bugs.webkit.org/show_bug.cgi?id=231866
broke-apple-silicon-performance
Reverted changeset:
"[macOS] Add telemetry for system calls in WP"
https://bugs.webkit.org/show_bug.cgi?id=231836
https://commits.webkit.org/r284300
- 11:37 AM Changeset in webkit [284320] by
-
- 16 edits in branches/safari-612-branch
Revert "Apply patch. rdar://problem/83953730"
This reverts commit ee910ccd94f646fb5f318a78cfd6910432830a1e.
- 11:16 AM Changeset in webkit [284319] by
-
- 2 edits in trunk/Source/WebKit
WebKit::LocalConnection::createCredentialPrivateKey leaks an NSMutableDictionary
<https://webkit.org/b/231814>
<rdar://problem/84307054>
Reviewed by Kate Cheney.
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::createCredentialPrivateKey const):
- Use RetainPtr<> and adoptNS to fix the leak.
- 10:16 AM Changeset in webkit [284318] by
-
- 3 edits in trunk/LayoutTests
Undo some rebaseline in r284296.
Unreviewed.
- platform/mac-bigsur/fast/text/capitalize-boundaries-expected.txt:
- platform/mac-catalina/fast/text/capitalize-boundaries-expected.txt:
- 9:14 AM Changeset in webkit [284317] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Move overflowing content creation to LineBuilder::initialize
https://bugs.webkit.org/show_bug.cgi?id=231540
Reviewed by Antti Koivisto.
LineBuilder::initialize is going to handle all overflowing content initialization.
This is in preparation for adding spanning inline box items to the line (to support box-decoration-break: clone).
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::candidateContentForLine):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- layout/formattingContexts/inline/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::right const):
- 7:55 AM Changeset in webkit [284316] by
-
- 2 edits in trunk
Add my github username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231861
Unreviewed.
- metadata/contributors.json:
- 5:39 AM Changeset in webkit [284315] by
-
- 7 edits in trunk/Source/WebCore
Use inline iterator for SVG reverse BiDI reordering
https://bugs.webkit.org/show_bug.cgi?id=231858
Reviewed by Alan Bujtas.
Share code.
- layout/integration/InlineIteratorLogicalOrderTraversal.cpp:
(WebCore::InlineIterator::makeLineLogicalOrderCache):
(WebCore::InlineIterator::nextLeafOnLineInLogicalOrder):
(WebCore::InlineIterator::previousLeafOnLineInLogicalOrder):
No need to test for the cache, it is always there.
- layout/integration/InlineIteratorLogicalOrderTraversal.h:
(WebCore::InlineIterator::leafBoxesInLogicalOrder):
Make template and move to header.
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::collectLeafBoxesInLogicalOrder const): Deleted.
Not needed anymore.
- rendering/LegacyInlineFlowBox.h:
- rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
(WebCore::reverseInlineBoxRangeAndValueListsIfNeeded):
(WebCore::SVGRootInlineBox::reorderValueListsToLogicalOrder):
(WebCore::SVGRootInlineBox::reorderValueLists): Deleted.
Call the generic version.
- rendering/svg/SVGRootInlineBox.h:
- 3:35 AM Changeset in webkit [284314] by
-
- 3 edits2 adds in trunk
Make sure child layers of top layer elements are rendered and correctly z-ordered (top-layer-stacking.html fails)
https://bugs.webkit.org/show_bug.cgi?id=231832
Reviewed by Antoine Quint.
Source/WebCore:
Top layer elements should create CSS stacking context, per https://fullscreen.spec.whatwg.org/#rendering
I decided to call isInTopLayerOrBackdrop() twice to avoid calling it every time this function
is called. It's a cheap function.
Test: fast/layers/dialog-is-stacking-context.html
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
LayoutTests:
Ref test that compares a dialog with positioned children and one with children place
with margins.
- fast/layers/dialog-is-stacking-context-expected.html: Added.
- fast/layers/dialog-is-stacking-context.html: Added.
- 3:22 AM Changeset in webkit [284313] by
-
- 6 edits in trunk
Accelerated animations on ::backdrop shouldn't affect <dialog> (backdrop-animate-002.html fails)
https://bugs.webkit.org/show_bug.cgi?id=230008
<rdar://problem/82975766>
Reviewed by Simon Fraser and Tim Nguyen.
Source/WebCore:
We did not know how to access the ::backdrop renderer when running accelerated animations. To do so we now
implement full support to access the renderer for known pseudo-elements on Styleable with a new renderer()
method, including ::backdrop. We also make Styleable::fromRenderer() aware of ::backdrop such that the various
call sites for this function that deal with accelerated transform animations access the right element.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::renderer const):
- style/Styleable.cpp:
(WebCore::Styleable::fromRenderer):
(WebCore::Styleable::renderer const):
- style/Styleable.h:
(WebCore::Styleable::fromRenderer): Deleted.
LayoutTests:
- TestExpectations: Mark the previously failing test as passing.
- 3:16 AM Changeset in webkit [284312] by
-
- 8 edits2 adds in trunk
CSS Animations creation and sorting is incorrect and may lead to crash
https://bugs.webkit.org/show_bug.cgi?id=231812
<rdar://problem/82980774>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark two progressions in a test that now passes entirely.
- web-platform-tests/css/css-animations/Element-getAnimations-dynamic-changes.tentative-expected.txt:
Source/WebCore:
When we parse CSS properties related to CSS Animations, we create as many Animation objects as the maximum number
of values in one of the CSS Animations properties. These Animation objects are stored in an AnimationList which
is owned by RenderStyle and that we use to store all provided values such that they can be read back through the
computed style.
Upon finishing parsing those CSS properties, RenderStyle::adjustAnimations() is called and does two things that
were not quite correct.
First, it would attempt to remove animations that were in fact created for no good reason using the
Animation::isEmpty() method. That method was not quite right as it was only checking if the animation
name wasn't set but not whether the animation was explicitly marked as a "none" animation. This meant
that "none" animations could be considered as bogus animations and any animations after that one would
be mistakenly cleared.
Second, it would finish process the list of remaning animations by making sure that mis-matched CSS properties,
for instance three values for animation-duration and four values for animation-name, would be correctly represented
throughout the Animation objects. However, the function performing this work, AnimationList::fillUnsetProperties(),
used to reset the animation's name in case it wasn't explicitly set, which meant that Animation objects that did not
have a matching animation-name would end up with a valid one. This meant that further down the line, in
Styleable::updateCSSAnimations(), we couldn't distinguish Animation objects that were created without a
matching animation-name and discard those.
We've fixed those incorrect behaviors and we now have the expected number of animations created resulting in an additional
WPT PASS result.
Additionally, this also showed some issues around sorting CSS Animations in compareCSSAnimations() where we weren't
making a pointer comparison. This is now fixed and we now pass another WPT PASS result.
Test: webanimations/css-animation-sorting-crash.html
- animation/WebAnimationUtilities.cpp:
(WebCore::compareCSSAnimations):
- platform/animation/Animation.h:
(WebCore::Animation::isEmpty const):
- platform/animation/AnimationList.cpp:
(WebCore::AnimationList::fillUnsetProperties):
LayoutTests:
Add a new test that used to crash before the source change.
- animations/animation-remove-element-crash.html: Remove a line that was now a failure since only a
single animation should be created.
- webanimations/css-animation-sorting-crash-expected.txt: Added.
- webanimations/css-animation-sorting-crash.html: Added.
- 2:07 AM Changeset in webkit [284311] by
-
- 2 edits in trunk/Source/WebKit
[GTK4] Update signal name to monitor window resize
https://bugs.webkit.org/show_bug.cgi?id=231854
Reviewed by Carlos Garcia Campos.
Using size-changed (previous signal name) makes the MiniBrowser crash
running the WebDriver tests.
The signal name was changed in
https://gitlab.gnome.org/GNOME/gtk/-/commit/b7380543449ea679a2c912b66aab4855b2bb41f2,
as part of GTK 3.99.5.
Covered by existing tests.
- UIProcess/API/glib/WebKitUIClient.cpp:
- 1:22 AM Changeset in webkit [284310] by
-
- 2 edits in trunk
Add github username for myself
https://bugs.webkit.org/show_bug.cgi?id=231857
Reviewed by Yusuke Suzuki.
- metadata/contributors.json:
- 12:58 AM Changeset in webkit [284309] by
-
- 2 edits in trunk/Source/bmalloc
Unreviewed, reverting r284305.
https://bugs.webkit.org/show_bug.cgi?id=231859
webaudio-tests
Reverted changeset:
"[libpas] Enable libpas on macOS"
https://bugs.webkit.org/show_bug.cgi?id=231815
https://commits.webkit.org/r284305